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