When analyzing failing build of camel in PNC I saw:
[WARNING] Manifest org.apache.camel:camel-bonita:jar:2.21.0.fuse-730065-redhat-00001 : No translation found for macro: range;[==,+)
When checking this tag done by PNC/PME, when building locally with -X, I saw:
[DEBUG] Final Manifest: #----------------------------------------------------------------------- Manifest-Version: 1.0 Bnd-LastModified: 1552395594841 Build-Jdk: 1.8.0_202 Built-By: ggrzybek Bundle-Description: Camel Bonita support Bundle-DocURL: https://www.apache.org/ Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt, https:// opensource.org/licenses/MIT, https://opensource.org/licenses/BSD-3-Clau se, https://opensource.org/licenses/AFL-3.0, https://www.w3.org/Consort ium/Legal/copyright-software-19980720 Bundle-ManifestVersion: 2 Bundle-Name: camel-bonita Bundle-SymbolicName: org.apache.camel.camel-bonita Bundle-Vendor: The Apache Software Foundation Bundle-Version: 2.21.0.fuse-730065-redhat-00001 Created-By: Apache Maven Bundle Plugin Export-Package: ${camel.osgi.export.pkg};version="2.21.0.fuse-730065-red hat-00001" Implementation-Title: Camel :: Bonita Implementation-URL: http://camel.apache.org/camel-parent/components/came l-bonita Implementation-Vendor: The Apache Software Foundation Implementation-Vendor-Id: org.apache.camel Implementation-Version: 2.21.0.fuse-730065-redhat-00001 Import-Package: org.apache.camel;version="[2.21,2.22)", org.apache.camel.impl;version="[2.21,2.22)", org.apache.camel.spi;version="[2.21,2.22)", org.apache.camel.util;version="[2.21,2.22)", org.apache.cxf.jaxrs.ext.multipart;version="[3.2,4.0)", com.fasterxml.jackson.annotation;version="[2.8,3)", com.fasterxml.jackson.jaxrs.json;version="[2.8,3)", javax.ws.rs.client;version="${range;[==,+)}", javax.ws.rs.core;version="${range;[==,+)}", org.osgi.framework;version="[1.5,2)", org.osgi.framework.wiring;version="[1.0,2)" Java-Vendor: Oracle Corporation Java-Version: 1.8.0_202 Karaf-Info: Camel;camel-bonita=2.21.0.fuse-730065-redhat-00001 Os-Arch: amd64 Os-Name: Linux Os-Version: 4.20.13-200.fc29.x86_64 Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))" Scm-Connection: scm:git:http://gitbox.apache.org/repos/asf/camel.git/cam el-parent/components/camel-bonita Scm-Revision: d4505ad3c502e81780e7db8160caedb52a3b93cc Scm-Url: https://gitbox.apache.org/repos/asf?p=camel.git;a=summary/camel -parent/components/camel-bonita Specification-Title: Camel :: Bonita Specification-Vendor: The Apache Software Foundation Specification-Version: 2.21.0.fuse-730065-redhat-00001 Tool: Bnd-3.5.0.201709291849
The problem is:
javax.ws.rs.client;version="${range;[==,+)}", javax.ws.rs.core;version="${range;[==,+)}",
so I checked what's the problem with javax.ws.rs API jar. The PME commit has:
- <javax.ws.rs-api-version>2.1.1</javax.ws.rs-api-version> + <javax.ws.rs-api-version>2.1.1.redhat-00002</javax.ws.rs-api-version>
So I looked at the difference.
2.1.1 has in MANIFEST.MF:
Export-Package: javax.ws.rs.client;uses:="javax.net.ssl,javax.ws.rs,ja vax.ws.rs.core";version="2.1.99",javax.ws.rs.core;uses:="javax.ws.rs, javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xm l.namespace";version="2.1.99",javax.ws.rs;uses:="javax.ws.rs.core";ve rsion="2.1.99",javax.ws.rs.ext;uses:="javax.ws.rs,javax.ws.rs.core";v ersion="2.1.99",javax.ws.rs.container;uses:="javax.ws.rs.core";versio n="2.1.99",javax.ws.rs.sse;uses:="javax.ws.rs.client,javax.ws.rs.core ";version="2.1.99" Extension-Name: javax.ws.rs Implementation-Version: 2.1.1 Import-Package: javax.net.ssl,javax.ws.rs,javax.ws.rs.client,javax.ws. rs.core,javax.ws.rs.ext,javax.xml.bind.annotation,javax.xml.bind.anno tation.adapters,javax.xml.namespace Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))" Specification-Vendor: Oracle Corporation Specification-Version: 2.1.99.01
2.1.1.redhat-00002 has in MANIFEST.MF:
Export-Package: javax.ws.rs.container;uses:="javax.ws.rs.core";version ="",javax.ws.rs.client;uses:="javax.net.ssl,javax.ws.rs,javax.ws.rs.c ore";version="",javax.ws.rs.core;uses:="javax.ws.rs,javax.xml.bind.an notation,javax.xml.bind.annotation.adapters,javax.xml.namespace";vers ion="",javax.ws.rs.ext;uses:="javax.ws.rs,javax.ws.rs.core";version=" ",javax.ws.rs;uses:="javax.ws.rs.core";version="",javax.ws.rs.sse;use s:="javax.ws.rs.client,javax.ws.rs.core";version="" Import-Package: javax.net.ssl,javax.ws.rs,javax.ws.rs.client,javax.ws. rs.core,javax.ws.rs.ext,javax.xml.bind.annotation,javax.xml.bind.anno tation.adapters,javax.xml.namespace Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))" Specification-Vendor: Oracle Corporation Tool: Bnd-3.3.0.201609221906
Mind that there's no Specification-Version header in productized jar.
original POM has:
<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>${maven.bundle.plugin.version}</version> <extensions>true</extensions> <configuration> <instructions> ... <Specification-Version>${spec.specification.version}</Specification-Version> <specversion>${spec.specification.version}</specversion>
This property (spec.specification.version) is never used in other places and my guess is that Oracle (or whatever subcontractor) builds this jar using:
mvn clean install -Dspec.specification.version=2.1.99.01
I don't think our productization is doing that.
I wonder how many more such cases will find among deps automatically injected by PME...
- is related to
-
ENTESB-10513 Incorrect version of jax-rs package in Karaf Fuse 7.3 CR3
- Closed
-
ENTESB-10007 javax.ws.rs-api should be 2.1.1
- Closed