Hello,
with Karaf 4.4.4, the bouncycastle version has changed to 1.75. CXF
still uses 1.70, i.e. when installing the CXF 3.6.2 feature, two
versions of bcprov are installed. With a debug level log appender
defined for org.apache.felix.resolver or setting the log level of the
root logger to DEBUG, this leads to multiple log entries like
2023-09-20T12:46:12,788 | DEBUG | features-3-thread-1 |
ResolverImpl | 17 - org.apache.karaf.features.core -
4.4.4 | Candidate permutation failed due to a conflict between imports;
will try another if possible. (Uses constraint violation. Unable to
resolve resource io.netty.handler [io.netty.handler/4.1.97.Final]
because it is exposed to package 'org.bouncycastle.asn1.pkcs' from
resources bcprov [bcprov/1.70.0] and bcprov [bcprov/1.75.0] via two
dependency chains.
Chain 1:
io.netty.handler [io.netty.handler/4.1.97.Final]
import:
(&(osgi.wiring.package=org.bouncycastle.asn1.pkcs)(version>=1.69.0)(!(version>=2.0.0)))
|
export: osgi.wiring.package: org.bouncycastle.asn1.pkcs
bcprov [bcprov/1.70.0]
Chain 2:
io.netty.handler [io.netty.handler/4.1.97.Final]
import:
(&(osgi.wiring.package=org.bouncycastle.cert)(version>=1.69.0)(!(version>=2.0.0)))
|
export: osgi.wiring.package=org.bouncycastle.cert;
uses:=org.bouncycastle.asn1.x509
bcpkix [bcpkix/1.75.0]
import:
(&(osgi.wiring.package=org.bouncycastle.asn1.x509)(version>=1.72.0))
|
export: osgi.wiring.package: org.bouncycastle.asn1.x509;
uses:=org.bouncycastle.asn1.pkcs
export: osgi.wiring.package=org.bouncycastle.asn1.pkcs
bcprov [bcprov/1.75.0]) ...
and
2023-09-20T12:46:13,779 | DEBUG | features-3-thread-1 |
ResolverImpl | 17 - org.apache.karaf.features.core -
4.4.4 | Candidate permutation failed due to a conflict between imports;
will try another if possible. (Uses constraint violation. Unable to
resolve resource com.fasterxml.jackson.core.jackson-databind
[com.fasterxml.jackson.core.jackson-databind/2.14.1] because it is
exposed to package 'com.fasterxml.jackson.core.base' from resources
com.fasterxml.jackson.core.jackson-core
[com.fasterxml.jackson.core.jackson-core/2.14.1] and
com.fasterxml.jackson.core.jackson-core
[com.fasterxml.jackson.core.jackson-core/2.15.2] via two dependency chains.
Chain 1:
com.fasterxml.jackson.core.jackson-databind
[com.fasterxml.jackson.core.jackson-databind/2.14.1]
import:
(&(osgi.wiring.package=com.fasterxml.jackson.core.base)(version>=2.14.0)(!(version>=3.0.0)))
|
export: osgi.wiring.package: com.fasterxml.jackson.core.base
com.fasterxml.jackson.core.jackson-core
[com.fasterxml.jackson.core.jackson-core/2.14.1]
Chain 2:
com.fasterxml.jackson.core.jackson-databind
[com.fasterxml.jackson.core.jackson-databind/2.14.1]
import:
(&(osgi.wiring.package=com.fasterxml.jackson.core)(version>=2.14.0)(!(version>=3.0.0)))
|
export: osgi.wiring.package=com.fasterxml.jackson.core;
uses:=com.fasterxml.jackson.core.json
com.fasterxml.jackson.core.jackson-core
[com.fasterxml.jackson.core.jackson-core/2.15.2]
import:
(&(osgi.wiring.package=com.fasterxml.jackson.core.json)(version>=2.15.0)(!(version>=3.0.0)))
|
export: osgi.wiring.package=com.fasterxml.jackson.core.json;
uses:=com.fasterxml.jackson.core.base
com.fasterxml.jackson.core.jackson-core
[com.fasterxml.jackson.core.jackson-core/2.15.2]
import:
(&(osgi.wiring.package=com.fasterxml.jackson.core.base)(version>=2.15.0)(!(version>=3.0.0)))
|
export: osgi.wiring.package: com.fasterxml.jackson.core.base
com.fasterxml.jackson.core.jackson-core
[com.fasterxml.jackson.core.jackson-core/2.15.2]) ...
It may take very long until the resolver finishes. In some cases, it
obviously fails at this point, and later I receive some FileNotFound
exceptions because some packages are not exported - I have observed
this, e.g., for the Datastax Cassandra driver, version 4.17, when
jackson-databind 2.14.1 and 2.15.2 are both installed. The behavior is
not always reproducible. E.g., for a feature with a bundle importing
some bouncycastle packages, installation of the feature takes very long
and/or finally fails, while installing and starting the bundles one by
one succeeds.
I don't think this is specifically related to 4.4.4 - only showed up in
my case due to the upgraded dependencies while other features are still
using older ones.
Does anybody have an idea how to solve that?
Thanks & Regards
Jochen