Zach,

I think the Blueprint namespace handler should actually be able to
wait for components to be added to the OSGi Service Registry.  Are you
using Blueprint or Spring to define the Camel routes?


Regards,

Gert Vanthienen


On Wed, Oct 30, 2013 at 10:09 PM, Zach Calvert <[email protected]> wrote:
> Hello,
> 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:
> http://0.0.0.0:9089/health/?matchOnUriPrefix=true"; />
>             <camel:to uri="cxfbean:healthService" />
>         </camel:route>
>
> The health service implementation is a standard javax.ws.rs annotated
> class.  The cxfbean 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:http://0.0.0.0:9089... 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/ecs.bundles.health-2.3.0.25-SNAPSHOT.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.

Reply via email to