Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x daacf263b -> 3fea36f08


[KARAF-3032] Multi-stage boot features function does not more than 2 stages.


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

Branch: refs/heads/karaf-3.0.x
Commit: 3fea36f087b24ab5d5cf825471a8dab9c210f3cc
Parents: daacf26
Author: Guillaume Nodet <gno...@gmail.com>
Authored: Fri Oct 24 15:45:41 2014 +0200
Committer: Guillaume Nodet <gno...@gmail.com>
Committed: Fri Oct 24 15:48:53 2014 +0200

----------------------------------------------------------------------
 .../apache/karaf/features/internal/BootFeaturesInstaller.java   | 2 +-
 .../karaf/features/internal/BootFeaturesInstallerTest.java      | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/3fea36f0/features/core/src/main/java/org/apache/karaf/features/internal/BootFeaturesInstaller.java
----------------------------------------------------------------------
diff --git 
a/features/core/src/main/java/org/apache/karaf/features/internal/BootFeaturesInstaller.java
 
b/features/core/src/main/java/org/apache/karaf/features/internal/BootFeaturesInstaller.java
index b0d0673..30a6804 100644
--- 
a/features/core/src/main/java/org/apache/karaf/features/internal/BootFeaturesInstaller.java
+++ 
b/features/core/src/main/java/org/apache/karaf/features/internal/BootFeaturesInstaller.java
@@ -141,7 +141,7 @@ public class BootFeaturesInstaller {
     }
     
     protected List<Set<String>> parseBootFeatures(String bootFeatures) {
-        Pattern pattern = Pattern.compile("(\\((.+))\\),|.+");
+        Pattern pattern = 
Pattern.compile("(\\s*\\(([^)]+))\\s*\\)\\s*,\\s*|.+");
         Matcher matcher = pattern.matcher(bootFeatures);
         List<Set<String>> result = new ArrayList<Set<String>>();
         while (matcher.find()) {

http://git-wip-us.apache.org/repos/asf/karaf/blob/3fea36f0/features/core/src/test/java/org/apache/karaf/features/internal/BootFeaturesInstallerTest.java
----------------------------------------------------------------------
diff --git 
a/features/core/src/test/java/org/apache/karaf/features/internal/BootFeaturesInstallerTest.java
 
b/features/core/src/test/java/org/apache/karaf/features/internal/BootFeaturesInstallerTest.java
index b59806d..a148c40 100644
--- 
a/features/core/src/test/java/org/apache/karaf/features/internal/BootFeaturesInstallerTest.java
+++ 
b/features/core/src/test/java/org/apache/karaf/features/internal/BootFeaturesInstallerTest.java
@@ -34,8 +34,9 @@ public class BootFeaturesInstallerTest extends TestBase {
     @SuppressWarnings("unchecked")
     public void testParser() {
         BootFeaturesInstaller installer = new BootFeaturesInstaller(null, 
null, "", false);
-        Assert.assertEquals(asList(setOf("test1", "test2"),setOf("test3")), 
installer.parseBootFeatures("(test1, test2), test3"));
-        Assert.assertEquals(asList(setOf("test1", "test2", "test3")), 
installer.parseBootFeatures("test1, test2, test3"));
+        Assert.assertEquals(asList(setOf("test1", "test2"), setOf("test3")), 
installer.parseBootFeatures(" ( test1 , test2 ) , test3 "));
+        Assert.assertEquals(asList(setOf("test1", "test2", "test3")), 
installer.parseBootFeatures(" test1 , test2, test3"));
+        Assert.assertEquals(asList(setOf("test1"), setOf("test2"), 
setOf("test3")), installer.parseBootFeatures("(test1), (test2), test3"));
     }
     
     @Test

Reply via email to