felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephane Frenot (JIRA)" <j...@apache.org>
Subject [jira] Created: (FELIX-155) A better bundle/artifact version numbering scheme
Date Thu, 28 Sep 2006 08:53:51 GMT
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

        

Mime
View raw message