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
