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