If blueprint has a mandatory service defined it goes into grace period until the service is up (time by default 5 minutes I think). For optional services it does not wait at all. So if you bundle A offers services that B needs to come up then at the time A comes up B can not yet be up. That means if you just inject the optional service provided by B and use it in a factory it will always fail.

For a setting see config.properties
org.apache.aries.blueprint.synchronous=true

So you could switch karaf do statup blueprint bundles asynchronously. Be aware though that this can cause timing and concurrency issues if your bundles are not designed very carefully.

Christian


On 18.09.2015 15:19, CLEMENT Jean-Philippe wrote:

In that case it would mean that the Blueprint used in Karaf 3.0.2 was bugged… why not. But I don’t catch how the system determines that the service publishing/discovery has ended and then missing services are errors. I have the feeling that the starting phase ends too early for some reason.

Are there any Aries blueprint settings about parallelism or things like that?

JP

[@@ OPEN @@]



--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to