diff options
| author | Thomas Watson | 2011-10-03 15:55:18 +0000 |
|---|---|---|
| committer | Thomas Watson | 2011-10-03 15:55:18 +0000 |
| commit | ab8463e3c0066498fd179ab073d0a6367f80984f (patch) | |
| tree | 26c483d8cab1aabd9011a9d2a14c9ab6eeae0796 | |
| parent | 83fe4a31818ffb39e51fd09ccc4dcd31b88701fb (diff) | |
| download | rt.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.java | 25 |
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()); } |
