On Wed, Apr 28, 2010 at 17:30, Bengt Rodehav <be...@rodehav.com> wrote:

> Thanks for your reply Willem,
>
> I will try to the bundle dependency of camel-core to my route bundle
> as you suggested - sounds like good advice.
>

This won't work I think.  The reason is that a camel component will only be
used
if the bundle containing the component is started.  However, there is no way
to
express such a dependency on a "started" bundle in OSGi.  Adding a bundle
dependency will only ensure the bundle is resolved.


>
> I wasn't sure what you mean by your last paragraph:
>
> > If you need to dependent on some specify component interface will
> introduce
> > the OSGi related dependency to the camel components.
> > We need to find another way to do it.
>
> I assume that there was a problem with my suggestion but I didn't
> quite understand what.
>
> /Bengt
>
>
>
> 2010/4/28 Willem Jiang <willem.ji...@gmail.com>:
> > Hi
> >
> > Please see my comments in the mail.
> >
> > Bengt Rodehav wrote:
> >>
> >> I'm using Karaf to deploy my Camel routes. However, I run into
> >> problems during startup due to dependency ordering. Some of these
> >> ordering problems are OSGI/Karaf specific and have nothing to do with
> >> Camel. I've discussed them on the Felix user mailing list and I have
> >> workarounds for that. The Camel problems remain though.
> >>
> >> When trying to deploy both my routes and the camel bundles in Karaf,
> >> my routes fail to iniitialize because the referenced camel component
> >> ("file:" in this case) is not registered in Camel yet. I've tried to
> >> solve this with workarounds in Karaf. It is possible but not very
> >> elegant at all.
> >
> > Can you add the bundle dependency of camel-core to your route bundle?
> >>
> >> Guillaume Nodet (via us...@felix.apache.org) suggested to me that this
> >> is more of a Camel problem than a Karaf problem. In his opinion (and
> >> mine), it would be much better if Camel published components using
> >> OSGI services. That way my services could have a service dependency on
> >> the Camel services so that my service would start when the Camel
> >> service was available. As I understand it, today Camel just scans
> >> bundles as they are started and updates its component registry. This
> >> makes it impossible for dependent bundles (like my routes) to know
> >> whether all the required prerequisites are in place before starting
> >> the route.
> >
> > That could be a solution of your issue.
> >>
> >> If components were published using a component specific interface, I
> >> could add a service dependency to that service and wait until it
> >> becomes available before trying to start my routes.
> >>
> >
> > If you need to dependent on some specify component interface will
> introduce
> > the OSGi related dependency to the camel components.
> > We need to find another way to do it.
> >
> >> Has anyone else had similar issues?What is the recommended workaround?
> >> Are there any plans for improvement?
> >>
> >> /Bengt
> >>
> >
> >
> > Willem
> >
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to