You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2016/01/06 20:20:21 UTC

activemq-artemis git commit: Clean up path handling in in the WebServerComponent a bit.

Repository: activemq-artemis
Updated Branches:
  refs/heads/master 3e6dcd05e -> 2e8ce9889


Clean up path handling in in the WebServerComponent a bit.

- The if the web element's path attribute is configured with an absolute path like `path="/tmp/artemis/web"` then use it as an absolute path instead of trying to make it a sub dir of artemis home.


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/2e8ce988
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/2e8ce988
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/2e8ce988

Branch: refs/heads/master
Commit: 2e8ce98891f38c62b3c2a4e8762349a50ed6bc32
Parents: 3e6dcd0
Author: Hiram Chirino <hi...@hiramchirino.com>
Authored: Wed Jan 6 14:20:14 2016 -0500
Committer: Hiram Chirino <hi...@hiramchirino.com>
Committed: Wed Jan 6 14:20:14 2016 -0500

----------------------------------------------------------------------
 .../artemis/component/WebServerComponent.java   | 22 +++++++++++++-------
 1 file changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/2e8ce988/artemis-web/src/main/java/org/apache/activemq/artemis/component/WebServerComponent.java
----------------------------------------------------------------------
diff --git a/artemis-web/src/main/java/org/apache/activemq/artemis/component/WebServerComponent.java b/artemis-web/src/main/java/org/apache/activemq/artemis/component/WebServerComponent.java
index 05bf7fd..396c2d4 100644
--- a/artemis-web/src/main/java/org/apache/activemq/artemis/component/WebServerComponent.java
+++ b/artemis-web/src/main/java/org/apache/activemq/artemis/component/WebServerComponent.java
@@ -16,8 +16,6 @@
  */
 package org.apache.activemq.artemis.component;
 
-import java.net.URI;
-
 import org.apache.activemq.artemis.ActiveMQWebLogger;
 import org.apache.activemq.artemis.components.ExternalComponent;
 import org.apache.activemq.artemis.dto.AppDTO;
@@ -31,6 +29,11 @@ import org.eclipse.jetty.server.handler.HandlerList;
 import org.eclipse.jetty.server.handler.ResourceHandler;
 import org.eclipse.jetty.webapp.WebAppContext;
 
+import java.io.IOException;
+import java.net.URI;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
 public class WebServerComponent implements ExternalComponent {
 
    private Server server;
@@ -42,7 +45,6 @@ public class WebServerComponent implements ExternalComponent {
    @Override
    public void configure(ComponentDTO config, String artemisInstance, String artemisHome) throws Exception {
       webServerConfig = (WebServerDTO) config;
-      String path = webServerConfig.path.startsWith("/") ? webServerConfig.path : "/" + webServerConfig.path;
       uri = new URI(webServerConfig.bind);
       server = new Server();
       ServerConnector connector = new ServerConnector(server);
@@ -53,9 +55,12 @@ public class WebServerComponent implements ExternalComponent {
 
       handlers = new HandlerList();
 
+      Path warDir = Paths.get(artemisHome != null ? artemisHome : ".")
+              .resolve( webServerConfig.path ).toAbsolutePath();
+
       if (webServerConfig.apps != null) {
          for (AppDTO app : webServerConfig.apps) {
-            deployWar(app.url, app.war, artemisHome, path);
+            deployWar(app.url, app.war, warDir);
             if (app.war.startsWith("jolokia")) {
                jolokiaUrl = webServerConfig.bind + "/" + app.url;
             }
@@ -64,11 +69,11 @@ public class WebServerComponent implements ExternalComponent {
 
       WebAppContext handler = new WebAppContext();
       handler.setContextPath("/");
-      handler.setResourceBase(artemisHome + path);
+      handler.setResourceBase(warDir.toString());
       handler.setLogUrlOnStart(true);
 
       ResourceHandler resourceHandler = new ResourceHandler();
-      resourceHandler.setResourceBase(artemisHome + path);
+      resourceHandler.setResourceBase(warDir.toString());
       resourceHandler.setDirectoriesListed(true);
       resourceHandler.setWelcomeFiles(new String[]{"index.html"});
 
@@ -99,7 +104,7 @@ public class WebServerComponent implements ExternalComponent {
       return server != null && server.isStarted();
    }
 
-   private void deployWar(String url, String warURL, String activeMQHome, String path) {
+   private void deployWar(String url, String warFile, Path warDirectory) throws IOException {
       WebAppContext webapp = new WebAppContext();
       if (url.startsWith("/")) {
          webapp.setContextPath(url);
@@ -107,7 +112,8 @@ public class WebServerComponent implements ExternalComponent {
       else {
          webapp.setContextPath("/" + url);
       }
-      webapp.setWar(activeMQHome + path + "/" + warURL);
+
+      webapp.setWar(warDirectory.resolve(warFile).toString());
       handlers.addHandler(webapp);
    }
 }