camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Freeman Fang <freeman.f...@gmail.com>
Subject Re: [VOTE] Release Apache Camel 2.8.0
Date Fri, 15 Jul 2011 07:07:06 GMT
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:ffang@fusesource.com
>>> Web: fusesource.com
>>> Twitter: freemanfang
>>> Blog: http://freemanfang.blogspot.com
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>> ---------------------------------------------
>> Freeman Fang
>>
>> FuseSource
>> Email:ffang@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:ffang@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message