You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by David Leangen <os...@leangen.net> on 2017/02/14 22:04:34 UTC

A few issues with package versions

Hi,

I am having a bit of trouble understanding how the package versioning works. I assume that BND is doing some calculations, but it seems to be getting some input, and I cannot figure out from where.

When I build the org.apache.felix.converter project, it produces this in the manifest (edited for reading):

  Export-Package: 
     org.osgi.util.converter;version="1.0”;
         status=provisional;
         uses:="org.osgi.util.function“

Note that the packages are version="1.0”, and are tagged with “status=provisional”.

The version is easy to understand, as the package-info.java file has this Annotation:

  @Version("1.0")
  package org.osgi.util.converter;

But where does the “provisional” come from? I was not able to find a configuration anywhere in the POMs…


Next, when I build the org.apache.felix.serializer project, which depends on org.apache.felix.converter, I get this:

  Import-Package: 
     org.osgi.util.converter;version="[0.1,1)”;
        status=provisional,

Again, I get the “status=provisional”, but even if I don’t know where it comes from, at least it matches the export from the Converter.

What is troubling here is that bnd (I assume) is calculating the input as version="[0.1,1)”, which means that my system will not resolve to the correct version of the converter.


Cheers,
=David




Re: A few issues with package versions

Posted by David Leangen <os...@leangen.net>.
As a follow-up to my own post, I discovered that the pom version for the dependency was not correct, so bnd wasn’t given the correct choice of options when resolving, hence the “weird" import/export versions.

When the dependency versions are correct in the pom, bnd behaves as I would expect.

It also explains where the “provisional” qualifier was coming from.

> On Feb 15, 2017, at 7:04 AM, David Leangen <os...@leangen.net> wrote:
> 
> 
> Hi,
> 
> I am having a bit of trouble understanding how the package versioning works. I assume that BND is doing some calculations, but it seems to be getting some input, and I cannot figure out from where.
> 
> When I build the org.apache.felix.converter project, it produces this in the manifest (edited for reading):
> 
>  Export-Package: 
>     org.osgi.util.converter;version="1.0”;
>         status=provisional;
>         uses:="org.osgi.util.function“
> 
> Note that the packages are version="1.0”, and are tagged with “status=provisional”.
> 
> The version is easy to understand, as the package-info.java file has this Annotation:
> 
>  @Version("1.0")
>  package org.osgi.util.converter;
> 
> But where does the “provisional” come from? I was not able to find a configuration anywhere in the POMs…
> 
> 
> Next, when I build the org.apache.felix.serializer project, which depends on org.apache.felix.converter, I get this:
> 
>  Import-Package: 
>     org.osgi.util.converter;version="[0.1,1)”;
>        status=provisional,
> 
> Again, I get the “status=provisional”, but even if I don’t know where it comes from, at least it matches the export from the Converter.
> 
> What is troubling here is that bnd (I assume) is calculating the input as version="[0.1,1)”, which means that my system will not resolve to the correct version of the converter.
> 
> 
> Cheers,
> =David
> 
> 
>