Ah yeah you should use Karaf 2.2.x with Camel 2.10.x. And Karaf 2.3.x with Camel 2.11.x.
As documented here: http://camel.apache.org/karaf On Wed, May 1, 2013 at 11:08 PM, Christian Müller <[email protected]> wrote: > Camel 2.10.x is only tested with Karaf 2.2.x. > > Sent from a mobile device > Am 01.05.2013 10:41 schrieb "Tobias Hofer" <[email protected]>: > >> Hi >> >> > Yeah would assume depends-on attributes ought to tell blueprint in >> > which order to shutdown its beans etc. >> > Or somehow you can try to get <camelContext> as being the first >> > "bean" >> > blueprint should try to shutdown, as then Camel will complete all its >> > inflight messages first, and hence the <beans> should be shutdown >> > later. >> Exactly. Blueprint is responsible for computing the dependency order. On >> shutdown, the deconstruction must be done in reverse order. >> >> Therefore I tried to explicitly declare the dependency from CamelContext >> to Bean in order to get the CamelContext deconstructed first. >> >> Is Blueprint able to compute the dependencies for a CamelContext? Has it >> any clue about the referenced beans? >> >> Does the CamelContext shutdown synchronously to the deconstruction >> request of Blueprint? If not, that could be a possible cause, that >> dependent Beans get destroyed even if CamelContext is still alive. >> >> >> > You can also enable cache on the bean endpoint to avoid the lookups >> > >> > <bean uri="ref:myBean?cache=true" /> >> > >> Yes this helps, but only for beans (component instances). If the >> bean endpoint calls a OSGi service reference then call will fail caused >> by a ServiceUnavailableException. >> >> >> > And when you see this error, does that only happen if the aggregator >> > has messages that hasn't been fully aggregated, but are forced to be >> > completed when stopping? eg this doesn't happen when stopping and the >> > aggregator is empty? >> Stopping it without any inflight and pending exchanges works. In other >> words, there error does not occur, if the aggregator did never aggregate >> a message, or if all messages has been aggregated before shutdown. >> >> I'm able to stop the CamelContext manually at any time successfully. Even >> if there are pending messages that are forced to be completed when >> stopping. >> >> The error occurs only if I stop the whole Bundle. >> >> >> >> > >> > >> > >> > On Tue, Apr 30, 2013 at 1:25 PM, Tobias Hofer >> > <[email protected]> wrote: >> > > Hi all, >> > > >> > > I'm running Camel 2.10.4 in Karaf 2.3.1 and get >> > > NoSuchComponentException >> > > during the shutdown process. >> > > >> > > My blueprint configuration file declares a bean which is a Camel >> > > Processor >> > > >> > > <bean id="myBean" class="org.example.MyBean" /> >> > > >> > > The CamelContext contains a route that aggregates incoming messages >> > > and >> > > which forces a completion on stop. >> > > >> > > <route> >> > > <from uri="direct:aggregate" /> >> > > <aggregate strategyRef="aggregationStrategy" >> > > forceCompletionOnStop="true" ...> >> > > ... >> > > <to uri="direct:onCompletion" /> >> > > </aggregate> >> > > </route> >> > > >> > > The second route contains the bean invocation >> > > >> > > <route> >> > > <from uri="direct:onCompletion" /> >> > > ... >> > > <bean ref="myBean" /> >> > > ... >> > > </route> >> > > >> > > During shutdown the bean invocation in the second route fails >> > > >> > > org.apache.camel.RuntimeCamelException: >> > > org.osgi.service.blueprint.container.NoSuchComponentException: No >> > > component with id >> > > 'myBean' could be found >> > > at >> > > >> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1316) >> > > at >> > > >> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookup(PropertyPlaceholderDelegateRegistry.java:51) >> > > at >> > > >> org.apache.camel.component.bean.RegistryBean.lookupBean(RegistryBean.java:136) >> > > at >> > > >> org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:62) >> > > at >> > > >> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:77) >> > > at >> > > >> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) >> > > ... >> > > Caused by: >> > > org.osgi.service.blueprint.container.NoSuchComponentException: No >> > > component with id 'myBean' could be found >> > > at >> > > >> org.apache.aries.blueprint.container.BlueprintContainerImpl.getComponentInstance(BlueprintContainerImpl.java:742) >> > > at >> > > >> org.apache.camel.blueprint.BlueprintContainerRegistry.lookup(BlueprintContainerRegistry.java:41) >> > > at >> > > >> org.apache.camel.impl.CompositeRegistry.lookup(CompositeRegistry.java:68) >> > > at >> > > >> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookup(PropertyPlaceholderDelegateRegistry.java:49) >> > > >> > > I tried to add a 'depends-on' property on the CamelContext >> > > declaration but >> > > this seems not to help. >> > > >> > > It looks like that the Blueprint Container is no longer available. >> > > >> > > Any suggestions? >> > > >> > > Regards, >> > > Tobias Hofer >> > > >> > > >> > > >> > > >> > > >> > >> > >> > >> > -- >> > Claus Ibsen >> > ----------------- >> > Red Hat, Inc. >> > FuseSource is now part of Red Hat >> > Email: [email protected] >> > Web: http://fusesource.com >> > Twitter: davsclaus >> > Blog: http://davsclaus.com >> > Author of Camel in Action: http://www.manning.com/ibsen >> > >> -- Claus Ibsen ----------------- Red Hat, Inc. FuseSource is now part of Red Hat Email: [email protected] Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen
