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(); } }