You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Sahoo <Sa...@Sun.COM> on 2008/07/11 09:15:30 UTC

Ability to specify package version range using maven-bundle-plugin

AFAIK, in the absence of any version attribute specification in 
Import-Package instruction, maven-bundle-plugin generates package 
version constraint in the following manner:
1. If the imported package "p" has version "x.y.z", then it generates 
Import-Package: p, version="x.y.z",
2. If the imported package "p" has no version, then it generates 
Import-Package: p.

What are the ways to specify an upper bound? I know I can specify the 
exact version range using Import-Package instruction. Is there any other 
way? I don't think so, but I want some knowledgeable user to confirm the 
same.

If this is indeed true, then does it not look a bit limiting? Should 
there not be a way to attach a custom versioning policy to calculate the 
version range? To give an example, the policy can be that in a version 
scheme that uses dew decimal numbers to specify version, only a change 
in major number is considered backward compatible. In that case, the 
version range should be generated as [x.y.z, x+1).

Thanks,
Sahoo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: Ability to specify package version range using maven-bundle-plugin

Posted by Stuart McCulloch <st...@jayway.net>.
2008/7/11 Sahoo <Sa...@sun.com>:

> AFAIK, in the absence of any version attribute specification in
> Import-Package instruction, maven-bundle-plugin generates package version
> constraint in the following manner:
> 1. If the imported package "p" has version "x.y.z", then it generates
> Import-Package: p, version="x.y.z",
> 2. If the imported package "p" has no version, then it generates
> Import-Package: p.
>

well it's actually Bnd generating the constraints, but yes that's correct -
the bundleplugin
passes the Maven compilation classpath (excluding provided dependencies) to
Bnd and
Bnd uses information from the various jars, like packageinfo, etc. to add
versions


> What are the ways to specify an upper bound? I know I can specify the exact
> version range using Import-Package instruction. Is there any other way? I
> don't think so, but I want some knowledgeable user to confirm the same.
>

currently the only way to add an upper bound is to explicitly set it via
Import-Package.

  http://aqute.biz/Code/Bnd#import-package

Bnd will allow you to write something like:
org.osgi.framework;version="[${@},2.0)"
where the ${@} expands to the exact version found on the classpath, but it
doesn't
yet support a general rule, like "[x.y.z, x+1]" which I agree would be
useful


> If this is indeed true, then does it not look a bit limiting? Should there
> not be a way to attach a custom versioning policy to calculate the version
> range? To give an example, the policy can be that in a version scheme that
> uses dew decimal numbers to specify version, only a change in major number
> is considered backward compatible. In that case, the version range should be
> generated as [x.y.z, x+1).
>

feel free to suggest a setting / some sort of instruction notation to
support this:

  http://issues.apache.org/jira/browse/FELIX/component/12311143

set the fix version to "1.4.3" as this is the release I'm using for
Bnd-related changes.


> Thanks,
> Sahoo
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>


-- 
Cheers, Stuart