From: Mathieu Baudier Date: Wed, 4 Jun 2008 14:56:37 +0000 (+0000) Subject: Restructure deployment X-Git-Tag: argeo-slc-2.1.7~2855 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=0289782a40cce8b217c0358ccfd4b866f690b5c0;p=gpl%2Fargeo-slc.git Restructure deployment git-svn-id: https://svn.argeo.org/slc/trunk@1186 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- 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 index 000000000..1056d4e71 --- /dev/null +++ b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/deploy/SlcManagerTask.java @@ -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 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; + } + +} diff --git a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java index 84a199b75..9c4dd89a3 100644 --- a/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java +++ b/org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java @@ -110,6 +110,11 @@ public abstract class SAwareTask extends AbstractSpringTask { /** Actions to be executed by the implementor. */ protected abstract void executeActions(String mode); + + public T getBean(String beanName){ + return (T)getContext().getBean(beanName); + } + /** Create a reference to an external structure element. */ public StructureElementArg createStructureElement() { if (structureElementArg != null) diff --git a/org.argeo.slc.agent/src/main/resources/org/argeo/slc/ant/taskdefs.properties b/org.argeo.slc.agent/src/main/resources/org/argeo/slc/ant/taskdefs.properties index 85e0743c8..f532c6d16 100644 --- a/org.argeo.slc.agent/src/main/resources/org/argeo/slc/ant/taskdefs.properties +++ b/org.argeo.slc.agent/src/main/resources/org/argeo/slc/ant/taskdefs.properties @@ -1,5 +1,6 @@ # Tasks slc.test=org.argeo.slc.ant.test.SlcTestTask slc.deploy=org.argeo.slc.ant.deploy.SlcDeployTask +slc.manager=org.argeo.slc.ant.deploy.SlcManagerTask slc.closeResult=org.argeo.slc.ant.test.SlcCloseTestResultTask slc.report=org.argeo.slc.ant.test.SlcReportTask