]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/SimpleDetachedActivator.java
Start introducing OSGi commands
[gpl/argeo-slc.git] / org.argeo.slc.detached / src / main / java / org / argeo / slc / detached / SimpleDetachedActivator.java
1 package org.argeo.slc.detached;
2
3 import java.util.Properties;
4
5 import org.argeo.slc.detached.drivers.AbstractDriver;
6 import org.osgi.framework.BundleContext;
7 import org.osgi.framework.ServiceReference;
8
9 public class SimpleDetachedActivator extends AbstractDetachedActivator {
10 private AbstractDriver driver;
11
12 protected void startAutoBundle(BundleContext context) throws Exception {
13 Object obj = getStaticRefProvider().getStaticRef("slcDetached.driver");
14 if (obj != null)
15 driver = (AbstractDriver) obj;
16 else
17 throw new DetachedException("Could not find driver.");
18
19 DetachedExecutionServer executionServer = null;
20 ServiceReference ref = context
21 .getServiceReference(DetachedExecutionServer.class.getName());
22 if (ref != null)
23 executionServer = (DetachedExecutionServer) context.getService(ref);
24 else
25 throw new DetachedException("Could not find execution server.");
26 driver.setExecutionServer(executionServer);
27 driver.start();
28
29 context.registerService(DetachedDriver.class.getName(), driver,
30 new Properties());
31 }
32
33 protected void stopAutoBundle(BundleContext context) throws Exception {
34 if (driver != null)
35 driver.stop();
36 }
37
38 }