X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.hibernate%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fant%2Fdeploy%2FSlcDeployTask.java;fp=org.argeo.slc.hibernate%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fant%2Fdeploy%2FSlcDeployTask.java;h=36c22547bd73d1aee2428562f5de51e3eb85987c;hb=12b475b97f9d3897ecb685f6ead364c8fda0cb6d;hp=0000000000000000000000000000000000000000;hpb=a32208c9fd354f253afbb8fd5cd48a455a335d6a;p=gpl%2Fargeo-slc.git 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 index 000000000..36c22547b --- /dev/null +++ b/org.argeo.slc.hibernate/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java @@ -0,0 +1,75 @@ +package org.argeo.slc.ant.deploy; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.tools.ant.BuildException; + +import org.argeo.slc.ant.spring.AbstractSpringArg; +import org.argeo.slc.ant.structure.SAwareTask; +import org.argeo.slc.core.deploy.DeploymentData; +import org.argeo.slc.core.deploy.TargetData; +import org.argeo.slc.core.deploy.WritableDeployment; + +/** Ant task wrapping a deployment. */ +public class SlcDeployTask extends SAwareTask { + private Log log = LogFactory.getLog(SlcDeployTask.class); + + private String deploymentBean = null; + + private DeploymentDataArg deploymentDataArg; + private TargetDataArg targetDataArg; + + @Override + public void executeActions(String mode) throws BuildException { + WritableDeployment deployment = (WritableDeployment) getContext() + .getBean(deploymentBean); + + // set overridden references + if (deploymentDataArg != null) { + deployment.setDeploymentData(deploymentDataArg.getDeploymentData()); + log.trace("Overrides deployment data"); + } + + if (targetDataArg != null) { + deployment.setTargetData(targetDataArg.getTargetData()); + log.trace("Overrides target data"); + } + + deployment.execute(); + } + + /** + * The bean name of the test run to use. If not set the default is used. + * + * @see SlcAntConfig + */ + public void setDeployment(String deploymentBean) { + this.deploymentBean = deploymentBean; + } + + /** Creates deployment data sub tag. */ + public DeploymentDataArg createDeploymentData() { + deploymentDataArg = new DeploymentDataArg(); + return deploymentDataArg; + } + + /** Creates target data sub tag. */ + public TargetDataArg createTargetData() { + targetDataArg = new TargetDataArg(); + return targetDataArg; + } +} + +class DeploymentDataArg extends AbstractSpringArg { + DeploymentData getDeploymentData() { + return (DeploymentData) getBeanInstance(); + } + +} + +class TargetDataArg extends AbstractSpringArg { + TargetData getTargetData() { + return (TargetData) getBeanInstance(); + } + +}