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