Details
Description
The camel-cxf and camel-cxf transport bundles do not wire with CXF 3.4.5 in Camel 3.14.2 on a Karaf 4.3.6 container (the latest version).
The error is:
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)]
...
The problem is the import range for the CXF bundles of [3.4,3.4]. The karaf container will interpret that as "exactly version 3.4.0" so this will wire with CXF 3.4.0 but nothing else. I think what is mean here is to have any CXF 3.4 version, but then the import range should be [3.4,3.5) instead (this means the version has to be greater or equal 3.4.0 and smaller than 3.5.0). If I manually change that in the bundle manifests, wiring with CXF 3.4.5 works.
The issue was introduced with CAMEL-17137, so it should all branches where thich change was applied.
The fix for this is to change the cxf-version-range property in parent/pom.xml
from
<cxf-version-range>[3.5,3.5]</cxf-version-range>
to
<cxf-version-range>[3.5,3.6)</cxf-version-range>
and from
<cxf-version-range>[3.4,3.4]</cxf-version-range>
to
<cxf-version-range>[3.4,3.5)</cxf-version-range>
in the different branches.