]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.hibernate/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java
Branch hibernate project from core
[gpl/argeo-slc.git] / org.argeo.slc.hibernate / src / main / java / org / argeo / slc / ant / deploy / SlcDeployTask.java
diff --git a/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java
new file mode 100644 (file)
index 0000000..36c2254
--- /dev/null
@@ -0,0 +1,75 @@
+package org.argeo.slc.ant.deploy;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.apache.tools.ant.BuildException;\r
+\r
+import org.argeo.slc.ant.spring.AbstractSpringArg;\r
+import org.argeo.slc.ant.structure.SAwareTask;\r
+import org.argeo.slc.core.deploy.DeploymentData;\r
+import org.argeo.slc.core.deploy.TargetData;\r
+import org.argeo.slc.core.deploy.WritableDeployment;\r
+\r
+/** Ant task wrapping a deployment. */\r
+public class SlcDeployTask extends SAwareTask {\r
+       private Log log = LogFactory.getLog(SlcDeployTask.class);\r
+\r
+       private String deploymentBean = null;\r
+\r
+       private DeploymentDataArg deploymentDataArg;\r
+       private TargetDataArg targetDataArg;\r
+\r
+       @Override\r
+       public void executeActions(String mode) throws BuildException {\r
+               WritableDeployment deployment = (WritableDeployment) getContext()\r
+                               .getBean(deploymentBean);\r
+\r
+               // set overridden references\r
+               if (deploymentDataArg != null) {\r
+                       deployment.setDeploymentData(deploymentDataArg.getDeploymentData());\r
+                       log.trace("Overrides deployment data");\r
+               }\r
+\r
+               if (targetDataArg != null) {\r
+                       deployment.setTargetData(targetDataArg.getTargetData());\r
+                       log.trace("Overrides target data");\r
+               }\r
+\r
+               deployment.execute();\r
+       }\r
+\r
+       /**\r
+        * The bean name of the test run to use. If not set the default is used.\r
+        * \r
+        * @see SlcAntConfig\r
+        */\r
+       public void setDeployment(String deploymentBean) {\r
+               this.deploymentBean = deploymentBean;\r
+       }\r
+\r
+       /** Creates deployment data sub tag. */\r
+       public DeploymentDataArg createDeploymentData() {\r
+               deploymentDataArg = new DeploymentDataArg();\r
+               return deploymentDataArg;\r
+       }\r
+\r
+       /** Creates target data sub tag. */\r
+       public TargetDataArg createTargetData() {\r
+               targetDataArg = new TargetDataArg();\r
+               return targetDataArg;\r
+       }\r
+}\r
+\r
+class DeploymentDataArg extends AbstractSpringArg {\r
+       DeploymentData getDeploymentData() {\r
+               return (DeploymentData) getBeanInstance();\r
+       }\r
+\r
+}\r
+\r
+class TargetDataArg extends AbstractSpringArg {\r
+       TargetData getTargetData() {\r
+               return (TargetData) getBeanInstance();\r
+       }\r
+\r
+}\r