]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - 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
index 5006eec83e70560965654592a594ecc74977b8dd..8df5bbc4a5c2ea79e50043127d2298d73c0b3ba8 100644 (file)
@@ -2,22 +2,37 @@ package org.argeo.slc.detached;
 
 import java.util.Properties;
 
+import org.argeo.slc.detached.drivers.AbstractDriver;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
 
 public class SimpleDetachedActivator extends AbstractDetachedActivator {
-       private DetachedExecutionServerImpl executionServer;
+       private AbstractDriver driver;
 
        protected void startAutoBundle(BundleContext context) throws Exception {
-               Object obj = getStaticRefProvider().getStaticRef("executionServer");
+               Object obj = getStaticRefProvider().getStaticRef("slcDetached.driver");
                if (obj != null)
-                       executionServer = (DetachedExecutionServerImpl) obj;
+                       driver = (AbstractDriver) obj;
+               else
+                       throw new DetachedException("Could not find driver.");
+
+               DetachedExecutionServer executionServer = null;
+               ServiceReference ref = context
+                               .getServiceReference(DetachedExecutionServer.class.getName());
+               if (ref != null)
+                       executionServer = (DetachedExecutionServer) context.getService(ref);
                else
                        throw new DetachedException("Could not find execution server.");
+               driver.setExecutionServer(executionServer);
+               driver.start();
 
-               executionServer.init(context);
+               context.registerService(DetachedDriver.class.getName(), driver,
+                               new Properties());
+       }
 
-               context.registerService(DetachedExecutionServer.class.getName(),
-                               executionServer, new Properties());
+       protected void stopAutoBundle(BundleContext context) throws Exception {
+               if (driver != null)
+                       driver.stop();
        }
 
 }