You may notice that in certain situations, a public component on your plugin disappeared. This is because, under the covers, your public component is actually a Spring bean, registered as an OSGi service via Spring Dynamic Modules. Spring DM, by default, will automatically unregister a service if one of its dependencies goes away.
For example, say you registered a DictionaryService as a public component, and it depended on a MessageService. If the MessageService, for whatever reason, is unregistered, the Dictionary Service will be unregistered automatically. The only way to detect this is to turn on trace logging for org.springframework.osgi.service.dependency.internal
and you will see something like:
1 2Exporter [dictionaryService] stopped; transitive OSGi dependency [messageService] is unsatifised
This can also happen if there is a circular dependency between two plugins that consume each others services.
Rate this page: