--- /dev/null
+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