You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cw...@apache.org on 2011/02/07 16:15:01 UTC

svn commit: r1067961 - /aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java

Author: cwilkin
Date: Mon Feb  7 15:15:01 2011
New Revision: 1067961

URL: http://svn.apache.org/viewvc?rev=1067961&view=rev
Log:
ARIES-559 : Separate out initialise and start of bundle framework

Modified:
    aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java

Modified: aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java?rev=1067961&r1=1067960&r2=1067961&view=diff
==============================================================================
--- aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java (original)
+++ aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java Mon Feb  7 15:15:01 2011
@@ -159,31 +159,21 @@ public class BundleFrameworkManagerImpl 
 
     // We should now have a bundleFramework
     if (bundleFramework != null) {
-
-      boolean frameworkStarted = false;
-      try {
-        // Start the empty framework bundle
-        bundleFramework.start();
-        frameworkStarted = true;
-      } catch (BundleException e) {
-        // This may fail if the framework bundle has exports but we will retry later
-      }
-
-      /**
-       * Install the bundles into the new framework
-       */
       
-      try {
-        List<Bundle> installedBundles = new ArrayList<Bundle>();
+      try {  
+        // Initialise the framework (this does not start anything)
+        bundleFramework.init();
+  
+        /**
+         * Install the bundles into the new framework
+         */
+        
         BundleContext frameworkBundleContext = bundleFramework.getIsolatedBundleContext();
         if (frameworkBundleContext != null) {
           for (BundleSuggestion suggestion : bundlesToBeInstalled)
-            installedBundles.add(bundleFramework.install(suggestion, app));
-        }
+            bundleFramework.install(suggestion, app);
+        }   
         
-        // Finally, start the whole lot
-        if (!frameworkStarted)
-          bundleFramework.start();
       } catch (BundleException be) {
         bundleFramework.close();
         throw be;
@@ -226,10 +216,16 @@ public class BundleFrameworkManagerImpl 
   {
     synchronized (BundleFrameworkManager.SHARED_FRAMEWORK_LOCK) {
       BundleFramework framework = getBundleFramework(b);
+            
+      // Start all bundles inside the framework
       if (framework != null) // App Content
       {
+        // Start the framework in case not already started
+        framework.start();
+        
         for (Bundle bundle : framework.getBundles())
           framework.start(bundle);
+        
       } else // Shared bundle
       _sharedBundleFramework.start(b);
     }
@@ -239,11 +235,17 @@ public class BundleFrameworkManagerImpl 
   {
     synchronized (BundleFrameworkManager.SHARED_FRAMEWORK_LOCK) {
       BundleFramework framework = getBundleFramework(b);
+      
+      // Stop all bundles inside the framework
       if (framework != null) // App Content
       {
         for (Bundle bundle : framework.getBundles())
           framework.stop(bundle);
+        
+        // Stop the framework
+        framework.getFrameworkBundle().stop();
       }
+      
       // Do not stop shared bundles
     }
   }