Author: jsdelfino
Date: Wed Sep 10 10:28:19 2008
New Revision: 693906

URL: http://svn.apache.org/viewvc?rev=693906&view=rev
Log:
Minor simplification of node-launcher-equinox, which doesn't need a 
BundleActivator anymore.

Added:
    
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxLauncherBundleHelper.java
      - copied, changed from r693884, 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/LauncherBundleActivator.java
Removed:
    
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/LauncherBundleActivator.java
Modified:
    tuscany/java/sca/modules/node-launcher-equinox/pom.xml
    
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java

Modified: tuscany/java/sca/modules/node-launcher-equinox/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-launcher-equinox/pom.xml?rev=693906&r1=693905&r2=693906&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-launcher-equinox/pom.xml (original)
+++ tuscany/java/sca/modules/node-launcher-equinox/pom.xml Wed Sep 10 10:28:19 
2008
@@ -111,7 +111,9 @@
                         <Bundle-Version>${tuscany.version}</Bundle-Version>
                         
<Bundle-SymbolicName>org.apache.tuscany.sca.node.launcher.equinox</Bundle-SymbolicName>
                         <Bundle-Description>${pom.name}</Bundle-Description>
+                        <!-- 
                         
<Bundle-Activator>org.apache.tuscany.sca.node.equinox.launcher.LauncherBundleActivator</Bundle-Activator>
+                        -->
                         
<Export-Package>org.apache.tuscany.sca.node.equinox.launcher*</Export-Package>
                         <Eclipse-AutoStart>true</Eclipse-AutoStart> 
                     </instructions>

Modified: 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java?rev=693906&r1=693905&r2=693906&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java
 (original)
+++ 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java
 Wed Sep 10 10:28:19 2008
@@ -46,7 +46,9 @@
 public class EquinoxHost {
     private static Logger logger = 
Logger.getLogger(EquinoxHost.class.getName());
 
-    private BundleContext context;
+    private BundleContext bundleContext;
+    private Bundle launcherBundle;
+    private EquinoxLauncherBundleHelper launcherActivator;
 
     private final static String systemPackages =
         "org.osgi.framework; version=1.3.0," + "org.osgi.service.packageadmin; 
version=1.2.0, "
@@ -149,18 +151,22 @@
             EclipseStarter.setInitialProperties(props);
             
             // Start Eclipse
-            context = EclipseStarter.startup(new String[]{}, null);
+            bundleContext = EclipseStarter.startup(new String[]{}, null);
             
             // Install the launcher bundle
             String bundleLocation = bundleLocation();
             logger.info("Installing launcher bundle: " + bundleLocation);
-            Bundle launcherBundle = context.installBundle(bundleLocation);
+            launcherBundle = bundleContext.installBundle(bundleLocation);
             logger.info("Starting bundle: " + string(launcherBundle, false));
             launcherBundle.start();
             
+            // Manually call the LauncherBundleActivator for now
+            launcherActivator = new EquinoxLauncherBundleHelper();
+            launcherActivator.start(launcherBundle.getBundleContext());
+            
             // Start all bundles for now to help diagnose any class loading 
issues
             long activateStart = System.currentTimeMillis();
-            for (Bundle bundle: context.getBundles()) {
+            for (Bundle bundle: bundleContext.getBundles()) {
                 if ((bundle.getState() & Bundle.ACTIVE) == 0) {
                     logger.info("Starting bundle: " + string(bundle, false));
                     try {
@@ -172,7 +178,7 @@
                 }
             }
             logger.info("Tuscany bundles are started in " + 
(System.currentTimeMillis() - activateStart) + " ms.");
-            return context;
+            return bundleContext;
             
         } catch (Exception e) {
             throw new IllegalStateException(e);
@@ -181,7 +187,19 @@
     
     public void stop() {
         try {
+            
+            // Uninstall the launcher bundle
+            if (launcherActivator != null) {
+                launcherActivator.stop(launcherBundle.getBundleContext());
+            }
+            if (launcherBundle != null) {
+                logger.info("Uninstalling bundle: " + string(launcherBundle, 
false));
+                launcherBundle.uninstall();
+            }
+
+            // Shutdown Eclipse
             EclipseStarter.shutdown();
+            
         } catch (Exception e) {
             throw new IllegalStateException(e);
         }

Copied: 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxLauncherBundleHelper.java
 (from r693884, 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/LauncherBundleActivator.java)
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxLauncherBundleHelper.java?p2=tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxLauncherBundleHelper.java&p1=tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/LauncherBundleActivator.java&r1=693884&r2=693906&rev=693906&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/LauncherBundleActivator.java
 (original)
+++ 
tuscany/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxLauncherBundleHelper.java
 Wed Sep 10 10:28:19 2008
@@ -9,23 +9,21 @@
 import java.util.logging.Logger;
 
 import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleEvent;
 import org.osgi.framework.BundleListener;
-import org.osgi.framework.Constants;
 
 /**
  * Bundle activator which installs Tuscany modules into an OSGi runtime.
  *
  */
-public class LauncherBundleActivator implements BundleActivator, Constants, 
BundleListener {
-    private static Logger logger = 
Logger.getLogger(LauncherBundleActivator.class.getName());
+public class EquinoxLauncherBundleHelper implements BundleListener {
+    private static Logger logger = 
Logger.getLogger(EquinoxLauncherBundleHelper.class.getName());
 
     private List<Bundle> installedBundles = new ArrayList<Bundle>();
     private BundleContext bundleContext;
 
-    public LauncherBundleActivator() {
+    public EquinoxLauncherBundleHelper() {
         super();
     }
 
@@ -47,8 +45,8 @@
         long libraryStart = System.currentTimeMillis();
         //InputStream library = NodeLauncherUtil.libraryBundle(jarFiles);
         Bundle libraryBundle = 
bundleContext.installBundle("org.apache.tuscany.sca.node.launcher.equinox.libraries",
 new ByteArrayInputStream(new byte[0]));
-        installedBundles.add(libraryBundle);
         logger.info("Third-party library bundle installed in " + 
(System.currentTimeMillis() - libraryStart) + " ms: " + 
NodeLauncherUtil.string(libraryBundle, false));
+        installedBundles.add(libraryBundle);
         
         // Get the set of already installed bundles
         Set<String> alreadyInstalledBundleNames = new HashSet<String>();
@@ -84,10 +82,11 @@
     public void stop(BundleContext bundleContext) throws Exception {
         
         // Uninstall all the bundles we've installed
-        for (Bundle bundle : installedBundles) {
+        for (int i = installedBundles.size() -1; i >= 0; i--) {
+            Bundle bundle = installedBundles.get(i);
             try {
                 //if (logger.isLoggable(Level.FINE)) {
-                // logger.info("Uninstalling bundle: " + 
NodeLauncherUtil.string(bundle, false));
+                logger.info("Uninstalling bundle: " + 
NodeLauncherUtil.string(bundle, false));
                 //}
                 bundle.uninstall();
             } catch (Exception e) {


Reply via email to