I understand that this may look like an inverse approach.
`Private-Package` is not an OSGi header and OSGi Framework will completely ignore it.
If you see this in POM, it indicates that the bundle has been build with `maven-bundle-plugin` which is using `Private-Package` in build-time instructions.
The export instruction declares the exclusions first which is recommended in this plugin. The instruction `Private-Package` repeats the excluded packages which means that the JUnit classes still can use them. The other bundle cannot.
I picked up an example from documentation page of this plugin which uses the same principle as we do.
http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html
```
<Export-Package>!${bundle.namespace}.internal.*,${bundle.namespace}.*;version="${pom.version}"</Export-Package>
<Private-Package>${bundle.namespace}.internal.*</Private-Package>
```