From 675ec86bfb3b65159f0561b8c9d00a4168510c15 Mon Sep 17 00:00:00 2001 From: Philippe Rioland Date: Mon, 16 Mar 2009 00:23:40 +0000 Subject: [PATCH] Une nouvelle version du SlcManager qui peut se lancer dans un simpleFlow git-svn-id: https://svn.argeo.org/slc/trunk@2274 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../core/execution/tasks/SlcManagerTask.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/tasks/SlcManagerTask.java diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/tasks/SlcManagerTask.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/tasks/SlcManagerTask.java new file mode 100644 index 000000000..c14c629da --- /dev/null +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/tasks/SlcManagerTask.java @@ -0,0 +1,79 @@ +package org.argeo.slc.core.execution.tasks; + +import java.lang.reflect.Method; +import java.util.UUID; + +import org.argeo.slc.SlcException; +import org.argeo.slc.deploy.DeployedSystem; +import org.argeo.slc.deploy.DeployedSystemManager; +import org.argeo.slc.execution.Executable; +import org.argeo.slc.process.SlcExecution; +import org.argeo.slc.process.SlcExecutionRelated; +import org.argeo.slc.process.SlcExecutionStep; +import org.argeo.slc.structure.StructureRegistry; + +public class SlcManagerTask implements Executable, SlcExecutionRelated { + private String uuid; + private String slcExecutionUuid; + private String slcExecutionStepUuid; + + private String action; + private DeployedSystemManager manager; + + public final void execute() { + uuid = UUID.randomUUID().toString(); + executeActions(StructureRegistry.ALL); + } + + protected void executeActions(String mode) { + try { + Method method = manager.getClass().getMethod(action, null); + method.invoke(manager, null); + } catch (Exception e) { + throw new SlcException("Cannot execute action " + action + + " for manager " + manager, e); + } + } + + public void setAction(String action) { + this.action = action; + } + + public void setManager(DeployedSystemManager manager) { + this.manager = manager; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public String getSlcExecutionUuid() { + return slcExecutionUuid; + } + + public void setSlcExecutionUuid(String slcExecutionUuid) { + this.slcExecutionUuid = slcExecutionUuid; + } + + public String getSlcExecutionStepUuid() { + return slcExecutionStepUuid; + } + + public void setSlcExecutionStepUuid(String slcExecutionStepUuid) { + this.slcExecutionStepUuid = slcExecutionStepUuid; + } + + public void notifySlcExecution(SlcExecution slcExecution) { + if (slcExecution != null) { + slcExecutionUuid = slcExecution.getUuid(); + SlcExecutionStep step = slcExecution.currentStep(); + if (step != null) { + slcExecutionStepUuid = step.getUuid(); + } + } + } +} -- 2.39.5