You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cu...@apache.org on 2010/12/20 15:53:28 UTC

svn commit: r1051135 - in /incubator/aries/trunk/application: application-api/src/main/java/org/apache/aries/application/management/spi/framework/ application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/man...

Author: cumminsh
Date: Mon Dec 20 14:53:28 2010
New Revision: 1051135

URL: http://svn.apache.org/viewvc?rev=1051135&view=rev
Log:
ARIES-518: Allow frameworks to be started independently of their associated composite bundle, tidying in the bundle framework manager.

Modified:
    incubator/aries/trunk/application/application-api/src/main/java/org/apache/aries/application/management/spi/framework/BundleFramework.java
    incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java
    incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/SharedBundleFramework.java
    incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java

Modified: incubator/aries/trunk/application/application-api/src/main/java/org/apache/aries/application/management/spi/framework/BundleFramework.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-api/src/main/java/org/apache/aries/application/management/spi/framework/BundleFramework.java?rev=1051135&r1=1051134&r2=1051135&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-api/src/main/java/org/apache/aries/application/management/spi/framework/BundleFramework.java (original)
+++ incubator/aries/trunk/application/application-api/src/main/java/org/apache/aries/application/management/spi/framework/BundleFramework.java Mon Dec 20 14:53:28 2010
@@ -32,11 +32,17 @@ public interface BundleFramework
   public static final String SHARED_BUNDLE_FRAMEWORK = "shared.bundle.framework";
   
   /**
-   * Initialises the framework
+   * Initialises the framework (but does not start the framework bundle)
    * @throws BundleException
    */
   public void init() throws BundleException;
-  
+ 
+  /**
+   * Starts the framework and the framework bundle
+   * @throws BundleException
+   */
+  public void start() throws BundleException;
+
   /**
    * Closes the framework and any associated resource
    * @throws BundleException

Modified: incubator/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/incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java?rev=1051135&r1=1051134&r2=1051135&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java (original)
+++ incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/BundleFrameworkManagerImpl.java Mon Dec 20 14:53:28 2010
@@ -159,14 +159,8 @@ public class BundleFrameworkManagerImpl 
     // We should now have a bundleFramework
     if (bundleFramework != null) {
 
-      boolean frameworkStarted = false;
-      try {
-        // Start the empty framework bundle
-        bundleFramework.init();
-        frameworkStarted = true;
-      } catch (BundleException e) {
-        // This may fail if the framework bundle has exports but we will retry later
-      }
+       // Start the empty framework (but not the bundle)
+       bundleFramework.init();
 
       /**
        * Install the bundles into the new framework
@@ -180,8 +174,7 @@ public class BundleFrameworkManagerImpl 
       }
       
       // Finally, start the whole lot
-      if (!frameworkStarted)
-        bundleFramework.init();
+      bundleFramework.start();
     }
 
     LOGGER.debug(LOG_EXIT, "isolatedInstall", bundleFramework);

Modified: incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/SharedBundleFramework.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/SharedBundleFramework.java?rev=1051135&r1=1051134&r2=1051135&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/SharedBundleFramework.java (original)
+++ incubator/aries/trunk/application/application-runtime-framework-management/src/main/java/org/apache/aries/application/runtime/framework/management/SharedBundleFramework.java Mon Dec 20 14:53:28 2010
@@ -75,7 +75,7 @@ public class SharedBundleFramework
       
       sharedFramework = bundleFrameworkFactory.createBundleFramework(bc, config);
 
-      sharedFramework.init();
+      sharedFramework.start();
 
     } catch (BundleException e) {
       LOGGER.debug(LOG_EXIT, "createSharedBundleFramework", e);

Modified: incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java?rev=1051135&r1=1051134&r2=1051135&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java (original)
+++ incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java Mon Dec 20 14:53:28 2010
@@ -53,16 +53,23 @@ public class BundleFrameworkImpl impleme
     _bundles = new ArrayList<Bundle>();
   }
 
+  @Override
   public void init() throws BundleException
   {
     if (_compositeBundle.getCompositeFramework().getState() != Framework.ACTIVE)
     {
-      _compositeBundle.start(Bundle.START_ACTIVATION_POLICY);
-  
-      _packageAdminTracker = new ServiceTracker(_compositeBundle.getCompositeFramework().getBundleContext(),
-          PackageAdmin.class.getName(), null);
-      _packageAdminTracker.open();
-    }
+    	_compositeBundle.getCompositeFramework().start();
+        _packageAdminTracker = new ServiceTracker(_compositeBundle.getCompositeFramework().getBundleContext(),
+                PackageAdmin.class.getName(), null);
+          _packageAdminTracker.open();
+   }
+  }
+
+  @Override
+  public void start() throws BundleException
+  {
+	  init();
+    _compositeBundle.start(Bundle.START_ACTIVATION_POLICY);
   }
 
   public void close() throws BundleException