[ 
http://issues.apache.org/jira/browse/FELIX-155?page=comments#action_12438550 ] 
            
BJ Hargrave commented on FELIX-155:
-----------------------------------

Bundles should not be depenedent on the implementation version of the 
framework. They should only depend upon the package versions of the framework 
packages they use (org.osgi.framework;version=1.3, etc.) I know Maven does not 
support package level dependencies, but no bundle should depend upon the 
framwork for org.osgi packages. Instead one must depend upon the org.osgi.core, 
org.osgi.compendium artifacts.

> A better bundle/artifact version numbering scheme
> -------------------------------------------------
>
>                 Key: FELIX-155
>                 URL: http://issues.apache.org/jira/browse/FELIX-155
>             Project: Felix
>          Issue Type: Improvement
>            Reporter: Stephane Frenot
>            Priority: Trivial
>
> There is an issue with version management.
> For the moment many bundles are versionned on the same scheme as
> felix framework. ie : 0.8.0-SNAPSHOT
> This is because most of them do not declare a version number in their pom.xml.
> But if you declare a specific version number in you pom.xml there is
> an issue, because you cannot use anymore the default $pom.version in your
> dependencies. So you need to explicitely declare 0.8.0-SNAPSHOT in all
> your depencies, that will lead to a management problem later.
> This is what happens with an example.
> 1) The classical files
> <project>
>   <parent>...felix...</parent>
>     ...
>     <version>0.8.0-SNAPSHOT</version>
>   </parent>
>   ...
>   <dependencies>
>     <dependency>
>       <groupId>...</groupId>
>       <version>${pom.version}</version>  --> This defaults to the
>                                                                               
>  current pom.xml version
>                                                                               
>  if specified, and to the
>                                                                               
>  parent version number if
>                                                                               
>  not.
> 2) The classical solution I found in some bundles
> <project>
>   <parent>...felix...</parent>
>     ...
>     <version>0.8.0-SNAPSHOT</version>
>   </parent>
>   <version>0.1.0-SNAPSHOT</version>  --> Declare a specific bundle
>                                                                               
> version
>   ...
>   <dependencies>
>     <dependency>
>       <groupId>...</groupId>
>       <version>0.8.0-SNAPSHOT</version>  --> You cannot use  anymore
>                                                                               
>      ${pom.version} (because
>                                                                               
>       it is now 0.1.0-SNAPSHOT)
>                                                                               
>      So you need to specify
>                                                                               
>      for all your dependencies
>                                                                               
>      the felix/framework 
>                                                                               
>     version numbers.
> ******************
> In order to avoid this problem, version dependencies can be declared
> in a DependenciesManagement tag in the main pom.xml. This tags
> declares general version number dependencies. And declares the default
> version number to be used for child artifacts.
> <DependenciesManagement>
>   <dependency>
>     <groupId>${pom.groupId}</groupId>
>     <artifactId>org.osgi.core</artifactId>
>     <version>0.8.0-SNAPSHOT</version>
>     <scope>provided</scope>
>   </dependency>
>   <dependency>
>     <groupId>${pom.groupId}</groupId>
>     <artifactId>org.osgi.compendium</artifactId>
>     <version>0.8.0-SNAPSHOT</version>
>     <scope>provided</scope>
>   </dependency>
> <DependenciesManagement>
> Now your pom.xml can avoid specifying a version number for it's dependencies.
> <project>
>   <parent>...felix...</parent>
>     ...
>     <version>0.8.0-SNAPSHOT</version>
>   </parent>
>   <version>0.1.0-SNAPSHOT</version>  --> Declare a specific bundle
>                                          version
>   ...
>   <dependencies>
>     <dependency>
>       <groupId>...</groupId>
>       <artifactId>org.osgi.core</artifactId>
>       <scope>provided</scope>
>     </dependency>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to