]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/support/deploy/HttpdApplicationDeployment.java
Introduce org.argeo.slc.support.simple
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.simple / src / main / java / org / argeo / slc / support / deploy / HttpdApplicationDeployment.java
diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/support/deploy/HttpdApplicationDeployment.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/support/deploy/HttpdApplicationDeployment.java
new file mode 100644 (file)
index 0000000..6c6cffd
--- /dev/null
@@ -0,0 +1,68 @@
+package org.argeo.slc.support.deploy;\r
+\r
+import java.io.File;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.core.build.Distribution;\r
+import org.argeo.slc.core.deploy.DeployEnvironment;\r
+import org.argeo.slc.core.deploy.DeployedSystem;\r
+import org.argeo.slc.core.deploy.Deployment;\r
+import org.argeo.slc.core.deploy.DeploymentData;\r
+import org.argeo.slc.core.deploy.TargetData;\r
+\r
+public class HttpdApplicationDeployment implements Deployment {\r
+       private static final Log log = LogFactory\r
+                       .getLog(HttpdApplicationDeployment.class);\r
+\r
+       private HttpdApplicationTargetData targetData;\r
+       private DeploymentData deploymentData;\r
+       private SimpleHttpdApplication deployedSystem;\r
+       private Distribution distribution;\r
+\r
+       private DeployEnvironment deployEnvironment;\r
+\r
+       public void execute() {\r
+               try {\r
+                       deployEnvironment.unpackTo(distribution, targetData\r
+                                       .getTargetRootLocation(), null);\r
+\r
+                       // FIXME: make it generic\r
+                       String deployDataPath = targetData.getTargetRootLocation()\r
+                                       .getCanonicalPath();\r
+\r
+                       deployEnvironment.unpackTo(deploymentData,\r
+                                       new File(deployDataPath), null);\r
+                       deployedSystem = new SimpleHttpdApplication();\r
+                       deployedSystem.setTargetData(targetData);\r
+\r
+                       log.info("Deployed " + distribution + " to " + targetData);\r
+               } catch (Exception e) {\r
+                       throw new SlcException("Cannot deploy " + distribution + " to "\r
+                                       + targetData, e);\r
+               }\r
+\r
+       }\r
+\r
+       public void setTargetData(TargetData targetData) {\r
+               this.targetData = (HttpdApplicationTargetData) targetData;\r
+       }\r
+\r
+       public void setDeploymentData(DeploymentData deploymentData) {\r
+               this.deploymentData = deploymentData;\r
+       }\r
+\r
+       public DeployedSystem getDeployedSystem() {\r
+               return deployedSystem;\r
+       }\r
+\r
+       public void setDistribution(Distribution distribution) {\r
+               this.distribution = distribution;\r
+       }\r
+\r
+       public void setDeployEnvironment(DeployEnvironment deployEnvironment) {\r
+               this.deployEnvironment = deployEnvironment;\r
+       }\r
+\r
+}\r