Hi Christian,

As camel used widely in OSGi container and next Servicemix 4.4 release target to use camel 2.8.0, without this fix it means any camel bundle with src/main/resources/META-INF/services/org/apache/camel/ TypeConverter can't work in OSGi container, IMHO this is a critical issue camel team should address before release.

Freeman
On 2011-7-15, at 下午2:56, Christian Schneider wrote:

+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









Reply via email to