Restructure deployment
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 4 Jun 2008 14:56:37 +0000 (14:56 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 4 Jun 2008 14:56:37 +0000 (14:56 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1186 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/deploy/SlcManagerTask.java [new file with mode: 0644]
org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java
org.argeo.slc.agent/src/main/resources/org/argeo/slc/ant/taskdefs.properties

diff --git a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/deploy/SlcManagerTask.java b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/deploy/SlcManagerTask.java
new file mode 100644 (file)
index 0000000..1056d4e
--- /dev/null
@@ -0,0 +1,35 @@
+package org.argeo.slc.ant.deploy;
+
+import java.lang.reflect.Method;
+
+import org.argeo.slc.ant.structure.SAwareTask;
+import org.argeo.slc.core.SlcException;
+import org.argeo.slc.core.deploy.DeployedSystem;
+import org.argeo.slc.core.deploy.DeployedSystemManager;
+
+public class SlcManagerTask extends SAwareTask {
+       private String action;
+       private String manager;
+
+       @Override
+       protected void executeActions(String mode) {
+               DeployedSystemManager<DeployedSystem> systemManager = getBean(manager);
+
+               try {
+                       Method method = systemManager.getClass().getMethod(action, null);
+                       method.invoke(systemManager, null);
+               } catch (Exception e) {
+                       throw new SlcException("Cannot execute action " + action
+                                       + " for manager " + manager);
+               }
+       }
+
+       public void setAction(String action) {
+               this.action = action;
+       }
+
+       public void setManager(String manager) {
+               this.manager = manager;
+       }
+
+}
index 84a199b757d7569ba258179f867274380523efaf..9c4dd89a355ec382cc53e3d1f8a3788ff46be033 100644 (file)
@@ -110,6 +110,11 @@ public abstract class SAwareTask extends AbstractSpringTask {
        /** Actions to be executed by the implementor. */\r
        protected abstract void executeActions(String mode);\r
 \r
+       \r
+       public <T> T getBean(String beanName){\r
+               return (T)getContext().getBean(beanName);\r
+       }\r
+       \r
        /** Create a reference to an external structure element. */\r
        public StructureElementArg createStructureElement() {\r
                if (structureElementArg != null)\r
index 85e0743c82abb04a29558e83c42a0c5aceb4bb7c..f532c6d169ff9693d9c6eb051541aca5742ac60e 100644 (file)
@@ -1,5 +1,6 @@
 # Tasks\r
 slc.test=org.argeo.slc.ant.test.SlcTestTask\r
 slc.deploy=org.argeo.slc.ant.deploy.SlcDeployTask\r
+slc.manager=org.argeo.slc.ant.deploy.SlcManagerTask\r
 slc.closeResult=org.argeo.slc.ant.test.SlcCloseTestResultTask\r
 slc.report=org.argeo.slc.ant.test.SlcReportTask\r