I found out that some bundles in the feature have imports to javax.xml.bind without a version definition. I patched the manifests and set the requested version range to [2.2.0,2.3).
e.g.: javax.xml.bind;resolution:=required,version="[2.2.0,2.3)", javax.xml.bind.annotation;resolution:=required,version="[2.2.0,2.3)", With this change I can deploy the feature. When I change the version range of the import javax.xml.bind of a single bundle to [2.3.0,3) then the resolver ends up in the endless loop. Regards Richard Am Mo., 7. Feb. 2022 um 15:39 Uhr schrieb Richard Hierlmeier < rhierlme...@googlemail.com>: > > Last week I ported another feature from Karaf 3 to 4 > When I install this feature in Karaf 4.3.6 then the feature:install > command runs into a OutOfMemoryException. > The Exception occurs in ResolverImpl of Apache Felix. > > I enabled the debug logging of the logger org.apache.felix.resolver. I > found out that many time such log messages are written: > > 2022-02-07 14:08:14,781 | DEBUG | features-3-thread-1 | > org.apache.felix.resolver.ResolverImpl | 18 - > org.apache.karaf.features.core - 4.3.6 | Candidate permutation failed > due to a conflict between imports; will try another if possible. (Uses > constraint violation. Unable to resolve resource > org.apache.servicemix.bundles.jaxb-xjc > [org.apache.servicemix.bundles.jaxb-xjc/2.3.2.1] because it is exposed to > package 'javax.xml.bind' from resources > org.apache.servicemix.specs.jaxb-api-2.2 > [org.apache.servicemix.specs.jaxb-api-2.2/2.9.0] and > org.apache.servicemix.specs.jaxb-api-2.3 > [org.apache.servicemix.specs.jaxb-api-2.3/2.3.0.2] via two dependency > chains. > > Chain 1: > org.apache.servicemix.bundles.jaxb-xjc > [org.apache.servicemix.bundles.jaxb-xjc/2.3.2.1] > import: > (&(osgi.wiring.package=javax.xml.bind)(version>=2.0.0)(!(version>=3.0.0))) > | > export: osgi.wiring.package: javax.xml.bind > org.apache.servicemix.specs.jaxb-api-2.2 > [org.apache.servicemix.specs.jaxb-api-2.2/2.9.0] > > Chain 2: > org.apache.servicemix.bundles.jaxb-xjc > [org.apache.servicemix.bundles.jaxb-xjc/2.3.2.1] > import: (osgi.wiring.package=com.sun.xml.bind.unmarshaller) > | > export: osgi.wiring.package=com.sun.xml.bind.unmarshaller; > uses:=javax.xml.bind > org.apache.servicemix.bundles.jaxb-runtime > [org.apache.servicemix.bundles.jaxb-runtime/2.3.2.1] > import: > (&(osgi.wiring.package=javax.xml.bind)(version>=2.0.0)(!(version>=3.0.0))) > | > export: osgi.wiring.package: javax.xml.bind > org.apache.servicemix.specs.jaxb-api-2.3 > [org.apache.servicemix.specs.jaxb-api-2.3/2.3.0.2]) | > > > % grep -c "Candidate permutation failed" data/log/karaf.log > 7890 > > % grep -c "Candidate permutation failed.*jaxb-api" data/log/karaf.log > 6855 > > jaxb-api-2.3 comes from apache-cxf-3.4.5-features.xml > > system/org/apache/cxf/karaf/apache-cxf/3.4.5/apache-cxf-3.4.5-features.xml > 28: <bundle start-level="10" > dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.3/2.3_2</bundle> > > jaxb-api-2.2 comes from framework-4.3.6-features.xml > > > system/org/apache/karaf/features/framework/4.3.6/framework-4.3.6-features.xml > 47: <bundle dependency="true" > start-level="30">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.2/2.9.0</bundle> > > > I need CXF for my feature. > > Has some an idea how to solve this problem? > > Regards > > Richard > >