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/

Reply via email to