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 <[email protected]> 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
> 
> 
> 

Reply via email to