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