Introduce SLC Deploy
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 11 Nov 2007 17:59:11 +0000 (17:59 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 11 Nov 2007 17:59:11 +0000 (17:59 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@700 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc/.classpath
org.argeo.slc/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/ant/deploy/SlcDeployTask.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/ant/taskdefs.properties
org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/Deployment.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/DeploymentData.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/ExecutableDeployment.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/TargetData.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/deploy/WritableDeployment.java [new file with mode: 0644]
org.argeo.slc/src/main/java/org/argeo/slc/core/test/WritableTestRun.java

index a5410a071cdc96b822853ef1c2d13df056d0a8b6..be17a5ece7cfc8fb05d19fbbcbf4a9584c555c15 100644 (file)
@@ -2,7 +2,6 @@
 <classpath>\r
        <classpathentry kind="src" path="src/main/java"/>\r
        <classpathentry kind="src" path="src/test/java"/>\r
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
        <classpathentry kind="lib" path="lib/ant.jar" sourcepath="lib-src/ant-1.7.0-src.zip"/>\r
        <classpathentry kind="lib" path="lib/ant-launcher.jar" sourcepath="lib-src/ant-1.7.0-src.zip"/>\r
        <classpathentry kind="lib" path="lib/spring-2.0.6.jar" sourcepath="lib-src/spring-2.0.6-src.zip"/>\r
@@ -22,5 +21,6 @@
        <classpathentry kind="lib" path="lib/jta.jar"/>\r
        <classpathentry kind="lib" path="lib/dbunit-2.2.jar" sourcepath="lib-src/dbunit-2.2-sources.jar"/>\r
        <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>\r
        <classpathentry kind="output" path="target/classes"/>\r
 </classpath>\r
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 (file)
index 0000000..e1ac4b3
--- /dev/null
@@ -0,0 +1,12 @@
+#Sun Nov 11 11:22:17 CET 2007\r
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\r
+org.eclipse.jdt.core.compiler.compliance=1.5\r
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate\r
+org.eclipse.jdt.core.compiler.debug.localVariable=generate\r
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate\r
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
+org.eclipse.jdt.core.compiler.source=1.5\r
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 (file)
index 0000000..9dba5dc
--- /dev/null
@@ -0,0 +1,74 @@
+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.SlcAntConfig;\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
+       public DeploymentDataArg createDeploymentData() {\r
+               deploymentDataArg = new DeploymentDataArg();\r
+               return deploymentDataArg;\r
+       }\r
+\r
+       public TargetDataArg createTargetData() {\r
+               targetDataArg = new TargetDataArg();\r
+               return targetDataArg;\r
+       }\r
+}\r
+\r
+class DeploymentDataArg extends AbstractSpringArg {\r
+       public DeploymentData getDeploymentData() {\r
+               return (DeploymentData) getBeanInstance();\r
+       }\r
+\r
+}\r
+\r
+class TargetDataArg extends AbstractSpringArg {\r
+       public TargetData getTargetData() {\r
+               return (TargetData) getBeanInstance();\r
+       }\r
+\r
+}\r
index b0d1550edfe825ba57e09dec8eadd2c1ab0f6c06..4944b63a4fa2650f6905cb0ecebe5c0f0c63040b 100644 (file)
@@ -1,2 +1,3 @@
 slc.test=org.argeo.slc.ant.test.SlcTestTask\r
+slc.deploy=org.argeo.slc.ant.deploy.SlcDeployTask\r
 slc.closeResult=org.argeo.slc.ant.test.SlcCloseTestResultTask\r
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 (file)
index 0000000..4a74030
--- /dev/null
@@ -0,0 +1,9 @@
+package org.argeo.slc.core.deploy;\r
+\r
+public interface Deployment {\r
+       public DeployedSystem getDeployedSystem();\r
+\r
+       public TargetData getTargetData();\r
+\r
+       public DeploymentData getDeploymentData();\r
+}\r
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 (file)
index 0000000..0148ea5
--- /dev/null
@@ -0,0 +1,5 @@
+package org.argeo.slc.core.deploy;\r
+\r
+public interface DeploymentData {\r
+\r
+}\r
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 (file)
index 0000000..284e6c5
--- /dev/null
@@ -0,0 +1,5 @@
+package org.argeo.slc.core.deploy;\r
+\r
+public interface ExecutableDeployment extends Deployment {\r
+       public void execute();\r
+}\r
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 (file)
index 0000000..2fe155d
--- /dev/null
@@ -0,0 +1,5 @@
+package org.argeo.slc.core.deploy;\r
+\r
+public interface TargetData {\r
+\r
+}\r
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 (file)
index 0000000..f67531c
--- /dev/null
@@ -0,0 +1,9 @@
+package org.argeo.slc.core.deploy;\r
+\r
+public interface WritableDeployment extends ExecutableDeployment{\r
+       public void setDeployedSystem(DeployedSystem deployedSystem);\r
+\r
+       public void setTargetData(TargetData targetData);\r
+\r
+       public void setDeploymentData(DeploymentData deploymentData);\r
+}\r
index 5b141676786d5a3379bbe8e83a62bacd22fecc24..8cfe2b72c6f26435268b8c47017d444dbd5b6934 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.slc.core.test;
 import org.argeo.slc.core.deploy.DeployedSystem;\r
 \r
 /** Test run whose various components can be externally set. */\r
-public interface WritableTestRun extends TestRun {\r
+public interface WritableTestRun extends ExecutableTestRun {\r
        public void setDeployedSystem(DeployedSystem deployedSystem);\r
 \r
        public void setTestData(TestData testData);\r