Regression in latest BND code: negated exports are applied to private packages
------------------------------------------------------------------------------
Key: FELIX-907
URL: https://issues.apache.org/jira/browse/FELIX-907
Project: Felix
Issue Type: Bug
Components: Maven Bundle Plugin
Reporter: Stuart McCulloch
Assignee: Peter Kriens
Fix For: maven-bundle-plugin-1.6.0
The latest version of the Bnd Tool has a bug where it combines the
Export-Package instructions with the Private-Package instructions:
all.putAll(replaceWitInstruction(getHeader(EXPORT_PACKAGE),
EXPORT_PACKAGE));
all.putAll(replaceWitInstruction(getHeader(PRIVATE_PACKAGE),
PRIVATE_PACKAGE));
this ordering means that any negated packages in Export-Package are erroneously
applied to the list of packages in Private-Package.
For example, when you have instructions like the following:
<Export-Package>!org.foo.internal.*,org.foo.*</Export-Package>
<Private-Package>org.foo.internal.*</Private-Package>
the Bnd Tool will end up excluding the internal packages from the final bundle.
Reversing the statements to be:
all.putAll(replaceWitInstruction(getHeader(PRIVATE_PACKAGE),
PRIVATE_PACKAGE));
all.putAll(replaceWitInstruction(getHeader(EXPORT_PACKAGE),
EXPORT_PACKAGE));
appears to fix the problem, although you could then have problems with negated
packages in the Private-Package affecting the Export-Package - but this is less
likely.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.