From 687856f8aaaa793979cbb10ddbbd107d8275fc41 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 11 Nov 2007 17:59:11 +0000 Subject: [PATCH] Introduce SLC Deploy git-svn-id: https://svn.argeo.org/slc/trunk@700 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- org.argeo.slc/.classpath | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 12 +++ .../argeo/slc/ant/deploy/SlcDeployTask.java | 74 +++++++++++++++++++ .../org/argeo/slc/ant/taskdefs.properties | 1 + .../org/argeo/slc/core/deploy/Deployment.java | 9 +++ .../argeo/slc/core/deploy/DeploymentData.java | 5 ++ .../slc/core/deploy/ExecutableDeployment.java | 5 ++ .../org/argeo/slc/core/deploy/TargetData.java | 5 ++ .../slc/core/deploy/WritableDeployment.java | 9 +++ .../argeo/slc/core/test/WritableTestRun.java | 2 +- 10 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 org.argeo.slc/.settings/org.eclipse.jdt.core.prefs create mode 100644 org.argeo.slc/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java create mode 100644 org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/Deployment.java create mode 100644 org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeploymentData.java create mode 100644 org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/ExecutableDeployment.java create mode 100644 org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/TargetData.java create mode 100644 org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/WritableDeployment.java diff --git a/org.argeo.slc/.classpath b/org.argeo.slc/.classpath index a5410a071..be17a5ece 100644 --- a/org.argeo.slc/.classpath +++ b/org.argeo.slc/.classpath @@ -2,7 +2,6 @@ - @@ -22,5 +21,6 @@ + diff --git a/org.argeo.slc/.settings/org.eclipse.jdt.core.prefs b/org.argeo.slc/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e1ac4b347 --- /dev/null +++ b/org.argeo.slc/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Sun Nov 11 11:22:17 CET 2007 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java b/org.argeo.slc/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java new file mode 100644 index 000000000..9dba5dcf6 --- /dev/null +++ b/org.argeo.slc/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java @@ -0,0 +1,74 @@ +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.SlcAntConfig; +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; + } + + public DeploymentDataArg createDeploymentData() { + deploymentDataArg = new DeploymentDataArg(); + return deploymentDataArg; + } + + public TargetDataArg createTargetData() { + targetDataArg = new TargetDataArg(); + return targetDataArg; + } +} + +class DeploymentDataArg extends AbstractSpringArg { + public DeploymentData getDeploymentData() { + return (DeploymentData) getBeanInstance(); + } + +} + +class TargetDataArg extends AbstractSpringArg { + public TargetData getTargetData() { + return (TargetData) getBeanInstance(); + } + +} diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/ant/taskdefs.properties b/org.argeo.slc/src/main/java/org/argeo/slc/ant/taskdefs.properties index b0d1550ed..4944b63a4 100644 --- a/org.argeo.slc/src/main/java/org/argeo/slc/ant/taskdefs.properties +++ b/org.argeo.slc/src/main/java/org/argeo/slc/ant/taskdefs.properties @@ -1,2 +1,3 @@ slc.test=org.argeo.slc.ant.test.SlcTestTask +slc.deploy=org.argeo.slc.ant.deploy.SlcDeployTask slc.closeResult=org.argeo.slc.ant.test.SlcCloseTestResultTask diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/Deployment.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/Deployment.java new file mode 100644 index 000000000..4a7403071 --- /dev/null +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/Deployment.java @@ -0,0 +1,9 @@ +package org.argeo.slc.core.deploy; + +public interface Deployment { + public DeployedSystem getDeployedSystem(); + + public TargetData getTargetData(); + + public DeploymentData getDeploymentData(); +} diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeploymentData.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeploymentData.java new file mode 100644 index 000000000..0148ea529 --- /dev/null +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeploymentData.java @@ -0,0 +1,5 @@ +package org.argeo.slc.core.deploy; + +public interface DeploymentData { + +} diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/ExecutableDeployment.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/ExecutableDeployment.java new file mode 100644 index 000000000..284e6c511 --- /dev/null +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/ExecutableDeployment.java @@ -0,0 +1,5 @@ +package org.argeo.slc.core.deploy; + +public interface ExecutableDeployment extends Deployment { + public void execute(); +} diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/TargetData.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/TargetData.java new file mode 100644 index 000000000..2fe155d31 --- /dev/null +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/TargetData.java @@ -0,0 +1,5 @@ +package org.argeo.slc.core.deploy; + +public interface TargetData { + +} diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/WritableDeployment.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/WritableDeployment.java new file mode 100644 index 000000000..f67531cca --- /dev/null +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/WritableDeployment.java @@ -0,0 +1,9 @@ +package org.argeo.slc.core.deploy; + +public interface WritableDeployment extends ExecutableDeployment{ + public void setDeployedSystem(DeployedSystem deployedSystem); + + public void setTargetData(TargetData targetData); + + public void setDeploymentData(DeploymentData deploymentData); +} diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/test/WritableTestRun.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/WritableTestRun.java index 5b1416767..8cfe2b72c 100644 --- a/org.argeo.slc/src/main/java/org/argeo/slc/core/test/WritableTestRun.java +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/WritableTestRun.java @@ -3,7 +3,7 @@ package org.argeo.slc.core.test; import org.argeo.slc.core.deploy.DeployedSystem; /** Test run whose various components can be externally set. */ -public interface WritableTestRun extends TestRun { +public interface WritableTestRun extends ExecutableTestRun { public void setDeployedSystem(DeployedSystem deployedSystem); public void setTestData(TestData testData); -- 2.39.2