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