I am wondering if there is a way to avoid this awkward situation.

When you install camel-cxf 2.15.2 feature on a freshly setup karaf
3.0.3, it will end up with two versions of ServiceMix Stax API
bundles.

karaf@root()> feature:repo-add camel 2.15.2
Adding feature url mvn:org.apache.camel.karaf/apache-camel/2.15.2/xml/features
karaf@root()> feature:install camel-cxf
karaf@root()> list -t 0 | grep "Stax API 1.0"
 67 | Active   |  10 | 2.4.0            | Apache ServiceMix :: Specs
:: Stax API 1.0
132 | Active   |  10 | 2.2.0            | Apache ServiceMix :: Specs
:: Stax API 1.0
karaf@root()>


This happens because camel's 2.15.2 camel-cxf feature installs cxf's
3.0.4 features cxf-core and cxf-spec and the latter installs
smx-stax-api-1.0 version 2.4.0. Later, this camel-cxf feature also
installs camel's 2.15.2 features camel-core and xml-spec-api and the
latter installs smx-stax-api-1.0 version 2.2.0.

If we can have the shared spec feature definition somewhere, we can
set the range for that feature to get only one installed. So, I think
that will be helpful.

If we use two features and each is installing individual bundle
instead of a feature. as in the current situation, the versions for
the bundles need to be the same to avoid duplicates, I suppose. And
this will make it hard to use different camel and cxf versions.

I appreciate for your suggestion.

regards, aki

Reply via email to