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 > > >
