[ 
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

        

Reply via email to