[KARAF-4830] Keep features order while parsing boot features

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

Branch: refs/heads/karaf-4.0.x
Commit: 0bb989aa1e0187a73202b9c340118ce3cc6d819a
Parents: 95c0dfe
Author: Guillaume Nodet <[email protected]>
Authored: Wed Nov 23 10:33:14 2016 +0100
Committer: Guillaume Nodet <[email protected]>
Committed: Wed Nov 23 10:33:14 2016 +0100

----------------------------------------------------------------------
 .../features/internal/service/BootFeaturesInstaller.java     | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/0bb989aa/features/core/src/main/java/org/apache/karaf/features/internal/service/BootFeaturesInstaller.java
----------------------------------------------------------------------
diff --git 
a/features/core/src/main/java/org/apache/karaf/features/internal/service/BootFeaturesInstaller.java
 
b/features/core/src/main/java/org/apache/karaf/features/internal/service/BootFeaturesInstaller.java
index bb93361..b0508f9 100644
--- 
a/features/core/src/main/java/org/apache/karaf/features/internal/service/BootFeaturesInstaller.java
+++ 
b/features/core/src/main/java/org/apache/karaf/features/internal/service/BootFeaturesInstaller.java
@@ -20,8 +20,8 @@ import java.io.File;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.EnumSet;
-import java.util.HashSet;
 import java.util.Hashtable;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.StringTokenizer;
@@ -131,14 +131,14 @@ public class BootFeaturesInstaller {
         List<Set<String>> stages = new ArrayList<>();
         StringTokenizer tokenizer = new StringTokenizer(bootFeatures, " 
\t\r\n,()", true);
         int paren = 0;
-        Set<String> stage = new HashSet<>();
+        Set<String> stage = new LinkedHashSet<>();
         while (tokenizer.hasMoreTokens()) {
             String token = tokenizer.nextToken();
             if (token.equals("(")) {
                 if (paren == 0) {
                     if (!stage.isEmpty()) {
                         stages.add(stage);
-                        stage = new HashSet<>();
+                        stage = new LinkedHashSet<>();
                     }
                     paren++;
                 } else {
@@ -148,7 +148,7 @@ public class BootFeaturesInstaller {
                 if (paren == 1) {
                     if (!stage.isEmpty()) {
                         stages.add(stage);
-                        stage = new HashSet<>();
+                        stage = new LinkedHashSet<>();
                     }
                     paren--;
                 } else {

Reply via email to