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() {