Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2011-10-03 15:55:18 +0000
committerThomas Watson2011-10-03 15:55:18 +0000
commitab8463e3c0066498fd179ab073d0a6367f80984f (patch)
tree26c483d8cab1aabd9011a9d2a14c9ab6eeae0796
parent83fe4a31818ffb39e51fd09ccc4dcd31b88701fb (diff)
downloadrt.equinox.incubator-ab8463e3c0066498fd179ab073d0a6367f80984f.tar.gz
rt.equinox.incubator-ab8463e3c0066498fd179ab073d0a6367f80984f.tar.xz
rt.equinox.incubator-ab8463e3c0066498fd179ab073d0a6367f80984f.zip
start required felix gogo bundles.v20111003-1644
-rw-r--r--console/org.eclipse.equinox.console.supportability/src/org/eclipse/equinox/console/command/adapter/Activator.java25
1 files changed, 22 insertions, 3 deletions
diff --git a/console/org.eclipse.equinox.console.supportability/src/org/eclipse/equinox/console/command/adapter/Activator.java b/console/org.eclipse.equinox.console.supportability/src/org/eclipse/equinox/console/command/adapter/Activator.java
index 9ba4829f..c7dcca8f 100644
--- a/console/org.eclipse.equinox.console.supportability/src/org/eclipse/equinox/console/command/adapter/Activator.java
+++ b/console/org.eclipse.equinox.console.supportability/src/org/eclipse/equinox/console/command/adapter/Activator.java
@@ -32,8 +32,10 @@ import org.eclipse.equinox.console.telnet.TelnetCommand;
import org.eclipse.osgi.framework.console.CommandInterpreter;
import org.eclipse.osgi.framework.console.CommandProvider;
import org.eclipse.osgi.framework.console.ConsoleSession;
+import org.osgi.framework.Bundle;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.condpermadmin.ConditionalPermissionAdmin;
@@ -51,7 +53,7 @@ public class Activator implements BundleActivator {
private ServiceTracker<StartLevel, ?> startLevelManagerTracker;
private ServiceTracker<ConditionalPermissionAdmin, ?> condPermAdminTracker;
private ServiceTracker<PermissionAdmin, ?> permissionAdminTracker;
- private ServiceTracker<PackageAdmin, ?> packageAdminTracker;
+ private ServiceTracker<PackageAdmin, PackageAdmin> packageAdminTracker;
private ServiceTracker<PlatformAdmin, ?> platformAdminTracker;
private static List<TelnetCommand> telnetConnections = new ArrayList<TelnetCommand>();
private static List<SshCommand> sshConnections = new ArrayList<SshCommand>();
@@ -211,7 +213,7 @@ public class Activator implements BundleActivator {
startLevelManagerTracker = new ServiceTracker<StartLevel, Object>(context, StartLevel.class.getName(), null);
startLevelManagerTracker.open();
- packageAdminTracker = new ServiceTracker<PackageAdmin, Object>(context, PackageAdmin.class.getName(), null);
+ packageAdminTracker = new ServiceTracker<PackageAdmin, PackageAdmin>(context, PackageAdmin.class, null);
packageAdminTracker.open();
platformAdminTracker = new ServiceTracker<PlatformAdmin, Object>(context, PlatformAdmin.class.getName(), null);
@@ -228,8 +230,25 @@ public class Activator implements BundleActivator {
DisconnectCommand disconnectCommand = new DisconnectCommand(context);
disconnectCommand.start();
+
+ startBundle("org.apache.felix.gogo.runtime", true);
+ startBundle("org.apache.felix.gogo.shell", true);
+ startBundle("org.apache.felix.gogo.command", false);
}
-
+
+ private void startBundle(String bsn, boolean required) throws BundleException {
+ PackageAdmin pa = packageAdminTracker.getService();
+ if (pa != null) {
+ @SuppressWarnings("deprecation")
+ Bundle[] shells = pa.getBundles(bsn, null);
+ if (shells != null && shells.length > 0) {
+ shells[0].start(Bundle.START_TRANSIENT);
+ } else if (required) {
+ throw new BundleException("Missing required bundle: " + bsn);
+ }
+ }
+ }
+
public StartLevel getStartLevel() {
return (StartLevel) getServiceFromTracker(startLevelManagerTracker, StartLevel.class.getName());
}

Back to the top