| package org.eclipse.ecf.internal.tests.core; |
| |
| import org.eclipse.ecf.core.IContainerFactory; |
| import org.eclipse.ecf.core.IContainerManager; |
| import org.eclipse.ecf.core.identity.IIDFactory; |
| import org.osgi.framework.BundleActivator; |
| import org.osgi.framework.BundleContext; |
| import org.osgi.util.tracker.ServiceTracker; |
| |
| public class Activator implements BundleActivator { |
| |
| // The plug-in ID |
| public static final String PLUGIN_ID = "org.eclipse.ecf.tests.core"; |
| |
| // The shared instance |
| private static Activator plugin; |
| |
| private static ServiceTracker idFactoryServiceTracker; |
| private static IIDFactory idFactory; |
| |
| private static ServiceTracker containerFactoryServiceTracker; |
| private static IContainerFactory containerFactory; |
| |
| private static ServiceTracker containerManagerServiceTracker; |
| |
| private static BundleContext context; |
| |
| public static BundleContext getContext() { |
| return context; |
| } |
| /** |
| * The constructor |
| */ |
| public Activator() { |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext) |
| */ |
| public void start(BundleContext ctxt) throws Exception { |
| plugin = this; |
| context = ctxt; |
| idFactoryServiceTracker = new ServiceTracker(context, |
| IIDFactory.class.getName(), null); |
| idFactoryServiceTracker.open(); |
| idFactory = (IIDFactory) idFactoryServiceTracker.getService(); |
| containerFactoryServiceTracker = new ServiceTracker(context, |
| IContainerFactory.class.getName(), null); |
| containerFactoryServiceTracker.open(); |
| containerFactory = (IContainerFactory) containerFactoryServiceTracker |
| .getService(); |
| containerManagerServiceTracker = new ServiceTracker(context, |
| IContainerManager.class.getName(), null); |
| containerManagerServiceTracker.open(); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext) |
| */ |
| public void stop(BundleContext context) throws Exception { |
| if (idFactoryServiceTracker != null) { |
| idFactoryServiceTracker.close(); |
| idFactoryServiceTracker = null; |
| } |
| if (containerFactoryServiceTracker != null) { |
| containerFactoryServiceTracker.close(); |
| containerFactoryServiceTracker = null; |
| } |
| if (containerManagerServiceTracker != null) { |
| containerManagerServiceTracker.close(); |
| containerManagerServiceTracker = null; |
| } |
| plugin = null; |
| idFactory = null; |
| } |
| |
| /** |
| * Returns the shared instance |
| * |
| * @return the shared instance |
| */ |
| public static Activator getDefault() { |
| return plugin; |
| } |
| |
| public IIDFactory getIDFactory() { |
| return idFactory; |
| } |
| |
| public IContainerFactory getContainerFactory() { |
| return containerFactory; |
| } |
| |
| /** |
| * @return container manager. |
| */ |
| public IContainerManager getContainerManager() { |
| return (IContainerManager) containerManagerServiceTracker.getService(); |
| } |
| } |