Hello. I have some doubts about the correct use of OSGi service references in Blueprint bundles. I will try to explain them through an example...
A first blueprint, called provider, creates a bean an exposes it as a service. A second one, called consumer, sets a reference to bind it to the service and uses it, for example in a camel context... If the provider is not present when the consumer is deployed, the dependency failure stops the bundle activation. When the provider is correctly deployed and activated, the consumer can start and indeed it does. Now, if the provider bundle is stopped, using the shell for example, we expect the failing dependency to be detected, and the consumer bundle to be stopped too. But it doesn't happen thiw way. The provider bundle is marked "Resolved", as expected, and the bundle doen't appear as "Created". The consumer bundle remains in state "Active/Created", until a first processing fails on the missing service. After that, its state is "Active/Waiting"... Here is the copy of the shell output : The two test blueprints files are attached. The test case uses a simple basic java list, although the real bundles uses more complex project's classes. Anyway, the behavior is the same... test-service-consumer.xml <http://servicemix.396122.n5.nabble.com/file/n5721899/test-service-consumer.xml> test-service-provider.xml <http://servicemix.396122.n5.nabble.com/file/n5721899/test-service-provider.xml> At last, I've tested it on versions 4.5.3 and 5.3.0, and had the same results. Someone to confirm my understanding of the relations between dependencies and blueprint bundles life cycle, or give an idea to reach the expected behavior ? Thanks in advance. Regards. -- View this message in context: http://servicemix.396122.n5.nabble.com/Blueprint-service-references-and-bundle-lifecycle-tp5721899.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
