Thijs Metsch wrote:
Hi,
Thanks for the reply...see the inline comments :-)
On Tue, 2008-11-18 at 11:46 -0500, Richard S. Hall wrote:
Thijs Metsch wrote:
Hi @all,
I was wondering about the default behavior of the maven-bundle-plugin.
Currently the following is stated:
* <Export-Package> is assumed to be "<Bundle-SymbolicName>.*", unless
<Private-Package> is specified, then <Export-Package> is assumed to be
empty.
* <Private-Package> is assumed to be empty by default.
* <Import-Package> is assumed to be "*", which imports everything
referred to by the bundle content, but not contained in the bundle.
Seems kind of odd to me. Can somebody give the reasons for this
decision?
If you are converting your existing JAR file to have OSGi manifest
metadata, then the only conversion possible is to export everything and
import everything else.
You would only do this if you were simply trying to offer OSGi
compatible manifest headers, but were not interested in actually making
your JAR file into a bundle that leverages OSGi. If you are really
creating OSGi bundles, then you should be specific about these headers.
Okay that is the information I needed :-) Make the use case of writing
new bundle with maven-bundle-plugin a little bit harder :-/
E.g. if I wanna have a bundle which does not export anything. I could
state Private-Package to be * but that results in a MANIFEST.MF which
states that all kind of packages are private (also java.* osgi.* etc).
Which is not what you would expect. You can also state Export-Package to
be empty but thats kind of odd to when you then think that you have an
empty xml-tag in your pom.xml
Just set your private package to "your.package.root.*".
That is also an option :-)
Another question is how I can specify version ranges to imported
packages?
Just like normal, I believe:
<Import-Package>org.osgi.framework;
version=[1.4.0,2.0.0)</Import-Package>
That does not work, was my first thought too :-) -> It results in
something really weird:
<Import-Package>com.sun.vjsc,org.osgi.service.component;version=[1.4.0,2.0.0)</Import-Package>
results in:
Import-Package: 2.0.0),com.sun.vjsc,org.osgi.service.component;version^
="[1.4.0"^
You need quotes. I forgot:
<Import-Package>org.osgi.framework;
version="[1.4.0,2.0.0)"</Import-Package>
-> richard
-> richard
Cheers,
-Thijs
Cheers,
-Thijs
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]