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 2016/06/21 15:26:59 UTC
[2/2] karaf git commit: [KARAF-4547] Defer setting startlevel to
after bundles are installed
[KARAF-4547] Defer setting startlevel to after bundles are installed
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/2898aba5
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/2898aba5
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/2898aba5
Branch: refs/heads/master
Commit: 2898aba5dbc0966f5b2ee22e7153bb2f7e466c5c
Parents: ba1327b
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Tue Jun 21 17:08:15 2016 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Tue Jun 21 17:08:58 2016 +0200
----------------------------------------------------------------------
.../org/apache/karaf/features/internal/service/Deployer.java | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/2898aba5/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
index 670985b..39ea762 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
@@ -723,6 +723,7 @@ public class Deployer {
}
if (hasToInstall) {
print("Installing bundles:", verbose);
+ Map<Bundle, Integer> customStartLevels = new HashMap<Bundle, Integer>();
for (Map.Entry<String, Deployer.RegionDeployment> entry : deployment.regions.entrySet()) {
String name = entry.getKey();
Deployer.RegionDeployment regionDeployment = entry.getValue();
@@ -746,7 +747,7 @@ public class Deployer {
}
Integer startLevel = startLevels.get(resource);
if (startLevel != null && startLevel != dstate.initialBundleStartLevel) {
- callback.setBundleStartLevel(bundle, startLevel);
+ customStartLevels.put(bundle, startLevel);
}
FeatureState reqState = states.get(resource);
if (reqState == null) {
@@ -763,6 +764,11 @@ public class Deployer {
}
}
}
+
+ // Set start levels after install to avoid starting before all bundles are installed
+ for (Bundle bundle : customStartLevels.keySet()) {
+ callback.setBundleStartLevel(bundle, customStartLevels.get(bundle));
+ }
}
//