/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.openmole.misc.pluginmanager.internal;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.packageadmin.PackageAdmin;
import org.openmole.misc.pluginmanager.IPluginManager;
/**
*
* @author reuillon
*/
public class Activator implements BundleActivator {
private static BundleContext context;
private static PackageAdmin packageAdmin;
private ServiceRegistration regExecutor;
private static IPluginManager pluginManager;
@Override
public void start(BundleContext context) throws Exception {
this.context = context;
pluginManager = new PluginManager();
regExecutor = context.registerService(IPluginManager.class.getName(), pluginManager, null);
}
@Override
public void stop(BundleContext arg0) throws Exception {
regExecutor.unregister();
}
public static BundleContext getContext() {
return context;
}
public static PackageAdmin getPackageAdmin() {
if(packageAdmin != null) return packageAdmin;
synchronized (Activator.class) {
if(packageAdmin == null) {
ServiceReference ref = getContext().getServiceReference(PackageAdmin.class.getName());
packageAdmin = (PackageAdmin) getContext().getService(ref);
}
return packageAdmin;
}
}
}