SLING-4728 - do not start fragment bundles
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1685850 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/crankstart/launcher/FrameworkSetup.java b/src/main/java/org/apache/sling/crankstart/launcher/FrameworkSetup.java
index fc97225..cb1f3b7 100644
--- a/src/main/java/org/apache/sling/crankstart/launcher/FrameworkSetup.java
+++ b/src/main/java/org/apache/sling/crankstart/launcher/FrameworkSetup.java
@@ -77,16 +77,25 @@
int started = 0;
int failed = 0;
for(Bundle b : bundles) {
- try {
- b.start();
+ if(isFragment(b)) {
started++;
- } catch(BundleException be) {
- failed++;
- log.warn("Error starting bundle " + b.getSymbolicName(), be);
+ } else {
+ try {
+ b.start();
+ started++;
+ } catch(BundleException be) {
+ failed++;
+ log.warn("Error starting bundle " + b.getSymbolicName(), be);
+ }
}
cfg.maybeConfigure();
}
- log.info("{} bundles started, {} failed to start, total {}", started, failed, bundles.length);
+
+ if(failed == 0) {
+ log.info("All {} bundles started.", started);
+ } else {
+ log.info("{} bundles started, {} failed to start, total {}", started, failed, bundles.length);
+ }
log.info("OSGi setup done, waiting for framework to stop");
framework.waitForStop(0);
@@ -94,6 +103,10 @@
return null;
}
+ private boolean isFragment(Bundle b) {
+ return b.getHeaders().get("Fragment-Host") != null;
+ }
+
private void setShutdownHook(final Framework osgiFramework, final Closeable ... toClose) {
// Shutdown the framework when the JVM exits
Runtime.getRuntime().addShutdownHook(new Thread() {