Freemans patch for fixing Camel not being able to run properly in OSGi containers such as SMX 4.4 has been applied to trunk in rev: 1147021
On Fri, Jul 15, 2011 at 9:18 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Fri, Jul 15, 2011 at 9:11 AM, Freeman Fang <freeman.f...@gmail.com> wrote: >> Hi Christian, >> >> As I mentioned in previous mail it prevent camel bundle with >> src/main/resources/META-INF/services/org/apache/camel/TypeConverter can't >> work in OSGi container. >> > > I will cast a -1 since Apache Camel is such a key infrastructure in > Apache ServiceMix, that it would affect the majority of ServiceMix > users. > > > >> Freeman >> On 2011-7-15, at 下午3:01, Christian Schneider wrote: >> >>> Quick question to Freeman. Does this exception prevent camel from working >>> in OSGi or is it just annoying for the user? >>> >>> Christian >>> >>> >>> Am 15.07.2011 08:56, schrieb Christian Schneider: >>>> >>>> +0 >>>> >>>> I think this issue is quite a bit ugly in OSGi but I think it does not >>>> absolutely warrant a new release. >>>> What do others think? >>>> >>>> Christian >>>> >>>> >>>> Am 15.07.2011 08:14, schrieb Freeman Fang: >>>>> >>>>> Hi Team, >>>>> >>>>> Figured out this was caused by improper call >>>>> BaseTypeConverterRegistry.loadTypeConverters() in OSGi container, which >>>>> throw exception and prevent Activator in camel-core to get chance to load >>>>> type converter from bundles, so it's may not only affect the JBI example I >>>>> mentioned before , create CAMEL-4231[1] to track it and patch appended. >>>>> Could someone kindly review and apply this patch if it's ok? >>>>> >>>>> [1]https://issues.apache.org/jira/browse/CAMEL-4231 >>>>> >>>>> Freeman >>>>> On 2011-7-14, at 下午9:50, Freeman Fang wrote: >>>>> >>>>>> Hi Team, >>>>>> >>>>>> I build servicemix component and then servicemix 4 kit against camel >>>>>> 2.8.0 stage repo. >>>>>> >>>>>> I found one issue that when I try to deploy camel and bridge-camel >>>>>> example shipped with servicemix4 kit. >>>>>> I get stacktrace like >>>>>> <![CDATA[org.apache.camel.RuntimeCamelException: Error staring >>>>>> OSGiTypeConverter due: Failed to load type converters because of: Cannot >>>>>> find any type converter classes from the following packages: >>>>>> [org.apache.servicemix.camel.converter] >>>>>> at >>>>>> org.apache.camel.core.osgi.OsgiTypeConverter.createRegistry(OsgiTypeConverter.java:165) >>>>>> at >>>>>> org.apache.camel.core.osgi.OsgiTypeConverter.getDelegate(OsgiTypeConverter.java:135) >>>>>> at >>>>>> org.apache.camel.core.osgi.OsgiTypeConverter.addingService(OsgiTypeConverter.java:63) >>>>>> at >>>>>> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896) >>>>>> at >>>>>> org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:261) >>>>>> at >>>>>> org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184) >>>>>> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:339) >>>>>> at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:273) >>>>>> at >>>>>> org.apache.camel.core.osgi.OsgiTypeConverter.doStart(OsgiTypeConverter.java:87) >>>>>> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67) >>>>>> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54) >>>>>> at >>>>>> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:56) >>>>>> at >>>>>> org.apache.camel.impl.DefaultCamelContext.startServices(DefaultCamelContext.java:1629) >>>>>> at >>>>>> org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:911) >>>>>> at >>>>>> org.apache.camel.impl.DefaultCamelContext.getTypeConverter(DefaultCamelContext.java:994) >>>>>> at >>>>>> org.apache.camel.impl.DefaultCamelContext.getTypeConverterRegistry(DefaultCamelContext.java:1011) >>>>>> at >>>>>> org.apache.camel.impl.DefaultCamelContext.forceLazyInitialization(DefaultCamelContext.java:1957) >>>>>> at >>>>>> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1433) >>>>>> at >>>>>> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1346) >>>>>> at >>>>>> org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:160) >>>>>> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67) >>>>>> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54) >>>>>> at >>>>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1324) >>>>>> at >>>>>> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:204) >>>>>> at >>>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:99) >>>>>> at >>>>>> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:240) >>>>>> at >>>>>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97) >>>>>> at >>>>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303) >>>>>> at >>>>>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911) >>>>>> at >>>>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428) >>>>>> at >>>>>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:86) >>>>>> at >>>>>> org.apache.servicemix.camel.CamelSpringDeployer.deploy(CamelSpringDeployer.java:76) >>>>>> at >>>>>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:86) >>>>>> at >>>>>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69) >>>>>> at >>>>>> org.apache.servicemix.jbi.deployer.artifacts.ServiceUnitImpl.deploy(ServiceUnitImpl.java:104) >>>>>> at >>>>>> org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.deploySUs(ServiceAssemblyInstaller.java:207) >>>>>> at >>>>>> org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.install(ServiceAssemblyInstaller.java:85) >>>>>> at >>>>>> org.apache.servicemix.jbi.deployer.impl.Deployer.onBundleStarted(Deployer.java:330) >>>>>> at >>>>>> org.apache.servicemix.jbi.deployer.impl.Deployer.bundleChanged(Deployer.java:260) >>>>>> at >>>>>> org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:807) >>>>>> at >>>>>> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:729) >>>>>> at >>>>>> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:610) >>>>>> at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3761) >>>>>> at org.apache.felix.framework.Felix.startBundle(Felix.java:1787) >>>>>> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:918) >>>>>> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:905) >>>>>> at >>>>>> org.apache.karaf.shell.osgi.InstallBundle.doExecute(InstallBundle.java:54) >>>>>> at >>>>>> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38) >>>>>> at >>>>>> org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35) >>>>>> at >>>>>> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78) >>>>>> at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:474) >>>>>> at >>>>>> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:400) >>>>>> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) >>>>>> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) >>>>>> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) >>>>>> at >>>>>> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:79) >>>>>> at org.apache.karaf.shell.console.jline.Console.run(Console.java:240) >>>>>> at java.lang.Thread.run(Thread.java:680) >>>>>> Caused by: org.apache.camel.TypeConverterLoaderException: Failed to >>>>>> load type converters because of: Cannot find any type converter classes >>>>>> from >>>>>> the following packages: [org.apache.servicemix.camel.converter] >>>>>> at >>>>>> org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:90) >>>>>> at >>>>>> org.apache.camel.impl.converter.BaseTypeConverterRegistry.loadTypeConverters(BaseTypeConverterRegistry.java:406) >>>>>> at >>>>>> org.apache.camel.impl.converter.DefaultTypeConverter.doStart(DefaultTypeConverter.java:42) >>>>>> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67) >>>>>> at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54) >>>>>> at >>>>>> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:56) >>>>>> at >>>>>> org.apache.camel.core.osgi.OsgiTypeConverter.createRegistry(OsgiTypeConverter.java:163) >>>>>> ... 57 more >>>>>> >>>>>> But in the org.apache.servicemix.camel.converter(it's servicemix-camel >>>>>> jbi component code base) package, there is a JbiConverter[1] class which >>>>>> has >>>>>> converter annotation, seems it's another classloader issue due to recent >>>>>> change in camel. I'm not sure if we can workaround it on servicemix side >>>>>> now, so I have to say -1. >>>>>> >>>>>> >>>>>> [1]https://svn.apache.org/repos/asf/servicemix/components/trunk/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/converter/JbiConverter.java >>>>>> >>>>>> Freeman >>>>>> >>>>>> >>>>>> On 2011-7-14, at ä¸Šå ˆ4:49, Hadrian Zbarcea wrote: >>>>>> >>>>>>> A new minor release apache-camel-2.8.0 is out with approximately 409 >>>>>>> issues resolved: improvements and bug fixes [1]. This is a release with >>>>>>> a >>>>>>> record number of fixes and reflects the increased popularity of Apache >>>>>>> Camel >>>>>>> and our growing community. >>>>>>> >>>>>>> Please find the staging repo here: >>>>>>> https://repository.apache.org/content/repositories/orgapachecamel-023/ >>>>>>> >>>>>>> The tarballs are here >>>>>>> >>>>>>> https://repository.apache.org/content/repositories/orgapachecamel-023/org/apache/camel/apache-camel/2.8.0/ >>>>>>> >>>>>>> Tag: >>>>>>> http://svn.apache.org/repos/asf/camel/tags/camel-2.8.0/ >>>>>>> >>>>>>> Please review, test and vote to approve this release binary. Your vote >>>>>>> counts! >>>>>>> >>>>>>> [ ] +1 Release the binary as Apache Camel 2.8.0 >>>>>>> [ ] -1 Veto the release (provide specific comments) >>>>>>> Vote is open for at least 72 hours. >>>>>>> >>>>>>> Here's my +1 >>>>>>> Hadrian >>>>>>> >>>>>>> [1] >>>>>>> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311211&version=12316226 >>>>>> >>>>>> --------------------------------------------- >>>>>> Freeman Fang >>>>>> >>>>>> FuseSource >>>>>> Email:ff...@fusesource.com >>>>>> Web: fusesource.com >>>>>> Twitter: freemanfang >>>>>> Blog: http://freemanfang.blogspot.com >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> --------------------------------------------- >>>>> Freeman Fang >>>>> >>>>> FuseSource >>>>> Email:ff...@fusesource.com >>>>> Web: fusesource.com >>>>> Twitter: freemanfang >>>>> Blog: http://freemanfang.blogspot.com >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>> >>> -- >>> Christian Schneider >>> http://www.liquid-reality.de >>> >>> Open Source Architect >>> http://www.talend.com >>> >> >> --------------------------------------------- >> Freeman Fang >> >> FuseSource >> Email:ff...@fusesource.com >> Web: fusesource.com >> Twitter: freemanfang >> Blog: http://freemanfang.blogspot.com >> >> >> >> >> >> >> >> >> >> > > > > -- > Claus Ibsen > ----------------- > FuseSource > Email: cib...@fusesource.com > Web: http://fusesource.com > Twitter: davsclaus, fusenews > Blog: http://davsclaus.blogspot.com/ > Author of Camel in Action: http://www.manning.com/ibsen/ > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/