X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.osgi%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fosgi%2FOsgiExecutionModulesManager.java;h=6625ebd3b53fbacbc79c31360328111f1bc1fff8;hb=ac38932aab09592c1ec0af26c26899536dff284f;hp=ed4b7faea33bcb7d80e84d2211f241fb3c33e741;hpb=827cc6fa4bff1994f89cb8d925808def5600b5dc;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiExecutionModulesManager.java b/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiExecutionModulesManager.java index ed4b7faea..6625ebd3b 100644 --- a/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiExecutionModulesManager.java +++ b/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiExecutionModulesManager.java @@ -46,6 +46,7 @@ import org.argeo.slc.execution.ExecutionModuleDescriptor; import org.argeo.slc.execution.ExecutionModulesListener; import org.argeo.slc.process.RealizedFlow; import org.osgi.framework.Bundle; +import org.osgi.framework.BundleException; import org.osgi.framework.Constants; import org.springframework.osgi.service.importer.OsgiServiceLifecycleListener; @@ -224,6 +225,26 @@ public class OsgiExecutionModulesManager extends return lst; } + public void start(NameVersion nameVersion) { + try { + Bundle bundle = bundlesManager.findRelatedBundle(new OsgiBundle( + nameVersion)); + bundlesManager.startSynchronous(bundle); + } catch (BundleException e) { + throw new SlcException("Cannot start " + nameVersion, e); + } + } + + public void stop(NameVersion nameVersion) { + try { + Bundle bundle = bundlesManager.findRelatedBundle(new OsgiBundle( + nameVersion)); + bundlesManager.stopSynchronous(bundle); + } catch (BundleException e) { + throw new SlcException("Cannot stop " + nameVersion, e); + } + } + protected void setMetadataFromBundle(ModuleDescriptor md, Bundle bundle) { Bundle bdl = bundle; if (bdl == null) { @@ -322,7 +343,7 @@ public class OsgiExecutionModulesManager extends Set flows = executionFlows.get(osgiBundle); flows.remove(executionFlow); if (log.isTraceEnabled()) - log.debug("Removed " + executionFlow + " from " + osgiBundle); + log.trace("Removed " + executionFlow + " from " + osgiBundle); if (flows.size() == 0) { executionFlows.remove(osgiBundle); if (log.isTraceEnabled())