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:30:22 UTC

[1/2] git commit: [KARAF-2791]AddFeaturesToRepoMojo should support read version from dependency features (cherry picked from commit 63bff3d9ea7aa4d53974e7b499d5afa20afef319)

Repository: karaf
Updated Branches:
  refs/heads/karaf-2.x db336fe6c -> feed207d9
  refs/heads/master 05e638f6f -> faa26adf5


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


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

Branch: refs/heads/karaf-2.x
Commit: feed207d91a70eb08441a10683ed05a9f1f6de7c
Parents: db336fe
Author: Freeman Fang <fr...@gmail.com>
Authored: Tue Feb 25 14:58:01 2014 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Tue Feb 25 15:04:49 2014 +0800

----------------------------------------------------------------------
 .../tooling/features/AddFeaturesToRepoMojo.java | 23 +++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/feed207d/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java
----------------------------------------------------------------------
diff --git a/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java b/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java
index eb67a07..a332e3d 100644
--- a/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java
+++ b/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java
@@ -38,12 +38,14 @@ import java.util.Set;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.felix.utils.version.VersionRange;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.osgi.framework.Version;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
@@ -228,6 +230,7 @@ public class AddFeaturesToRepoMojo extends MojoSupport {
         throws Exception {
         // let's ensure a mvn: based url is sitting in the local repo before we try reading it
         Artifact descriptor = resourceToArtifact(uri, true);
+        
         if (descriptor != null) {
             resolveBundle(descriptor, remoteRepos);
         }
@@ -293,6 +296,19 @@ public class AddFeaturesToRepoMojo 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 feature name (with the greatest version)
                 for (String key : featuresMap.keySet()) {
@@ -477,7 +493,12 @@ public class AddFeaturesToRepoMojo extends MojoSupport {
                     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++) {


[2/2] git commit: [KARAF-2791]AddFeaturesToRepoMojo should support read version from dependency features

Posted by ff...@apache.org.
[KARAF-2791]AddFeaturesToRepoMojo should support read version from dependency features


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

Branch: refs/heads/master
Commit: faa26adf58edac20cb80eb946dad4f1493dfdc41
Parents: 05e638f
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:29:36 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/faa26adf/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/faa26adf/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
+}