|RE: [equinox-dev] SCR debug output|
Thanks very much!
It’s worth noting that the flags didn’t seem to be in the latest official release (3.3.2). I had downloaded the 3.4M6a milestone build, though, and got the output you described.
Regarding that output, though, I still wasn’t able to easily detect the kind of error I frequently run into. The scenario is generally like:
Service A references many services (B, C, and D, etc.) all with 1..1 cardinality. Somewhere along the way I figure out that Service A is not activating, but I have no idea which reference is not being resolved (Let’s say it’s B).
So, what I notice are statements like “DEBUG ## Resolver.resolveEligible(): reference ‘Service B' of component 'Service A' is not resolved” that show up in many places as the Resolver attempts to do its work.
However, these messages are at a DEBUG level, and there are a lot of them. Additionally, I suppose you could say that B may be just about to be introduced, so it’s not really concerning that it doesn’t exist yet. At any rate, there’s a lot of noise to sort through to try to understand why Service A is not present.
So I am wondering if you have any other suggestions for how to quickly identify this kind of problem? Might there be console commands that can interact with the SCR to list services that are left unactivated due to unresolved references? If not, would it be a plausible thing for me to write?
THIS MESSAGE IS INTENDED FOR THE USE OF THE PERSON TO WHOM IT IS ADDRESSED. IT MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM DISCLOSURE UNDER APPLICABLE LAW. If you are not the intended recipient, your use of this message for any purpose is strictly prohibited. If you have received this communication in error, please delete the message and notify the sender so that we may correct our records.
Behalf Of Stoyan Boshev
You can use these boolean system properties:
equinox.ds.debug - Turns on/off debugging of SCR
equinox.ds.print - Specifies that logged entries should be printed to
the framework runtime console
I would recommend you to use both equinox.ds.debug and equinox.ds.print properties set to "true" because you will see the debug messages printed in the console. If you turn on only the equinox.ds.debug property, the debug messages will be sent only to the LogService if available.