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)