+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