Description
The MANIFEST.MF file for the artifact artemis-amqp-protocol-2.18.0.jar requires that version for proto-j packages be greater than or equal to 0.34:
org.apache.qpid.proton.codec;version="[0.34,1)"
However, the version of the proton-j artifact in the root POM of 2.18.0 is a lower version
<proton.version>0.33.8</proton.version>
This causes a "missing requirement" error when OSGi tries to load the artemis-amqp-protocol-2.18.0 bundle.
org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=artemis-install; type=karaf.feature; version="[1.10.1.SNAPSHOT,1.10.1.SNAPSHOT]"; filter:="(&(osgi.identity=artemis-install)(type=karaf.feature)(version>=1.10.1.SNAPSHOT)(version<=1.10.1.SNAPSHOT))" [caused by: Unable to resolve artemis-install/1.10.1.SNAPSHOT: missing requirement [artemis-install/1.10.1.SNAPSHOT] osgi.identity; osgi.identity=artemis-amqp; type=karaf.feature; version="[2.18.0,2.18.0]" [caused by: Unable to resolve artemis-amqp/2.18.0: missing requirement [artemis-amqp/2.18.0] osgi.identity; osgi.identity=org.apache.activemq.artemis-amqp-protocol; type=osgi.bundle; version="[2.18.0,2.18.0]"; resolution:=mandatory [caused by: Unable to resolve org.apache.activemq.artemis-amqp-protocol/2.18.0: missing requirement [org.apache.activemq.artemis-amqp-protocol/2.18.0] osgi.wiring.package; filter:="(&(osgi.wiring.package=org.apache.qpid.proton)(version>=0.34.0)(!(version>=1.0.0)))"]]]
After cloning the Artemis GitHub repo and checking out the 2.18.0 tag, I built the project. The MANIFEST.MF file for newly created artemis-amqp-protocol-2.18.0 had the correct version constraints for proton-j:
org.apache.qpid.proton.amqp.messaging;version="[0.33,1)"