You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ff...@apache.org on 2014/02/27 10:31:14 UTC

git commit: [KARAF-2791]AddFeaturesToRepoMojo should support read version from dependency features (cherry picked from commit faa26adf58edac20cb80eb946dad4f1493dfdc41)

Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x 220e942a6 -> 3b41a0288


[KARAF-2791]AddFeaturesToRepoMojo should support read version from dependency features
(cherry picked from commit faa26adf58edac20cb80eb946dad4f1493dfdc41)


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/3b41a028
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/3b41a028
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/3b41a028

Branch: refs/heads/karaf-3.0.x
Commit: 3b41a0288467e34ff4b6bb77324974b073eb441a
Parents: 220e942
Author: Freeman Fang <fr...@gmail.com>
Authored: Thu Feb 27 17:29:36 2014 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Thu Feb 27 17:30:55 2014 +0800

----------------------------------------------------------------------
 .../tooling/features/AbstractFeatureMojo.java     | 18 +++++++++++++++++-
 .../karaf/tooling/features/model/Repository.java  |  9 +++++++--
 2 files changed, 24 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/3b41a028/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java
index 3d52f2d..5e9f1cb 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AbstractFeatureMojo.java
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.felix.utils.version.VersionRange;
 import org.apache.karaf.tooling.features.model.ArtifactRef;
 import org.apache.karaf.tooling.features.model.Feature;
 import org.apache.karaf.tooling.features.model.Repository;
@@ -34,6 +35,8 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.plugin.MojoExecutionException;
 
+import org.osgi.framework.Version;
+
 /**
  * Common functionality for mojos that need to reolve features
  */
@@ -185,6 +188,19 @@ public abstract class AbstractFeatureMojo extends MojoSupport {
         if (version != null) {
             // looking for a specific feature with name and version
             f = featuresMap.get(feature + "/" + version);
+            if (f == null) {
+                //it's probably is a version range so try to use VersionRange Utils
+                VersionRange versionRange = new VersionRange(version);
+                for (String key : featuresMap.keySet()) {
+                    String[] nameVersion = key.split("/");
+                    if (feature.equals(nameVersion[0])) {
+                        Version ver = new Version(featuresMap.get(key).getVersion());
+                        if (versionRange.contains(ver)) {
+                            f = featuresMap.get(key);
+                        }
+                    }
+                }
+            }
         } else {
             // looking for the first feature name (whatever the version is)
             for (String key : featuresMap.keySet()) {
@@ -251,4 +267,4 @@ public abstract class AbstractFeatureMojo extends MojoSupport {
     }
 
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/3b41a028/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/Repository.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/Repository.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/Repository.java
index ad5152d..f3210e2 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/Repository.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/model/Repository.java
@@ -99,7 +99,12 @@ public class Repository {
                 NodeList featureNodes = e.getElementsByTagName("feature");
                 for (int j = 0; j < featureNodes.getLength(); j++) {
                     Element b = (Element) featureNodes.item(j);
-                    f.addDependency(b.getTextContent());
+                    if (b.getAttribute("version") != null 
+                        && b.getAttribute("version").length() > 0) {
+                        f.addDependency(b.getTextContent() + "/" + b.getAttribute("version"));
+                    } else {
+                        f.addDependency(b.getTextContent());
+                    }
                 }
                 NodeList configNodes = e.getElementsByTagName("config");
                 for (int j = 0; j < configNodes.getLength(); j++) {
@@ -143,4 +148,4 @@ public class Repository {
         return (value == null || value == 0) ? defaultValue : value;
     }
 
-}
\ No newline at end of file
+}