You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Roland Hauser (JIRA)" <ji...@apache.org> on 2016/06/14 19:06:27 UTC

[jira] [Created] (KARAF-4571) karaf-maven-plugin should respect version ranges when generating features repos

Roland Hauser created KARAF-4571:
------------------------------------

             Summary: karaf-maven-plugin should respect version ranges when generating features repos
                 Key: KARAF-4571
                 URL: https://issues.apache.org/jira/browse/KARAF-4571
             Project: Karaf
          Issue Type: Improvement
          Components: karaf-tooling
    Affects Versions: 4.0.5
            Reporter: Roland Hauser
             Fix For: 4.1.0


When for the dependencies of a feature project version ranges are used, then the produced feature.xml 
references the highest available version of a bundle. This is not always the desired behavior. Instead of that, 
it should be configurable if the latest base version of a dependency or the version range itself should be written 
to the feature file (when a dependency is declared with a version range). I would suggest a new plugin configuration 
property "useVersionRange". Suppose a dependency to commons-lang3:

{code:title=pom.xml}
<dependencies>
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-lang3</artifactId>
		<version>[3.0,3.4)</version>
	</dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>karaf-maven-plugin</artifactId>
            <version>4.1.0-SNAPSHOT</version>
            <extensions>true</extensions>
        </plugin>
    </plugins>
</build>
{code}

If "useVersionRange" is set to "false" (default), then nothing changes, so the resulting feature.xml would look like this:

{code:title=feature.xml}
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="test-feature-use-base-version">
    <feature name="test-feature-use-base-version" description="test-feature-use-base-version" version="1.0.0.SNAPSHOT">
        <bundle>mvn:org.apache.commons/commons-lang3/3.4</bundle>
    </feature>
</features>
{code}

If "useVersionRange" is set to "true", instead of the base version the declared version range will be used in the bundle element:

{code:title=pom.xml}
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>karaf-maven-plugin</artifactId>
            <version>@pom.version@</version>
            <extensions>true</extensions>
            <configuration>
            	<useVersionRange>true</useVersionRange>
            </configuration>
        </plugin>
    </plugins>
</build>
{code}


{code:title=feature.xml}
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="test-feature-use-version-range">
    <feature name="test-feature-use-version-range" description="test-feature-use-version-range" version="1.0.0.SNAPSHOT">
        <bundle>mvn:org.apache.commons/commons-lang3/[3.0,3.4)</bundle>
    </feature>
</features>
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)