package uk.ac.diamond.scisoft.analysis.peakfinding;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
public class Activator implements BundleActivator {
private static BundleContext context;
static BundleContext getContext() {
return context;
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
@Override
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
@Override
public void stop(BundleContext bundleContext) throws Exception {
Activator.context = null;
}
public static Object getService(final Class<?> serviceClass) {
if (context==null && serviceClass==IPeakFindingService.class) return new PeakFindingServiceImpl();
if (context == null) return null;
ServiceReference<?> ref = context.getServiceReference(serviceClass);
if (ref==null) return null;
return context.getService(ref);
}
}