You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2023/12/05 17:13:26 UTC
(activemq-artemis) branch main updated: ARTEMIS-4525 determinstic webapp directory names
This is an automated email from the ASF dual-hosted git repository.
jbertram pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new 15dd24754a ARTEMIS-4525 determinstic webapp directory names
new 6ebd611ed0 This closes #4701
15dd24754a is described below
commit 15dd24754ae8c6c2dd646fbd214f7a76b33b1197
Author: Stephen Higgs <s....@gmail.com>
AuthorDate: Mon Dec 4 11:58:13 2023 -0500
ARTEMIS-4525 determinstic webapp directory names
This commit uses the war file name as the webapp directory name instead
of the default directory name that includes random charcters.
---
.../artemis/component/WebServerComponent.java | 4 +-
.../activemq/cli/test/WebServerComponentTest.java | 49 ++++++++++++++++++----
2 files changed, 43 insertions(+), 10 deletions(-)
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 62aaff910d..45e8271957 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
@@ -379,7 +379,9 @@ public class WebServerComponent implements ExternalComponent, WebServerComponent
webapp.setWar(warDirectory.resolve(warFile).toString());
- webapp.setAttribute("org.eclipse.jetty.webapp.basetempdir", temporaryWarDir.toFile().getAbsolutePath());
+ String baseTempDir = temporaryWarDir.toFile().getAbsolutePath();
+ webapp.setAttribute("org.eclipse.jetty.webapp.basetempdir", baseTempDir);
+ webapp.setTempDirectory(new File(baseTempDir + File.separator + warFile));
// Set the default authenticator factory to avoid NPE due to the following commit:
// https://github.com/eclipse/jetty.project/commit/7e91d34177a880ecbe70009e8f200d02e3a0c5dd
diff --git a/artemis-web/src/test/java/org/apache/activemq/cli/test/WebServerComponentTest.java b/artemis-web/src/test/java/org/apache/activemq/cli/test/WebServerComponentTest.java
index 89703333d7..ccce43fee6 100644
--- a/artemis-web/src/test/java/org/apache/activemq/cli/test/WebServerComponentTest.java
+++ b/artemis-web/src/test/java/org/apache/activemq/cli/test/WebServerComponentTest.java
@@ -560,15 +560,8 @@ public class WebServerComponentTest extends Assert {
createTestWar(warName);
final String url = "simple-app/";
- AppDTO app = new AppDTO();
- app.url = url;
- app.war = warName;
- BindingDTO bindingDTO = new BindingDTO();
- bindingDTO.uri = "http://localhost:0";
- bindingDTO.apps = new ArrayList<>();
- WebServerDTO webServerDTO = new WebServerDTO();
- webServerDTO.setBindings(Collections.singletonList(bindingDTO));
- webServerDTO.path = "";
+ WebServerDTO webServerDTO = createDefaultWebServerDTO(warName, url);
+
WebServerComponent webServerComponent = new WebServerComponent();
Assert.assertFalse(webServerComponent.isStarted());
testedComponents.add(webServerComponent);
@@ -603,6 +596,30 @@ public class WebServerComponentTest extends Assert {
Assert.assertFalse(webServerComponent.isStarted());
}
+ @Test
+ public void testServerDeterministicWebappName() throws Exception {
+ final String warName = "simple-app.war";
+ createTestWar(warName);
+ final String url = "simple-app/";
+
+ WebServerDTO webServerDTO = createDefaultWebServerDTO(warName, url);
+ WebServerComponent webServerComponent = new WebServerComponent();
+ webServerComponent.configure(webServerDTO, "./target", "./target");
+ WebAppContext ctxt = WebServerComponentTestAccessor.createWebAppContext(webServerComponent, url, warName, Paths.get(".").resolve("target").toAbsolutePath(), null);
+ testedComponents.add(webServerComponent);
+
+ Assert.assertFalse(webServerComponent.isStarted());
+ webServerComponent.start();
+
+ File tmpDir = ctxt.getTempDirectory();
+ Assert.assertTrue(tmpDir.getParentFile().listFiles().length == 1);
+ Assert.assertEquals(tmpDir.getName(), warName);
+ Assert.assertTrue(webServerComponent.isStarted());
+
+ webServerComponent.stop(true);
+ Assert.assertFalse(webServerComponent.isStarted());
+ }
+
@Test
public void testDefaultRootRedirect() throws Exception {
testRootRedirect(null, 404, null);
@@ -642,6 +659,20 @@ public class WebServerComponentTest extends Assert {
}
}
+ private static WebServerDTO createDefaultWebServerDTO(String warName, String url) {
+ AppDTO app = new AppDTO();
+ app.url = url;
+ app.war = warName;
+ BindingDTO bindingDTO = new BindingDTO();
+ bindingDTO.uri = "http://localhost:0";
+ bindingDTO.apps = new ArrayList<>();
+ bindingDTO.apps.add(app);
+ WebServerDTO webServerDTO = new WebServerDTO();
+ webServerDTO.setBindings(Collections.singletonList(bindingDTO));
+ webServerDTO.path = "";
+ return webServerDTO;
+ }
+
private void createTestWar(String warName) throws Exception {
File warFile = new File("target", warName);
File srcFile = new File("src/test/webapp");