From f60bbf3b11548977f5bdcc8a11b61f2103682053 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Tue, 4 Oct 2022 17:17:33 +1100 Subject: [PATCH 1/2] expand jetty properties when generating dry-run command line Signed-off-by: Lachlan Roberts --- .../src/main/java/org/eclipse/jetty/start/StartArgs.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java index ca98f7f67d3f..df6c8bc29217 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java @@ -817,7 +817,7 @@ public CommandLineBuilder getMainArgs(Set parts) throws IOException { for (Prop p : properties) { - cmd.addRawArg(CommandLineBuilder.quote(p.key) + "=" + CommandLineBuilder.quote(p.value)); + cmd.addRawArg(CommandLineBuilder.quote(p.key) + "=" + CommandLineBuilder.quote(properties.expand(p.value))); } } else if (properties.size() > 0) From 7e85c2a54c87b5555732202f1f9389623c5b64e1 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Tue, 4 Oct 2022 17:43:02 +1100 Subject: [PATCH 2/2] add distribution test to reproduce issue with dry-run Signed-off-by: Lachlan Roberts --- .../tests/distribution/DistributionTests.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java index 92be92551988..470685a74398 100644 --- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java +++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java @@ -25,6 +25,7 @@ import java.nio.file.StandardOpenOption; import java.util.Arrays; import java.util.List; +import java.util.Queue; import java.util.UUID; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -64,6 +65,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; @@ -1229,4 +1231,32 @@ public void testOpenID() throws Exception openIdProvider.stop(); } } + + @Test + public void testDryRunProperties() throws Exception + { + Path jettyBase = newTestJettyBaseDirectory(); + String jettyVersion = System.getProperty("jettyVersion"); + JettyHomeTester distribution = JettyHomeTester.Builder.newInstance() + .jettyVersion(jettyVersion) + .jettyBase(jettyBase) + .mavenLocalRepository(System.getProperty("mavenRepoPath")) + .build(); + + String[] args1 = {"--add-to-start=server,logging-jetty"}; + try (JettyHomeTester.Run run1 = distribution.start(args1)) + { + assertTrue(run1.awaitFor(10, TimeUnit.SECONDS)); + assertEquals(0, run1.getExitValue()); + + String[] args2 = {"--dry-run"}; + try (JettyHomeTester.Run run2 = distribution.start(args2)) + { + run2.awaitFor(5, TimeUnit.SECONDS); + Queue logs = run2.getLogs(); + assertThat(logs.size(), equalTo(1)); + assertThat(logs.poll(), not(containsString("${jetty.home.uri}"))); + } + } + } }