camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Calvert, Zach (Zach)** CTR **" <>
Subject RE: Component Resolution, Camel/SMX Race Condition?
Date Thu, 31 Oct 2013 14:29:12 GMT
Hi Willem,
Thank you for the help, unfortunately it did not solve the problem.  I have confirmed I have
my MANIFEST.MF updated to include:
Require-Bundle: org.apache.camel.camel-cxf
Tool: Bnd-1.50.0

This still does not solve our problem.   I will create a sample bundle as a sub example of
the examples project in 4.5.3 and submit a bug against ServiceMix since I think it may be
in the framework.

Zach Calvert

-----Original Message-----
From: Willem jiang [] 
Sent: Wednesday, October 30, 2013 9:45 PM
Subject: Re: Component Resolution, Camel/SMX Race Condition?

As the cxfbeanReference wasn’t used by Camel as an OSGi service, so you setting cannot block
the loading of the CamelContext.
How about adding the Required-Bundle of camel-cxf in your application bundle?

Willem Jiang

Red Hat, Inc.
Blog: ( (English)
 ( (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem

On Thursday, October 31, 2013 at 5:44 AM, Calvert, Zach (Zach)** CTR ** wrote:

> This is somewhat of a cross post between here and the ApacheServiceMix mailing list,
but I'm thinking I should have fired this email to camel in the first place. I apologize for
the cross post in advance.
> I'm making use of the cxfbean component in Apache ServiceMix 4.5.3. I have reviewed the
source and OSGI services being exposed here to try to get around the race condition I am experiencing,
but while the service is up and running, ServiceMix/Camel does not yet recognize the component
and I'm not sure who to direct this question/problem to.
> Breakdown:
> I have a bundle which has the following route:
> <camel:route>
> <camel:from uri="jetty:
>" /> <camel:to 
> uri="cxfbean:healthService" /> </camel:route>
> The health service implementation is a standard annotated 
> class. The cxfbean component is exposed in the camel-cxf feature under the camel-cxf-2.10.7
bundle (I have confirmed). To try to enforce that the cxfbean service really, really is running,
I have added <osgi:reference id="cxfbeanReference" cardinality="1..1"
> interface="org.apache.camel.spi.ComponentResolver"
> filter="(component=cxfbean)" />
> to my bundle. This osgi reference is met and fully populated, however 
> I still get
> "----
> Caused by: org.apache.camel.FailedToCreateRouteException: Failed to 
> create route route1 at: >>> To[cxfbean:healthService] <<< in route:
> Route[[From[jetty: because of Failed to resolve
> endpoint: cxfbean://healthService due to: No component found with scheme:
> cxfbean
> ---"
> in my ServiceMix startup. Note that this bundle is deployed in the 
> apache-servicemix-4.5.3/deploy directory on a Linux machine.
> This issue can be resolved simply by waiting for ServiceMix to be 
> started for a few minutes and then run touch 
> ./apache-servicemix-4.5.3/deploy/
> jar
> I would like to have the bundle block until the "cxfbean" component is fully started.
Again this is a race condition and functionality is fully restored by waiting a couple of
minutes and then running touch on the bundle that exposes this camel route.
> Is there a way to say "Really wait on starting this bundle until the cxfbean component
is fully started and ready to go"?
> Thank you,
> Zach Calvert

View raw message