X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.detached%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fdetached%2FSimpleDetachedActivator.java;h=8df5bbc4a5c2ea79e50043127d2298d73c0b3ba8;hb=2754847972def0aadf73b4a0d4f8c5847034a85a;hp=5006eec83e70560965654592a594ecc74977b8dd;hpb=ca0badfce48057d058b0bf9f0dc2efe07affb46b;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/SimpleDetachedActivator.java b/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/SimpleDetachedActivator.java index 5006eec83..8df5bbc4a 100644 --- a/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/SimpleDetachedActivator.java +++ b/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/SimpleDetachedActivator.java @@ -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(); } }