You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2015/04/15 10:10:02 UTC

karaf git commit: [KARAF-2952] Fix problem when invalid version is given and allow feature name/version syntax

Repository: karaf
Updated Branches:
  refs/heads/master fb520ff12 -> b24cd0f87


[KARAF-2952] Fix problem when invalid version is given and allow feature name/version syntax


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

Branch: refs/heads/master
Commit: b24cd0f873b478868a793634f68d37eea1169f42
Parents: fb520ff
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Wed Apr 15 10:09:42 2015 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Wed Apr 15 10:09:42 2015 +0200

----------------------------------------------------------------------
 .../karaf/features/command/FeaturesCommandSupport.java  | 11 ++++-------
 .../features/internal/service/FeaturesServiceImpl.java  | 12 +++++++++---
 .../org/apache/karaf/features/FeaturesServiceTest.java  |  2 +-
 3 files changed, 14 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/b24cd0f8/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java b/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java
index 5f56289..0ad5afe 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/FeaturesCommandSupport.java
@@ -50,16 +50,13 @@ public abstract class FeaturesCommandSupport implements Action {
         }
     }
     
-    protected String getFeatureId(FeaturesService admin, String featureName) throws Exception {
-        String[] parts = featureName.split("/");
-        String name = parts.length > 0 ? parts[0] : featureName;
-        String version = parts.length > 1 ? parts[1] : null;
-        Feature[] matchingFeatures = admin.getFeatures(name, version);
+    protected String getFeatureId(FeaturesService admin, String nameOrId) throws Exception {
+        Feature[] matchingFeatures = admin.getFeatures(nameOrId);
         if (matchingFeatures.length == 0) {
-            throw new IllegalArgumentException("No matching feature found for " + featureName);
+            throw new IllegalArgumentException("No matching feature found for " + nameOrId);
         }
         if (matchingFeatures.length > 1) {
-            throw new IllegalArgumentException("More than one matching feature found for " + featureName);
+            throw new IllegalArgumentException("More than one matching feature found for " + nameOrId);
         }
         return matchingFeatures[0].getId();
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/b24cd0f8/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
index f7a897b..4c45b24 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
@@ -536,8 +536,11 @@ public class FeaturesServiceImpl implements FeaturesService, Deployer.DeployCall
         }
     }
 
-    public Feature[] getFeatures(String name) throws Exception {
-        return getFeatures(name, null);
+    public Feature[] getFeatures(String nameOrId) throws Exception {
+        String[] parts = nameOrId.split("/");
+        String name = parts.length > 0 ? parts[0] : nameOrId;
+        String version = parts.length > 1 ? parts[1] : null;
+        return getFeatures(name, version);
     }
 
     public Feature[] getFeatures(String name, String version) throws Exception {
@@ -547,7 +550,10 @@ public class FeaturesServiceImpl implements FeaturesService, Deployer.DeployCall
             Matcher matcher = pattern.matcher(featureName);
             if (matcher.matches()) {
                 Map<String, Feature> versions = getFeatures().get(featureName);
-                features.add(getFeatureMatching(versions, version));
+                Feature matchingFeature = getFeatureMatching(versions, version);
+                if (matchingFeature != null) {
+                    features.add(matchingFeature);
+                }
             }
         }
         return features.toArray(new Feature[features.size()]);

http://git-wip-us.apache.org/repos/asf/karaf/blob/b24cd0f8/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java b/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
index 71ce70c..aa59614 100644
--- a/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
@@ -354,7 +354,7 @@ public class FeaturesServiceTest extends TestBase {
         assertEquals(feature("f2", "0.2"), svc.getFeatures("f2", "[0.1,0.3)")[0]);
         assertEquals(feature("f2", "0.2"), svc.getFeatures("f2", "0.0.0")[0]);
         assertEquals(feature("f2", "0.2"), svc.getFeatures("f2", "0.2")[0]);
-        assertNull(svc.getFeatures("f2", "0.3")[0]);
+        assertEquals(0, svc.getFeatures("f2", "0.3").length);
     }
 
     @Test