]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Une nouvelle version du SlcManager qui peut se lancer dans un simpleFlow
authorPhilippe Rioland <philippe.rioland@capco.com>
Mon, 16 Mar 2009 00:23:40 +0000 (00:23 +0000)
committerPhilippe Rioland <philippe.rioland@capco.com>
Mon, 16 Mar 2009 00:23:40 +0000 (00:23 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@2274 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/execution/tasks/SlcManagerTask.java [new file with mode: 0644]

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 (file)
index 0000000..c14c629
--- /dev/null
@@ -0,0 +1,79 @@
+package org.argeo.slc.core.execution.tasks;\r
+\r
+import java.lang.reflect.Method;\r
+import java.util.UUID;\r
+\r
+import org.argeo.slc.SlcException;\r
+import org.argeo.slc.deploy.DeployedSystem;\r
+import org.argeo.slc.deploy.DeployedSystemManager;\r
+import org.argeo.slc.execution.Executable;\r
+import org.argeo.slc.process.SlcExecution;\r
+import org.argeo.slc.process.SlcExecutionRelated;\r
+import org.argeo.slc.process.SlcExecutionStep;\r
+import org.argeo.slc.structure.StructureRegistry;\r
+\r
+public class SlcManagerTask implements Executable, SlcExecutionRelated {\r
+       private String uuid;\r
+       private String slcExecutionUuid;\r
+       private String slcExecutionStepUuid;\r
+       \r
+       private String action;\r
+       private DeployedSystemManager<DeployedSystem> manager;\r
+\r
+       public final void execute() {\r
+               uuid = UUID.randomUUID().toString();\r
+               executeActions(StructureRegistry.ALL);\r
+       }\r
+       \r
+       protected void executeActions(String mode) {\r
+               try {\r
+                       Method method = manager.getClass().getMethod(action, null);\r
+                       method.invoke(manager, null);\r
+               } catch (Exception e) {\r
+                       throw new SlcException("Cannot execute action " + action\r
+                                       + " for manager " + manager, e);\r
+               }\r
+       }\r
+       \r
+       public void setAction(String action) {\r
+               this.action = action;\r
+       }\r
+\r
+       public void setManager(DeployedSystemManager<DeployedSystem> manager) {\r
+               this.manager = manager;\r
+       }\r
+\r
+       public String getUuid() {\r
+               return uuid;\r
+       }\r
+\r
+       public void setUuid(String uuid) {\r
+               this.uuid = uuid;\r
+       }\r
+\r
+       public String getSlcExecutionUuid() {\r
+               return slcExecutionUuid;\r
+       }\r
+\r
+       public void setSlcExecutionUuid(String slcExecutionUuid) {\r
+               this.slcExecutionUuid = slcExecutionUuid;\r
+       }\r
+\r
+       public String getSlcExecutionStepUuid() {\r
+               return slcExecutionStepUuid;\r
+       }\r
+\r
+       public void setSlcExecutionStepUuid(String slcExecutionStepUuid) {\r
+               this.slcExecutionStepUuid = slcExecutionStepUuid;\r
+       }\r
+       \r
+       public void notifySlcExecution(SlcExecution slcExecution) {\r
+               if (slcExecution != null) {\r
+                       slcExecutionUuid = slcExecution.getUuid();\r
+                       SlcExecutionStep step = slcExecution.currentStep();\r
+                       if (step != null) {\r
+                               slcExecutionStepUuid = step.getUuid();\r
+                       }\r
+               }\r
+       }\r
+}\r