Helllo Willem, Really interesting URL about the OSGi improvements in Camel. Will these things be part of Camel 2.4? When? In what state is the new OSGi support? Guillaume mentions that he is creating services that one can depend on (which is what I have discussed with hime on another thread). If this works now, then I can probably drop my OSGi extender that I use for that purpose. It would be interesting to know the new pattern/best practice for using Camel in OSGi.
Anyway, I tried adding the import you mentioned. I'm not sure I understood you correctly. I first tried adding it as a dynamic import. This didn't work since neither the dash nor forward slash characters are accepted by the maven-bundle-plugin in a DynamicImport-Package instruction. I then added META-INF/services/org/apache/camel/component/ in an Import-Package. The maven-bundle-plugin accepted this. However my bundle then no longer resolves since that import is not found in runtime. I then marked it as optional. My bundle then resolves but when the camel context is started I get the same exception as before. When I look at camel-core and camel-ftp they don't seem to export the META-INF/services/org/apache/camel/component/ package. How then could I hope to being able to import it? I'm probably missing something here. The error message indicates that Camel is looking for "strategy.factory.file" in META-INF/services/org/apache/camel/component/. I'm not sure what that means. I can see that in camel-core there is a file called "file" in the META-INF/services/org/apache/camel/component/ folder. That file contains a property called "strategy.factory.class". I assume the value of that property is what we are looking for. Still can't figure out how my bundle can access the directory if it's not exported. /Bengt 2010/6/13 Willem Jiang <willem.ji...@gmail.com> > Hi Bengt, > > You need also add the package import of > "META-INF/services/org/apache/camel/component/" > > As the OsgiFactoryFinder is changed to use camel application bundle to load > the resource, you need to make sure your application bundle has the right to > access the file. > > BTW, there are some discusses about the refactoring that you can take a > look[1] > > [1] > http://old.nabble.com/-DISCUSS--OSGi-improvements-and-type-converters-ts28776216.html#a28776216 > > Willem > > Bengt Rodehav wrote: > >> Willem, >> >> There might still be some OSGi related problems. When testing different >> failing scenarios I got the following exception: >> >> 21:44:59,398 | DEBUG | guration Updater | FileEndpoint >> | >> mponent.file.GenericFileEndpoint 138 | No strategy factory defined in >> 'META-INF/services/org/apache/camel/component/' >> org.apache.camel.NoFactoryAvailableException: Could not find factory class >> for resource: strategy.factory.file >> at >> >> org.apache.camel.core.osgi.OsgiFactoryFinder.findClass(OsgiFactoryFinder.java:71) >> at >> >> org.apache.camel.component.file.GenericFileEndpoint.createGenericFileStrategy(GenericFileEndpoint.java:134) >> at >> >> org.apache.camel.component.file.GenericFileEndpoint.getGenericFileProcessStrategy(GenericFileEndpoint.java:118) >> at >> >> org.apache.camel.component.file.GenericFileConsumer.doStart(GenericFileConsumer.java:397) >> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:56) >> at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:53) >> at >> >> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1015) >> >> Seems like Camel cannot find any factory class for >> "strategy.factory.file". >> Sounds fishy to me and seems related to the class loading issues I had >> before. Can you check that the OSGi refactoring that has been made in >> Camel >> 2.4 takes this into account? I'll try to reproduce the error. >> >> /Bengt >> >>