I'm working on CAMEL-2693 which main purpose is to use OSGi service dependencies for components, languages, dataformats. This will solve a big ordering problem in OSGi (solved at least when using blueprint) which is the fact that the routes can be started while components are not available yet, thus leading to startup failures. I have things mostly working using: * an OSGi activator in camel-core that scans new bundles and register a ComponentResolver, LanguageResolver and DataFormatResolver as required for each bundle * modification to the OSGi aware camel context to look for components, languages and dataformats from the osgi registry * enhanced the blueprint namespace handler to add osgi service dependencies to those things that are known to be needed (by browsing the route definitions)
Now, the last problem I have is around type converters. It seems type converters are global, which mean that in theory, registering a new bundle could have a side effect on override another type converter thus causing a route to fail at the next start. I think that's a real problem we want to address. Also, unless the components / languages / dataformats, type converters can't be found before actually running the route, so it's kinda difficult to actually know which ones are needed and if they are present or not. Last problem, and this is not specific to type converters is about the camel context lifecycle wrt components and such. What if the bundle of a used component is uninstalled (or stopped even). Should we stop the camel context too ? Feedback welcomed ! -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com