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.SpringArg; import org.argeo.slc.ant.structure.SAwareTask; import org.argeo.slc.core.build.Distribution; import org.argeo.slc.core.deploy.Deployment; import org.argeo.slc.core.deploy.DeploymentData; import org.argeo.slc.core.deploy.TargetData; /** Ant task wrapping a deployment. */ public class SlcDeployTask extends SAwareTask { private Log log = LogFactory.getLog(SlcDeployTask.class); private String deploymentBean = null; private SpringArg deploymentDataArg; private SpringArg targetDataArg; private SpringArg distributionArg; @Override public void executeActions(String mode) throws BuildException { Deployment deployment = (Deployment) getContext().getBean( deploymentBean); // set overridden references if (distributionArg != null) { deployment.setDistribution(distributionArg.getInstance()); log.trace("Overrides distribution"); } if (deploymentDataArg != null) { deployment.setDeploymentData(deploymentDataArg.getInstance()); log.trace("Overrides deployment data"); } if (targetDataArg != null) { deployment.setTargetData(targetDataArg.getInstance()); 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 SpringArg createDeploymentData() { deploymentDataArg = new SpringArg(); return deploymentDataArg; } /** Creates target data sub tag. */ public SpringArg createTargetData() { targetDataArg = new SpringArg(); return targetDataArg; } public SpringArg createDistribution() { distributionArg = new SpringArg(); return distributionArg; } }