Hello

I'm working on:
 - https://issues.apache.org/jira/browse/CAMEL-11810: Lifecycle problems
for services retrieved from Blueprint container
 - https://issues.apache.org/jira/browse/ARIES-1174:  service reference
timeout when system bundle is stopping

Actually I think the problem is as old as blueprint specification itself...
<reference> returns Aries (or JDK) proxies that delegate to Callables which
return target objects.

Even specification is clear here - target services is obtained OR
org.osgi.service.blueprint.container.ServiceUnavailableException is thrown.

We all got used to this behavior and it's clear that it's not easy to
decide when we *don't need* to wait for a service which is not going to be
available (like during framework shutdown).

I'm thinking about additional interface that proxies (jdk and asm) could
implement, so we could explicitly check whether target service is available
*without wait*. One such case could be Camel context being stopped -
possibly after telling it *not to* wait for services (in case of
BlueprintCamelContext implementation).

I know it's "in specification", but having "AriesProxy.tryGetService()"
method could be useful as "implementation specific" feature... What do you
think?

regards
Grzegorz Grzybek

Reply via email to