]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - cms/org.argeo.slc.support/src/org/argeo/slc/support/deploy/HttpdApplicationTargetData.java
Clarify SLC project structure.
[gpl/argeo-slc.git] / cms / org.argeo.slc.support / src / org / argeo / slc / support / deploy / HttpdApplicationTargetData.java
diff --git a/cms/org.argeo.slc.support/src/org/argeo/slc/support/deploy/HttpdApplicationTargetData.java b/cms/org.argeo.slc.support/src/org/argeo/slc/support/deploy/HttpdApplicationTargetData.java
new file mode 100644 (file)
index 0000000..7b052ec
--- /dev/null
@@ -0,0 +1,65 @@
+package org.argeo.slc.support.deploy;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.argeo.slc.SlcException;
+import org.argeo.slc.deploy.TargetData;
+
+public class HttpdApplicationTargetData implements TargetData {
+       private HttpdServer webServer;
+       private String relativePath;
+       private String targetRootPath;
+
+       public HttpdServer getWebServer() {
+               return webServer;
+       }
+
+       public void setWebServer(HttpdServer webServer) {
+               this.webServer = webServer;
+       }
+
+       public String getRelativePath() {
+               return relativePath;
+       }
+
+       /**
+        * If targetRootLocation not set, used to build the targetRootLocation,
+        * relative to the webserver base.
+        */
+       public void setRelativePath(String relativePath) {
+               this.relativePath = relativePath;
+       }
+
+       public String getTargetRootPath() {
+               return targetRootPath;
+       }
+
+       public void setTargetRootPath(String targetRootPath) {
+               this.targetRootPath = targetRootPath;
+       }
+
+       public URL getTargetBaseUrl() {
+               try {
+                       URL wsUrl = getWebServer().getBaseUrl();
+                       // TODO: use URI
+                       return new URL(wsUrl, wsUrl.getFile() + '/' + relativePath);
+               } catch (MalformedURLException e) {
+                       throw new SlcException("Cannot get base url for " + relativePath, e);
+               }
+       }
+
+       public File getTargetRootLocation() {
+               if (targetRootPath != null && !targetRootPath.equals("")) {
+                       return new File(targetRootPath);
+               } else {
+                       HttpdServerTargetData targetData = (HttpdServerTargetData) getWebServer()
+                                       .getTargetData();
+                       String path = targetData.getServerRoot() + File.separator
+                                       + getRelativePath();
+                       return new File(path);
+               }
+       }
+
+}