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 Mon, 23 Jan 2017 23:48:20 GMT
Hi

I have performed some analysis for 2.17.5 (for 2.18.x problem looks more complicated)

karaf@root()> feature:repo-add camel 2.17.5
Adding feature url mvn:org.apache.camel.karaf/apache-camel/2.17.5/xml/features
karaf@root()> feature:repo-add activemq 5.14.3
Adding feature url mvn:org.apache.activemq/activemq-karaf/5.14.3/xml/features

And now:

karaf@root()> feature:install -v activemq-camel
Adding features: activemq-camel/[5.14.3,5.14.3]
Changes to perform:
  Region: root
    Bundles to install:
.....
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/3.2.17.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/4.2.8.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/3.2.17.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/4.2.8.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/3.2.17.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/4.2.8.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/3.2.17.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/4.2.8.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/3.2.17.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/4.2.8.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/3.2.17.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/4.2.8.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/3.2.17.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/4.2.8.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/3.2.17.RELEASE_1
      mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/4.2.8.RELEASE_1

2 versions of Spring are installed.

Now:

karaf@root()> list -t 0
START LEVEL 100 , List Threshold: 0
ID | State    | Lvl | Version          | Name
------------------------------------------------------------------------------------------------------------
....
69 | Active   |  30 | 3.2.17.RELEASE_1 | Apache ServiceMix :: Bundles :: spring-aop
70 | Active   |  30 | 4.2.8.RELEASE_1  | Apache ServiceMix :: Bundles :: spring-aop
71 | Active   |  30 | 3.2.17.RELEASE_1 | Apache ServiceMix :: Bundles :: spring-beans
72 | Active   |  30 | 4.2.8.RELEASE_1  | Apache ServiceMix :: Bundles :: spring-beans
73 | Active   |  30 | 3.2.17.RELEASE_1 | Apache ServiceMix :: Bundles :: spring-context
74 | Active   |  30 | 4.2.8.RELEASE_1  | Apache ServiceMix :: Bundles :: spring-context
75 | Active   |  30 | 3.2.17.RELEASE_1 | Apache ServiceMix :: Bundles :: spring-context-support
76 | Active   |  30 | 4.2.8.RELEASE_1  | Apache ServiceMix :: Bundles :: spring-context-support
77 | Active   |  30 | 3.2.17.RELEASE_1 | Apache ServiceMix :: Bundles :: spring-core
78 | Active   |  30 | 4.2.8.RELEASE_1  | Apache ServiceMix :: Bundles :: spring-core
79 | Active   |  30 | 3.2.17.RELEASE_1 | Apache ServiceMix :: Bundles :: spring-expression
80 | Active   |  30 | 4.2.8.RELEASE_1  | Apache ServiceMix :: Bundles :: spring-expression
81 | Active   |  30 | 3.2.17.RELEASE_1 | Apache ServiceMix :: Bundles :: spring-jms
82 | Active   |  30 | 4.2.8.RELEASE_1  | Apache ServiceMix :: Bundles :: spring-jms
83 | Active   |  30 | 3.2.17.RELEASE_1 | Apache ServiceMix :: Bundles :: spring-tx
84 | Active   |  30 | 4.2.8.RELEASE_1  | Apache ServiceMix :: Bundles :: spring-tx

And when you examine the dependency tree of activemq-camel you can see following (excuse me
long listings):

karaf@root()> bundle:tree-show 52
Bundle org.apache.activemq.activemq-camel [52] is currently ACTIVE

org.apache.activemq.activemq-camel [52]
+- org.apache.servicemix.bundles.spring-core [77]
|  +- org.ops4j.pax.logging.pax-logging-api [1]
|     +- org.apache.karaf.services.eventadmin [6]
|        +- org.apache.felix.configadmin [3]
|        +- org.apache.felix.metatype [5]
+- org.apache.servicemix.bundles.spring-jms [81]
|  +- org.apache.servicemix.bundles.spring-core [77]
|  +- org.apache.servicemix.bundles.spring-beans [71]
|  |  +- org.apache.servicemix.bundles.spring-core [77]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.servicemix.bundles.spring-aop [69]
|  |  +- org.apache.servicemix.bundles.spring-core [77]
|  |  +- org.apache.servicemix.bundles.spring-beans [71]
|  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  +- org.apache.commons.pool [61]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.servicemix.bundles.spring-context [73]
|  |  +- org.apache.servicemix.bundles.spring-expression [79]
|  |  |  +- org.apache.servicemix.bundles.spring-core [77]
|  |  +- org.apache.servicemix.bundles.spring-core [77]
|  |  +- org.apache.servicemix.bundles.spring-aop [69]
|  |  +- org.apache.servicemix.bundles.spring-beans [71]
|  |  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  |  |  +- org.apache.geronimo.specs.geronimo-jta_1.1_spec [65]
|  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  +- org.apache.servicemix.bundles.spring-tx [83]
|  |  +- org.apache.servicemix.bundles.spring-core [77]
|  |  +- org.apache.geronimo.specs.geronimo-jta_1.1_spec [65]
|  |  +- org.apache.servicemix.bundles.spring-beans [71]
|  |  +- org.apache.servicemix.bundles.spring-aop [69]
|  |  +- org.apache.servicemix.bundles.spring-context [73]
|  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.servicemix.bundles.aopalliance [67]
|  +- org.ops4j.pax.logging.pax-logging-api [1]
+- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
+- org.apache.servicemix.bundles.spring-tx [83]
+- org.apache.activemq.activemq-osgi [53]
|  +- org.apache.geronimo.specs.geronimo-jta_1.1_spec [65]
|  +- org.apache.commons.net [60]
|  +- org.apache.aries.blueprint.api [10]
|  +- org.apache.servicemix.bundles.spring-beans [71]
|  +- org.apache.hadoop.zookeeper [66]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.jvnet.jaxb2_commons.jaxb2-basics-runtime [86]
|  |  +- org.apache.servicemix.bundles.jaxb-impl [68]
|  +- org.apache.aries.blueprint.core [12]
|  |  +- org.apache.aries.proxy.api [19]
|  |  |  +- org.apache.aries.util [21]
|  |  |     +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  +- org.apache.aries.blueprint.api [10]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  +- org.apache.aries.util [21]
|  |  +- org.apache.karaf.services.eventadmin [6]
|  +- org.apache.geronimo.specs.geronimo-j2ee-management_1.1_spec [63]
|  +- org.apache.camel.camel-jms [58]
|  |  +- org.apache.servicemix.bundles.spring-jms [81]
|  |  +- org.apache.servicemix.bundles.spring-core [77]
|  |  +- org.apache.servicemix.bundles.spring-beans [71]
|  |  +- org.apache.servicemix.bundles.spring-context [73]
|  |  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  |  +- org.apache.servicemix.bundles.spring-tx [83]
|  |  +- org.apache.camel.camel-core [57]
|  |  |  +- org.apache.servicemix.bundles.spring-tx [84]
|  |  |  |  +- org.apache.servicemix.bundles.spring-aop [70]
|  |  |  |  |  +- org.apache.commons.pool2 [62]
|  |  |  |  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  |  |  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  |  |  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  |  |  |  +- org.apache.servicemix.bundles.spring-beans [72]
|  |  |  |  |  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  |  |  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  |  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  |  |  |  +- org.apache.commons.pool [61]
|  |  |  |  +- org.apache.servicemix.bundles.spring-context [74]
|  |  |  |  |  +- org.apache.servicemix.bundles.spring-aop [70]
|  |  |  |  |  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  |  |  |  |  +- org.apache.servicemix.bundles.spring-expression [80]
|  |  |  |  |  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  |  |  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  |  |  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  |  |  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  |  |  |  +- org.apache.servicemix.bundles.spring-beans [72]
|  |  |  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  |  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  |  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  |  |  +- org.apache.servicemix.bundles.spring-beans [72]
|  |  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.servicemix.bundles.spring-core [77]
|  +- org.apache.servicemix.bundles.spring-jms [81]
|  +- org.apache.servicemix.bundles.spring-aop [69]
|  +- org.apache.felix.configadmin [3]
|  +- org.apache.servicemix.bundles.spring-context [73]
|  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  +- org.apache.servicemix.bundles.spring-tx [83]
|  +- org.apache.commons.pool2 [62]
|  +- org.objectweb.asm.all [50]
|  +- org.apache.servicemix.bundles.aopalliance [67]
|  +- org.apache.camel.camel-core [57]
|  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.xbean.spring [85]
|     +- org.apache.servicemix.bundles.spring-core [77]
|     +- org.apache.servicemix.bundles.spring-beans [71]
|     +- org.apache.servicemix.bundles.spring-context [73]
|     +- org.ops4j.pax.logging.pax-logging-api [1]
+- org.apache.camel.camel-core [57]
+- org.ops4j.pax.logging.pax-logging-api [1]
+- org.apache.camel.camel-jms [58]


As you can see, almost everywhere the version 3.2.17.RELEASE_1 of Spring  bundles are wired,
but camel-core wires the Spring 4.2.8.RELEASE_1

Of course, after restart well known exception

Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
not found by org.apache.activemq.activemq-osgi [53]

Let's inspect again.

karaf@root()> bundle:tree-show 52
Bundle org.apache.activemq.activemq-camel [52] is currently ACTIVE

org.apache.activemq.activemq-camel [52]
+- org.apache.servicemix.bundles.spring-tx [84]
|  +- org.apache.servicemix.bundles.spring-aop [70]
|  |  +- org.apache.commons.pool2 [62]
|  |  +- org.apache.commons.pool [61]
|  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  +- org.apache.servicemix.bundles.spring-beans [72]
|  |  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  |  |     +- org.apache.karaf.services.eventadmin [6]
|  |  |  |        +- org.apache.felix.metatype [5]
|  |  |  |        +- org.apache.felix.configadmin [3]
|  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.servicemix.bundles.spring-context [74]
|  |  +- org.apache.servicemix.bundles.spring-expression [80]
|  |  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  +- org.apache.servicemix.bundles.spring-aop [70]
|  |  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  |  |  +- org.apache.geronimo.specs.geronimo-jta_1.1_spec [65]
|  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  +- org.apache.servicemix.bundles.spring-beans [72]
|  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.servicemix.bundles.aopalliance [67]
|  +- org.apache.servicemix.bundles.spring-beans [72]
|  +- org.apache.servicemix.bundles.spring-core [78]
|  +- org.ops4j.pax.logging.pax-logging-api [1]
+- org.apache.activemq.activemq-osgi [53]
|  +- org.apache.commons.pool2 [62]
|  +- org.apache.geronimo.specs.geronimo-j2ee-management_1.1_spec [63]
|  +- org.apache.felix.configadmin [3]
|  +- org.apache.hadoop.zookeeper [66]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.aries.blueprint.core [12]
|  |  +- org.apache.karaf.services.eventadmin [6]
|  |  +- org.apache.aries.blueprint.api [10]
|  |  +- org.apache.aries.proxy.api [19]
|  |  |  +- org.apache.aries.util [21]
|  |  |     +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  |  +- org.apache.aries.util [21]
|  +- org.apache.commons.net [60]
|  +- org.apache.servicemix.bundles.spring-context [74]
|  +- org.apache.camel.camel-core [57]
|  |  +- org.apache.servicemix.bundles.spring-tx [84]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.apache.servicemix.bundles.spring-core [78]
|  +- org.apache.servicemix.bundles.spring-tx [84]
|  +- org.apache.servicemix.bundles.spring-aop [70]
|  +- org.apache.servicemix.bundles.spring-jms [82]
|  |  +- org.apache.servicemix.bundles.spring-expression [80]
|  |  +- org.apache.servicemix.bundles.spring-tx [84]
|  |  +- org.apache.servicemix.bundles.spring-aop [70]
|  |  +- org.apache.servicemix.bundles.spring-context [74]
|  |  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  |  +- org.apache.servicemix.bundles.aopalliance [67]
|  |  +- org.apache.servicemix.bundles.spring-beans [72]
|  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.jvnet.jaxb2_commons.jaxb2-basics-runtime [86]
|  |  +- org.apache.servicemix.bundles.jaxb-impl [68]
|  +- org.apache.aries.blueprint.api [10]
|  +- org.objectweb.asm.all [50]
|  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  +- org.apache.servicemix.bundles.aopalliance [67]
|  +- org.apache.servicemix.bundles.spring-beans [72]
|  +- org.apache.geronimo.specs.geronimo-jta_1.1_spec [65]
|  +- org.apache.camel.camel-jms [58]
|  |  +- org.apache.servicemix.bundles.spring-tx [84]
|  |  +- org.apache.servicemix.bundles.spring-jms [82]
|  |  +- org.apache.servicemix.bundles.spring-context [74]
|  |  +- org.apache.camel.camel-core [57]
|  |  +- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
|  |  +- org.apache.servicemix.bundles.spring-beans [72]
|  |  +- org.apache.servicemix.bundles.spring-core [78]
|  |  +- org.ops4j.pax.logging.pax-logging-api [1]
|  +- org.ops4j.pax.logging.pax-logging-api [1]
+- org.apache.servicemix.bundles.spring-jms [82]
+- org.apache.camel.camel-core [57]
+- org.apache.geronimo.specs.geronimo-jms_1.1_spec [64]
+- org.apache.servicemix.bundles.spring-core [78]
+- org.apache.camel.camel-jms [58]
+- org.ops4j.pax.logging.pax-logging-api [1]

Now all bundles are re-wired and you can see all bundles use the Spring 4.2.8.RELEASE_1, but
there is no org.apache.xbean.spring in this dependency tree. Probably because of the error
while restarting Karaf. When we inspect this bundle we can see it doesn't allow to wire the
Spring 4.

    org.springframework.beans;version="[2.5,4)",
    org.springframework.beans.factory;version="[2.5,4)",
    org.springframework.beans.factory.config;version="[2.5,4)",
    org.springframework.beans.factory.parsing;version="[2.5,4)",
    org.springframework.beans.factory.support;version="[2.5,4)",
    org.springframework.beans.factory.xml;version="[2.5,4)",
    org.springframework.context;version="[2.5,4)",
    org.springframework.context.support;version="[2.5,4)",
    org.springframework.core.io;version="[2.5,4)",
    org.springframework.core.io.support;version="[2.5,4)",
    org.springframework.util;version="[2.5,4)",
    org.springframework.util.xml;version="[2.5,4)",

So we have one bundle which cannot use the same Spring version like all other bundles. Maybe
this is the problem.

Kindly regards
Krzysztof



On 19.01.2017 08:15, Sobkowiak Krzysztof wrote:
> Btw, this trick with camel-cxf doesn't help with Camel 2.18.x. I think, there was a change
in Camel 2.17.3 which helped with this problem (but not completely yet), but the change is
not available in 2.18.x (I tried current snapshot and it didn't help too).
>
> It looks like this change has helped in 2.17.3 https://github.com/apache/camel/commit/284cc6780de1e32468ef2ae50ad357a444e79da1
(CAMEL-10153), which introduces [3.2,5) as version range for spring in camel-cxf. In 2.18.x
there is still used the version range [4.1,5)
>
> Regards
> Krzysztof
>
> On 19.01.2017 01:17, Krzysztof Sobkowiak wrote:
>> My mistake. This problem still happens in the sample steps below - the exception
still occurs after Karaf restart and broker doesn't start.
>> But adding camel-cxf seems to fix this problem
>>
>> feature:install camel camel-blueprint camel-jms camel-cxf activemq-camel activemq-broker-noweb
activemq-blueprint
>>
>> Kindly regards
>> Krzysztof
>>
>>
>> On 14.01.2017 22:55, Krzysztof Sobkowiak wrote:
>>> Hi
>>>
>>> I could successfully install Camel 2.17.3 and ActiveMQ 5.14.3 on Karaf 4.0.8
(also 4.0.7):
>>>
>>>
>>>         __ __                  ____     
>>>        / //_/____ __________ _/ __/     
>>>       / ,<  / __ `/ ___/ __ `/ /_       
>>>      / /| |/ /_/ / /  / /_/ / __/       
>>>     /_/ |_|\__,_/_/   \__,_/_/        
>>>
>>>   Apache Karaf (4.0.8)
>>>
>>> Hit '<tab>' for a list of available commands
>>> and '[cmd] --help' for help on a specific command.
>>> Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown Karaf.
>>>
>>> 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.3
>>> Adding feature url mvn:org.apache.activemq/activemq-karaf/5.14.3/xml/features
>>> karaf@root()> feature:install camel camel-blueprint camel-jms activemq-camel
activemq-broker-noweb activemq-blueprint
>>> karaf@root()> activemq:list
>>> brokerName = amq-broker
>>>
>>>
>>> Kindly tegards
>>> Krzysztof
>>>
>>> On 30.11.2016 14:11, IODB wrote:
>>>> Can somebody refer me to the relevant Jira issue, so I can track its
>>>> progress?
>>>>
>>>> Thanks
>>>>
>>>>
> Krzysztof Sobkowiak
>
> 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