[
https://issues.apache.org/jira/browse/FELIX-2972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stuart McCulloch resolved FELIX-2972.
-------------------------------------
Resolution: Not A Problem
This is working as designed from the perspective of the maven-bundle-plugin and
bnd. If you build with "mvn clean install -X" you will see that Maven chose to
compile the code against "jdo-api-3.1-SNAPSHOT". Therefore the baseline import
version is "3.1", because that is what the code was compiled and tested
against. Generally with OSGi you always want to compile against the earliest
versions you plan to support.
But you can select a different default version policy if you want to compile
against a dependency with version "3.1" but still declare compatibility with
"3.0" as well:
<_versionpolicy>[$(version;=;$(@)),$(version;+;$(@)))</_versionpolicy>
See http://www.aqute.biz/Bnd/Versioning and
http://www.aqute.biz/Bnd/Format#import-package for more details. Note that in
addition to the "-versionpolicy" instruction, the latest versions of bnd also
support separate "-provider-policy" and "-consumer-policy" instructions since
you often need different policies when providing vs. consuming an interface.
> Treatment of version ranges seems incorrect.
> --------------------------------------------
>
> Key: FELIX-2972
> URL: https://issues.apache.org/jira/browse/FELIX-2972
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.3.4
> Reporter: Andy Jefferson
> Assignee: Stuart McCulloch
> Attachments: bundle_test.zip
>
>
> I have a sample project which specifies a dependency on
> <dependency>
> <groupId>javax.jdo</groupId>
> <artifactId>jdo-api</artifactId>
> <version>[3.0, )</version>
> <scope>provided</scope>
> </dependency>
> and there is a version 3.0, 3.1-SNAPSHOT-20110319, 3.1-SNAPSHOT-20110223 in
> the specified respositories.
> I generate the MANIFEST.MF and it gives an ImportPackage of
> Import-Package: javax.jdo;version="[3.1,4)", ...
> It seemingly just grabs the latest current version available in the
> repositories in that range and takes that as the OSGi start version. This is
> incorrect, since a user could have v3.0 on their system and deploy that into
> OSGi and it doesn't allow deployment of this project. Or is it doing
> something deeper?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira