You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "BJ Hargrave (JIRA)" <ji...@apache.org> on 2006/09/28 22:50:50 UTC
[jira] Commented: (FELIX-155) A better bundle/artifact version
numbering scheme
[ 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