Hi Jean-Baptiste, Well the issue is that karaf 4.3.6 does not wire package org.apache.cxf version 3.4.5 with an import package of org.apache.cxf with version range [3.4,3.4].
I also tried the vanilla karaf 4.3.6: If I install camel-cxf via the feature resolver, it will install CXF 3.4.0 with it (and everything wires). If I remove cxf 3.4.0 and install cxf 3.4.5, the camel-cxf bundles don't wire anymore: karaf@root()> feature:repo-add camel 3.14.2 karaf@root()> feature:install camel-cxf Installs CXF 3.4.0. After uninstalling CXF 3.4.0 and installing CXF 3.4.5 instead, camel-cxf-bundles are unwired karaf@root()> diag 161 camel-cxf-transport (161) ------------------------- Status: Installed Unsatisfied Requirements: [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.binding.soap)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.common.injection)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.common.logging)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.common.util)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.configuration)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.configuration.spring)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.headers)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.helpers)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.interceptor)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.io)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.message)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.phase)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.security)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.service.model)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.transport)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.workqueue)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.cxf.ws.addressing)(version>=3.4.0)(version<=3.4.0)) [org.apache.camel.camel-cxf-transport [161](R 161.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.camel.component.cxf.transport.blueprint)(version>=3.14.0)(!(version>=3.15.0))) Even though the packages are there (in version 3.4.5): karaf@root()> package:exports -p org.apache.cxf.binding.soap Package Name | Version | ID | Bundle Name --------------------------------------------+---------+-----+------------------------------------ org.apache.cxf.binding.soap.blueprint | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap org.apache.cxf.binding.soap.interceptor | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap org.apache.cxf.binding.soap.jms.interceptor | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap org.apache.cxf.binding.soap.model | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap org.apache.cxf.binding.soap.saaj | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap org.apache.cxf.binding.soap.spring | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap org.apache.cxf.binding.soap.wsdl.extensions | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap org.apache.cxf.binding.soap.wsdl11 | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap org.apache.cxf.binding.soap | 3.4.5 | 307 | org.apache.cxf.cxf-rt-bindings-soap Do you think this is a bug in Karaf? I checked the OSGi spec, but it is not too clear to me about what this is supposed to wire. Best regards Stephan -----Original Message----- From: Jean-Baptiste Onofré <j...@nanthrax.net> Sent: Tuesday, 12 April 2022 11:20 To: users@camel.apache.org; u...@karaf.apache.org Subject: [SPAM] Re: Wiring issues with camel-cxf 3.14.2 and CXF 3.4.5 on Karaf 4.3.6 Hi Stephan, About the version range, [3.4,3.4] includes 3.4.5, so it's normal that it wires. [3.4.4,3.4.4] will exclude 3.4.5, but it will include 3.4.4.x. filter:="(&(osgi.wiring.package=org.apache.cxf)(version>=3.4.0)(version<=3.4.0))" will actually exclude 3.4.5 (but again, it could include 3.4.0.x). About CXF import range, I already removed <repository/>, so, it would make sense to use a "flexible" range, like [3.4,3.5). Regards JB On Tue, Apr 12, 2022 at 9:39 AM Siano, Stephan <stephan.si...@sap.com.invalid> wrote: > > Hi, > > I am trying to install camel-cxf 3.14.2 together with CXF 3.4.5 on a custom > distribution of Karaf 4.3.6, but the camel-cxf and camel-cxf-transport > bundles do not wire. > > The problem is that the CXF packages are imported by the camel-cxf bundles > with an import range of [3.4,3.4] which does not wire with the bundles CXF > 3.4.5 exports (Karaf translates the import range into > filter:="(&(osgi.wiring.package=org.apache.cxf)(version>=3.4.0)(version<=3.4.0))", > which would only match version 3.4.0, but not 3.4.5). > > The issue was introduced with > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FCAMEL-17137&data=04%7C01%7Cstephan.siano%40sap.com%7C608acdcc2479427861ca08da1c65a0a6%7C42f7676cf455423c82f6dc2d99791af7%7C0%7C0%7C637853520169794077%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=Q0EWbpGBQRNO5yJGYe5p4p6FVFAVbKWVs%2Fd5WlTpjk4%3D&reserved=0 > and I think this was supposed to restrict the import range to any 3.4 > version (but for my gut feeling the filter for that would have to be > “[3.4,3.5)”). Rastislav Papp has added the same issue to the incident, but I > am not sure if that was noted by someone. > > Do determine what to do as a follow up I have a few questions: > To the karaf experts: > Is the assumption correct that an import range of [3.4,3.4] should not wire > to a package with version 3.4.5? > Is there a setting I didn’t set in my custom distribution that might make > this work? > > To the camel experts: > Wouldn’t it be better to change the CXF import range to [3.4,3.5) or was that > avoided on purpose? > With that change the wiring issues are resolved. > > Best regards > Stephan