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