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