You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ld...@apache.org on 2017/10/13 09:53:59 UTC

karaf git commit: KARAF-5403 Fix for loosing order of features given in tooling configuration.

Repository: karaf
Updated Branches:
  refs/heads/karaf-4.0.x b8fdb76ce -> 51f340673


KARAF-5403 Fix for loosing order of features given in tooling configuration.


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

Branch: refs/heads/karaf-4.0.x
Commit: 51f34067365d72fd853b85ff8b8fd858326871d3
Parents: b8fdb76
Author: Łukasz Dywicki <lu...@code-house.org>
Authored: Tue Oct 3 14:59:17 2017 +0200
Committer: Łukasz Dywicki <lu...@code-house.org>
Committed: Tue Oct 3 15:16:58 2017 +0200

----------------------------------------------------------------------
 .../apache/karaf/profile/assembly/Builder.java   | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/51f34067/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
----------------------------------------------------------------------
diff --git a/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java b/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
index ff121f4..27aac7d 100644
--- a/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
+++ b/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
@@ -32,7 +32,6 @@ import java.util.Collections;
 import java.util.Dictionary;
 import java.util.EnumSet;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -738,7 +737,7 @@ public class Builder {
         // Load startup repositories
         Map<String, Features> installedRepositories = loadRepositories(manager, installedEffective.getRepositories(), true);
         // Compute startup feature dependencies
-        Set<Feature> allInstalledFeatures = new HashSet<>();
+        Set<Feature> allInstalledFeatures = new LinkedHashSet<>();
         for (Features repo : installedRepositories.values()) {
             allInstalledFeatures.addAll(repo.getFeature());
         }
@@ -781,12 +780,12 @@ public class Builder {
         // Load startup repositories
         Map<String, Features> bootRepositories = loadRepositories(manager, bootEffective.getRepositories(), true);
         // Compute startup feature dependencies
-        Set<Feature> allBootFeatures = new HashSet<>();
+        Set<Feature> allBootFeatures = new LinkedHashSet<>();
         for (Features repo : bootRepositories.values()) {
             allBootFeatures.addAll(repo.getFeature());
         }
         // Generate a global feature
-        Map<String, Dependency> generatedDep = new HashMap<>();
+        Map<String, Dependency> generatedDep = new LinkedHashMap<>();
         Feature generated = new Feature();
         generated.setName(UUID.randomUUID().toString());
         // Add feature dependencies
@@ -815,13 +814,13 @@ public class Builder {
         Downloader downloader = manager.createDownloader();
 
         // Compute startup feature dependencies
-        Set<Feature> bootFeatures = new HashSet<>();
+        Set<Feature> bootFeatures = new LinkedHashSet<>();
         addFeatures(allBootFeatures, generated.getName(), bootFeatures, true);
         for (Feature feature : bootFeatures) {
             // the feature is a startup feature, updating startup.properties file
             LOGGER.info("Feature " + feature.getName() + " is defined as a boot feature");
             // add the feature in the system folder
-            Set<String> locations = new HashSet<>();
+            Set<String> locations = new LinkedHashSet<>();
             for (Bundle bundle : feature.getBundle()) {
                 if (!ignoreDependencyFlag || !bundle.isDependency()) {
                     locations.add(bundle.getLocation().trim());
@@ -937,7 +936,7 @@ public class Builder {
 
     private String getRepos(Features rep) {
         StringBuilder repos = new StringBuilder();
-        for (String repo : new HashSet<>(rep.getRepository())) {
+        for (String repo : new LinkedHashSet<>(rep.getRepository())) {
             if (repos.length() > 0) {
                 repos.append(",");
             }
@@ -1087,7 +1086,7 @@ public class Builder {
             name = feature;
             range = new VersionRange(Version.emptyVersion);
         }
-        Set<Feature> set = new HashSet<>();
+        Set<Feature> set = new LinkedHashSet<>();
         for (Feature f : allFeatures) {
             if (f.getName().equals(name) && range.contains(VersionTable.getVersion(f.getVersion()))) {
                 set.add(f);
@@ -1252,7 +1251,7 @@ public class Builder {
         for (String bundle : bundles) {
             MapUtils.addToMapSet(request.requirements, FeaturesService.ROOT_REGION, "bundle:" + bundle);
         }
-        Set<String> prereqs = new HashSet<>();
+        Set<String> prereqs = new LinkedHashSet<>();
         while (true) {
             try {
                 deployer.deploy(callback.getDeploymentState(), request);
@@ -1274,7 +1273,7 @@ public class Builder {
         request.bundleUpdateRange = FeaturesService.DEFAULT_BUNDLE_UPDATE_RANGE;
         request.featureResolutionRange = FeaturesService.DEFAULT_FEATURE_RESOLUTION_RANGE;
         request.serviceRequirements = FeaturesService.SERVICE_REQUIREMENTS_DEFAULT;
-        request.overrides = new HashSet<>();
+        request.overrides = new LinkedHashSet<>();
         request.requirements = new HashMap<>();
         request.stateChanges = new HashMap<>();
         request.options = EnumSet.noneOf(FeaturesService.Option.class);