karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Krzysztof Sobkowiak <krzys.sobkow...@gmail.com>
Subject Re: ActiveMQ and Camel 2.17.x on Karaf
Date Wed, 24 Aug 2016 23:58:30 GMT
Hi

I have just tried ActiveMQ 5.14.0 with Camel 2.17.3 on Karaf 4.0.6

karaf@root()> feature:repo-add camel 2.17.3
Adding feature url mvn:org.apache.camel.karaf/apache-camel/2.17.3/xml/features
karaf@root()> feature:repo-add activemq 5.14.0
Adding feature url mvn:org.apache.activemq/activemq-karaf/5.14.0/xml/features
karaf@root()> feature:install activemq-broker-noweb
karaf@root()> activemq:list
brokerName = amq-broker

karaf@root()> feature:install activemq-camel
karaf@root()> activemq:list
brokerName = amq-broker

karaf@root()> dstat
Name                                                Queue Size  Producer #  Consumer #   Enqueue
#   Dequeue #   Forward #    Memory %
ActiveMQ.Advisory.MasterBroker                               0           0           0   
       1           0           0           0
karaf@root()>

No more problems while installing all the components (like before). But after restart following
exception can be found in logs and the broker is down

...
Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
not found by org.apache.activemq.activemq-osgi [61]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)[org.apache.felix.framework-5.4.0.jar:]
    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.4.0.jar:]
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)[org.apache.felix.framework-5.4.0.jar:]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_80]
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)[134:org.apache.servicemix.bundles.spring-core:4.2.5.RELEASE_1]
    at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:125)[131:org.apache.servicemix.bundles.spring-beans:4.2.5.RELEASE_1]
    ... 26 more
 
The bundle exporting the missing class is installed in Karaf

karaf@root()> exports | grep org.apache.xbean.spring.context
org.apache.xbean.spring.context.impl                     | 3.18.0                        
    | 88  | org.apache.xbean.spring
org.apache.xbean.spring.context.v2                       | 3.18.0                        
    | 88  | org.apache.xbean.spring
org.apache.xbean.spring.context.v2c                      | 3.18.0                        
    | 88  | org.apache.xbean.spring
org.apache.xbean.spring.context                          | 3.18.0                        
    | 88  | org.apache.xbean.spring


The activemq-osgi bundle has enabled dynamic import, but only following xbean packages are
imported


karaf@root()> headers 61

..........

DynamicImport-Package =
    *
.........
org.apache.xbean.spring.context;resolution:=optional;version="[3.13,5)",
org.apache.xbean.spring.context.impl;resolution:=optional;version="[3.13,5)",
...............


It looks like the org.apache.xbean.spring.context.v2 package is not correctly resolved after
restart.

Regards
Krzysztof



On 13.06.2016 08:03, Jean-Baptiste Onofré wrote:
> Hi Krzysztof
>
> I will resume my work on it.
>
> I will keep you posted soon.
>
> Regards
> JB
>
> On 06/12/2016 09:34 PM, Krzysztof Sobkowiak wrote:
>> Hi
>>
>> Any news about this problem?
>>
>> Regards
>> Krzysztof
>>
>> On 28.04.2016 21:21, Krzysztof Sobkowiak wrote:
>>> It looks like it's again the problem with installing of multiple Spring versions
while ActiveMQ bundles are already present in Karaf. Spring 3.2.14.RELEASE_1 was already installed
with the broker and now all other Spring versions are installed with activemq-camel feature.
>>>
>>> karaf@root()> feature:install -v activemq-camel
>>> Adding features: activemq-camel/[5.13.3,5.13.3]
>>> Changes to perform:
>>>    Region: root
>>>      Bundles to update:
>>>        org.apache.servicemix.bundles.jaxb-impl/2.2.11.1 with mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.2.6_1
>>>      Bundles to install:
>>>        mvn:org.apache.activemq/activemq-camel/5.13.3
>>>        mvn:org.apache.camel/camel-blueprint/2.17.0
>>>        mvn:org.apache.camel/camel-catalog/2.17.0
>>>        mvn:org.apache.camel/camel-commands-core/2.17.0
>>>        mvn:org.apache.camel/camel-core/2.17.0
>>>        mvn:org.apache.camel/camel-jms/2.17.0
>>>        mvn:org.apache.camel.karaf/camel-karaf-commands/2.17.0
>>>        mvn:commons-codec/commons-codec/1.9
>>>        mvn:commons-pool/commons-pool/1.6
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.1.7.RELEASE_2
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.2.5.RELEASE_1
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.1.7.RELEASE_2
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.2.5.RELEASE_1
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.1.7.RELEASE_2
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.2.5.RELEASE_1
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.1.7.RELEASE_2
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.2.5.RELEASE_1
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.1.7.RELEASE_2
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.2.5.RELEASE_1
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.1.7.RELEASE_2
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.2.5.RELEASE_1
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.1.7.RELEASE_2
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.2.5.RELEASE_1
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.1.7.RELEASE_2
>>>        mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.2.5.RELEASE_1
>>>        mvn:org.springframework/spring-aop/3.1.4.RELEASE
>>>        mvn:org.springframework/spring-asm/3.1.4.RELEASE
>>>        mvn:org.springframework/spring-beans/3.1.4.RELEASE
>>>        mvn:org.springframework/spring-context/3.1.4.RELEASE
>>>        mvn:org.springframework/spring-context-support/3.1.4.RELEASE
>>>        mvn:org.springframework/spring-core/3.1.4.RELEASE
>>>        mvn:org.springframework/spring-expression/3.1.4.RELEASE
>>>        mvn:org.codehaus.woodstox/stax2-api/3.1.4
>>>        mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1
>>>        .......
>>>
>>> I have described something similar here http://karaf.922171.n3.nabble.com/Feature-spring-4-2-3-RELEASE-1-also-installs-bundles-from-Spring-version-3-1-4-when-activemq-is-instd-td4046213.html.
>>>
>>> Regards
>>> Krzysztof
>>>
>>>
>>>
>>> On 28.04.2016 00:27, Krzysztof Sobkowiak wrote:
>>>> Hi
>>>>
>>>> I have tried to install activemq-broker-noweb and activemq-camel features
(5.13.2, 5.13.3 and current master) with Camel 2.17.0 on Karaf 4.0.5 but with no success:
>>>>
>>>> karaf@root()> feature:repo-add camel 2.17.0
>>>> Adding feature url mvn:org.apache.camel.karaf/apache-camel/2.17.0/xml/features
>>>> karaf@root()> feature:repo-add activemq 5.13.2
>>>> Adding feature url mvn:org.apache.activemq/activemq-karaf/5.13.2/xml/features
>>>> karaf@root()> feature:install activemq-broker-noweb
>>>> karaf@root()> activemq:list
>>>> brokerName = amq-broker
>>>>
>>>> karaf@root()> feature:install activemq-camel
>>>> karaf@root()> activemq:list
>>>> karaf@root()>
>>>>
>>>> The activemq-osgi bundle is refreshed and and cannot be resolved anymore
>>>>
>>>> There is following entry in log
>>>>
>>>> Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
not found by org.apache.activemq.activemq-osgi [61]
>>>>      at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)[org.apache.felix.framework-5.4.0.jar:]
>>>>      at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.4.0.jar:]
>>>>      at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)[org.apache.felix.framework-5.4.0.jar:]
>>>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_80]
>>>>      at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1925)[org.apache.felix.framework-5.4.0.jar:]
>>>>      at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)[org.apache.felix.framework-5.4.0.jar:]
>>>>      at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:99)[124:org.springframework.osgi.core:1.2.1]
>>>>      ... 36 more
>>>>
>>>> There is a bundle providing this package
>>>>
>>>> karaf@root()> exports | grep org.apache.xbean.spring.context.v2
>>>> org.apache.xbean.spring.context.v2                       | 3.18.0       
                     | 91  | org.apache.xbean.spring
>>>> org.apache.xbean.spring.context.v2c                      | 3.18.0       
                     | 91  | org.apache.xbean.spring
>>>>
>>>> It looks like activemq-osgi doesn't import this package. But setting dynamic-imports
on it causes further error
>>>>
>>>> Caused by: java.lang.ClassNotFoundException: org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext
not found by org.apache.activemq.activemq-osgi [61]
>>>>      at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)[org.apache.felix.framework-5.4.0.jar:]
>>>>      at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.4.0.jar:]
>>>>      at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
>>>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_80]
>>>>      ... 46 more
>>>>
>>>> There is a bundle providing this package available
>>>>
>>>> karaf@root()> exports | grep org.springframework.osgi.context.support
>>>> org.springframework.osgi.context.support                 | 1.2.1        
                     | 124 | org.springframework.osgi.core
>>>>
>>>> One another interesting thing - headers command on activemq-osgi shows following
import
>>>>
>>>> org.springframework.osgi.context.support;resolution:=optional;version="[3,5)"
>>>>
>>>> but in ActiveMQ code there is following entry
>>>>
>>>> org.springframework.osgi*;version="[1,4]";resolution:=optional
>>>>
>>>> I think, the range [3,5) is the reason why the package org.springframework.osgi.context.supportcannot
be resolved, because it's provided in version 1.2.1
>>>>
>>>> Do you have any ideas why this problem happens? I think, it's something connected
with the changes in Spring dependencies in Camel 2.17.0
>>>>
>>>> Regards
>>>> Krzysztof
>>
>

-- 
Krzysztof Sobkowiak (@ksobkowiak)

JEE & OSS Architect, Integration Architect
Apache Software Foundation Member (http://apache.org/)
Apache ServiceMix Committer & PMC Member (http://servicemix.apache.org/)
Senior Solution Architect @ Capgemini SSC (http://www.capgeminisoftware.pl/)

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