[ https://issues.apache.org/jira/browse/SLING-9218?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17062829#comment-17062829 ]
Eric Norman edited comment on SLING-9218 at 3/19/20, 5:59 PM: -------------------------------------------------------------- [~kwin] I gave the 1.2.1-SNAPSHOT a try, but unfortunately I now get the following new error from bnd-maven-plugin during the maven build. Caused by: org.apache.maven.plugin.MojoFailureException: Contracts [Contract [name=JavaJSONP;version=1.1.0;from=org.apache.sling.commons.johnzon-1.2.1-SNAPSHOT], Contract [name=JavaJSONP;version=1.1.0;from=geronimo-json_1.1_spec-1.3]] declare the same packages in their uses: directive: [javax.json]. Contracts are found in declaring bundles (see their 'from' field), it is possible to control the findingwith the -contract instructionCaused by: org.apache.maven.plugin.MojoFailureException: Contracts [Contract [name=JavaJSONP;version=1.1.0;from=org.apache.sling.commons.johnzon-1.2.1-SNAPSHOT], Contract [name=JavaJSONP;version=1.1.0;from=geronimo-json_1.1_spec-1.3]] declare the same packages in their uses: directive: [javax.json]. Contracts are found in declaring bundles (see their 'from' field), it is possible to control the findingwith the -contract instruction at aQute.bnd.maven.plugin.BndMavenPlugin.reportErrorsAndWarnings(BndMavenPlugin.java:597) at aQute.bnd.maven.plugin.BndMavenPlugin.execute(BndMavenPlugin.java:438) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) By the way, this error goes away if I also make the change suggested in my first comment by changing the org.apache.sling.commons.johnzon pom.xml to define the scope of the geronimo-json_1.1_spec dependency to "provided" so it doesn't bleed into the maven dependency tree that BND appears to be processing. Is that a change that you would be comfortable with? was (Author: enorman): [~kwin] I gave the 1.2.1-SNAPSHOT a try, but unfortunately I now get the following new error from bnd-maven-plugin during the maven build. Caused by: org.apache.maven.plugin.MojoFailureException: Contracts [Contract [name=JavaJSONP;version=1.1.0;from=org.apache.sling.commons.johnzon-1.2.1-SNAPSHOT], Contract [name=JavaJSONP;version=1.1.0;from=geronimo-json_1.1_spec-1.3]] declare the same packages in their uses: directive: [javax.json]. Contracts are found in declaring bundles (see their 'from' field), it is possible to control the findingwith the -contract instructionCaused by: org.apache.maven.plugin.MojoFailureException: Contracts [Contract [name=JavaJSONP;version=1.1.0;from=org.apache.sling.commons.johnzon-1.2.1-SNAPSHOT], Contract [name=JavaJSONP;version=1.1.0;from=geronimo-json_1.1_spec-1.3]] declare the same packages in their uses: directive: [javax.json]. Contracts are found in declaring bundles (see their 'from' field), it is possible to control the findingwith the -contract instruction at aQute.bnd.maven.plugin.BndMavenPlugin.reportErrorsAndWarnings(BndMavenPlugin.java:597) at aQute.bnd.maven.plugin.BndMavenPlugin.execute(BndMavenPlugin.java:438) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) By the way, this error goes away if I also make the change suggested in my first comment by changing the org.apache.sling.commons.johnzon pom.xml to define the scope of the geronimo-json_1.1_spec dependency to "provided" so it doesn't bleed into the maven dependency tree that BND appears to be procesing. Is that a change that you would be comfortable with? > Incomplete OSGi manifest for Commons Johnzon 1.2.0 > -------------------------------------------------- > > Key: SLING-9218 > URL: https://issues.apache.org/jira/browse/SLING-9218 > Project: Sling > Issue Type: Bug > Affects Versions: Commons Johnzon 1.2.0 > Reporter: Eric Norman > Assignee: Konrad Windszus > Priority: Major > Fix For: Commons Johnzon 1.2.2 > > > It looks to me that any bundle that attempts to depend on the new > org.apache.sling.commons.johnzon:1.2.0 bundle produces a manifest for the new > bundle that makes it not activate when deployed to the sling runtime. > > For example, the manifest now includes this instruction in the manifest: > > {quote}Require-Capability: osgi.contract;osgi.contract=JavaJSONP;filter:="(&( > osgi.contract=JavaJSONP)(version=1.1.0))",osgi.ee;filter:="(&(osgi.ee > =JavaSE)(version=1.8))" > {quote} > > > But it doesn't look like the org.apache.sling.commons.johnzon:1.2.0 manifest > declares that it provides that JavaJSONP capability. > > It appears that the equivalent "Provide-Capability" instruction is in the > original org.apache.geronimo.specs.geronimo-json_1.1_spec artifact. It > contains the following in it's manifest but the o.a.s.commons.johnzon does > not do the same when it wraps the bundle: > > {quote}Provide-Capability: osgi.contract;osgi.contract=JavaJSONP;uses:="javax > .json,javax.json.spi,javax.json.stream";version:List<Version>="1.1,1. > 0" > {quote} > > > Alternatively, maybe there is a convenient way to adjust the BND instructions > so one can depend on the org.apache.sling.commons.johnzon:1.2.0 artifact > without requiring the osgi.contract=JavaJSONP capability in the manifest? > -- This message was sent by Atlassian Jira (v8.3.4#803005)