--- /dev/null
+package org.argeo.slc.core.deploy;
+
+public interface InstalledExecutables extends DeployedSystem {
+ public String getExecutablePath(String key);
+}
--- /dev/null
+package org.argeo.slc.core.deploy;
+
+import java.io.File;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.slc.core.SlcException;
+import org.argeo.slc.core.build.Distribution;
+
+public class SimpleExecutables implements InstalledExecutables {
+ private final static Log log = LogFactory.getLog(SimpleExecutables.class);
+
+ private String baseDir;
+ private Map<String, String> paths;
+
+ private Distribution distribution;
+
+ @Override
+ public String getExecutablePath(String key) {
+ String path = paths.get(key);
+ if (path == null) {
+ if (log.isDebugEnabled())
+ log.debug("No executable path found for key " + key
+ + ", using the key as executable name.");
+ path = key;
+ }
+
+ if (baseDir != null)
+ path = baseDir + File.separator + path;
+ return path;
+ }
+
+ @Override
+ public String getDeployedSystemId() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public DeploymentData getDeploymentData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Distribution getDistribution() {
+ return distribution;
+ }
+
+ @Override
+ public TargetData getTargetData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getBaseDir() {
+ return baseDir;
+ }
+
+ public void setBaseDir(String baseDir) {
+ this.baseDir = baseDir;
+ }
+
+ public Map<String, String> getPaths() {
+ return paths;
+ }
+
+ public void setPaths(Map<String, String> paths) {
+ this.paths = paths;
+ }
+
+ public void setDistribution(Distribution distribution) {
+ this.distribution = distribution;
+ }
+
+}
+++ /dev/null
-package org.argeo.slc.support.deploy;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.net.URL;\r
-\r
-import org.argeo.slc.core.SlcException;\r
-import org.argeo.slc.core.build.Distribution;\r
-import org.argeo.slc.core.deploy.DeploymentData;\r
-import org.argeo.slc.core.deploy.TargetData;\r
-import org.springframework.core.io.Resource;\r
-\r
-public class ApacheHttpdServer implements WebServer {\r
- private Resource baseUrlRes;\r
- private File baseLocation;\r
-\r
- public URL getBaseUrl() {\r
- try {\r
- return baseUrlRes.getURL();\r
- } catch (IOException e) {\r
- throw new SlcException("Cannot get url from " + baseUrlRes, e);\r
- }\r
- }\r
-\r
- public void setBaseUrlRes(Resource baseUrlRes) {\r
- this.baseUrlRes = baseUrlRes;\r
- }\r
-\r
- public File getBaseLocation() {\r
- return baseLocation;\r
- }\r
-\r
- public void setBaseLocation(File baseLocation) {\r
- this.baseLocation = baseLocation;\r
- }\r
-\r
- public String getDeployedSystemId() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public Distribution getDistribution() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public DeploymentData getDeploymentData() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public TargetData getTargetData() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
-}\r
import org.argeo.slc.core.deploy.TargetData;\r
\r
public class HttpdApplicationTargetData implements TargetData {\r
- private ApacheHttpdServer webServer;\r
+ private HttpdServer webServer;\r
private String relativePath;\r
\r
- public ApacheHttpdServer getWebServer() {\r
+ public HttpdServer getWebServer() {\r
return webServer;\r
}\r
\r
- public void setWebServer(ApacheHttpdServer webServer) {\r
+ public void setWebServer(HttpdServer webServer) {\r
this.webServer = webServer;\r
}\r
\r
public URL getTargetBaseUrl() {\r
try {\r
URL wsUrl = getWebServer().getBaseUrl();\r
+ // TODO: use URI\r
return new URL(wsUrl, wsUrl.getFile() + '/' + relativePath);\r
} catch (MalformedURLException e) {\r
throw new SlcException("Cannot get base url for " + relativePath, e);\r
}\r
\r
public File getTargetRootLocation() {\r
- return new File(getWebServer().getBaseLocation().getPath()\r
- + File.separator + getRelativePath());\r
+ HttpdServerTargetData targetData = (HttpdServerTargetData) getWebServer()\r
+ .getTargetData();\r
+ String path = targetData.getServerRoot() + File.separator\r
+ + getRelativePath();\r
+ return new File(path);\r
}\r
\r
}\r
--- /dev/null
+package org.argeo.slc.support.deploy;\r
+\r
+import java.io.File;\r
+import java.io.IOException;\r
+import java.net.URL;\r
+\r
+import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.core.build.Distribution;\r
+import org.argeo.slc.core.deploy.DeploymentData;\r
+import org.argeo.slc.core.deploy.TargetData;\r
+import org.springframework.core.io.Resource;\r
+\r
+public class HttpdServer implements WebServer {\r
+ private HttpdServerTargetData targetData;\r
+\r
+ public URL getBaseUrl() {\r
+ try {\r
+ return new URL("http://localhost:" + targetData.getPort());\r
+ } catch (IOException e) {\r
+ throw new SlcException("Cannot get url for Httpd server "\r
+ + getDeployedSystemId(), e);\r
+ }\r
+ }\r
+\r
+ public String getDeployedSystemId() {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+ public Distribution getDistribution() {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+ public DeploymentData getDeploymentData() {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+ public HttpdServerTargetData getTargetData() {\r
+ return targetData;\r
+ }\r
+\r
+ public void setTargetData(HttpdServerTargetData targetData) {\r
+ this.targetData = targetData;\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.argeo.slc.support.deploy;
+
+import org.argeo.slc.core.deploy.InstalledExecutables;
+import org.argeo.slc.core.deploy.TargetData;
+
+public class HttpdServerTargetData implements TargetData {
+ private String serverRoot;
+ private Integer port;
+ private InstalledExecutables executables;
+
+ public String getServerRoot() {
+ return serverRoot;
+ }
+
+ public void setServerRoot(String serverRoot) {
+ this.serverRoot = serverRoot;
+ }
+
+ public Integer getPort() {
+ return port;
+ }
+
+ public void setPort(Integer port) {
+ this.port = port;
+ }
+
+ public InstalledExecutables getExecutables() {
+ return executables;
+ }
+
+ public void setExecutables(InstalledExecutables executables) {
+ this.executables = executables;
+ }
+
+}