[ 
https://issues.apache.org/jira/browse/CURATOR-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14392228#comment-14392228
 ] 

Simon Kitching commented on CURATOR-201:
----------------------------------------

In the OSGi-specific "Export-Package" entry in the manifest, each exported 
package can have zero or more packages in a "uses" constraint. The constraint 
then requires any bundle importing that package to bind to the same version of 
the "used" package as the exporter.

The intention is that "uses" lists external types required to invoke the 
_public api_ of the classes in the exported package. However plugin version 
2.3.7 lists _all_ external types referenced by the exported package, including 
those only used 'internally' (eg as private class members, or local variables 
in methods).

Change required in curator/pom.xml:
{code}
-        <maven-bundle-plugin-version>2.3.7</maven-bundle-plugin-version>
+        <maven-bundle-plugin-version>2.5.3</maven-bundle-plugin-version>
{code}

Result is that the META-INF/MANIFEST.MF for curator-client etc have far fewer 
"uses" entries. As example, after this change the generated curator-client.jar 
MANIFEST.MF file no longer contains any reference to "com.google" in the 
Export-Package entry.

This change should be binary-compatible; it changes no code and only _reduces_ 
the set of constraints (AFAIK).

> Update to latest maven-bundle-plugin : fixes OSGi "uses" constraints
> --------------------------------------------------------------------
>
>                 Key: CURATOR-201
>                 URL: https://issues.apache.org/jira/browse/CURATOR-201
>             Project: Apache Curator
>          Issue Type: Improvement
>          Components: General
>            Reporter: Simon Kitching
>   Original Estimate: 10m
>  Remaining Estimate: 10m
>
> The curator main pom currently specifies version 2.3.7 for plugin 
> maven-bundle-plugin. This plugin is responsible for generating the 
> OSGi-specific parts of the MANIFEST.MF file. Unfortunately that version of 
> maven-bundle-plugin is buggy and generates too many "uses" constraints into 
> the MANIFEST.MF. The latest version of maven-bundle-plugin (2.5.3) fixes this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to