From 156ab7e3232aece8d21a42d564e30a4bc5eec5ff Mon Sep 17 00:00:00 2001 From: Peter Palaga Date: Wed, 12 Aug 2020 11:47:38 +0200 Subject: [PATCH] Fix #53 Using MAVEN_HOME may clash with other tools --- .../fuse/mvnd/client/DaemonConnector.java | 2 +- .../jboss/fuse/mvnd/client/DefaultClient.java | 2 +- .../jboss/fuse/mvnd/client/Environment.java | 4 ++-- .../jboss/fuse/mvnd/client/ServerMain.java | 2 +- .../fuse/mvnd/client/mvnd.properties.template | 2 +- .../fuse/mvnd/client/EnvironmentTest.java | 22 +++++++++---------- daemon/src/main/distro/bin/mvnd | 2 +- .../src/main/distro/conf/logging/logback.xml | 2 +- .../org/apache/maven/cli/DaemonMavenCli.java | 3 ++- .../fuse/mvnd/it/InstallDaemonNativeIT.java | 2 +- .../fuse/mvnd/junit/NativeTestClient.java | 4 ++-- 11 files changed, 24 insertions(+), 23 deletions(-) diff --git a/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonConnector.java b/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonConnector.java index dea3514f..e0b03c74 100644 --- a/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonConnector.java +++ b/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonConnector.java @@ -247,7 +247,7 @@ public class DaemonConnector { if (Environment.DAEMON_DEBUG.systemProperty().orDefault(() -> "false").asBoolean()) { args.add("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"); } - args.add("-Dmaven.home=\"" + mavenHome + "\""); + args.add("-Dmvnd.home=\"" + mavenHome + "\""); args.add("-Dlogback.configurationFile=\"" + layout.getLogbackConfigurationPath() + "\""); args.add("-Ddaemon.uid=" + uid); args.add("-Xmx4g"); diff --git a/client/src/main/java/org/jboss/fuse/mvnd/client/DefaultClient.java b/client/src/main/java/org/jboss/fuse/mvnd/client/DefaultClient.java index 9df1aa89..3ea184ed 100644 --- a/client/src/main/java/org/jboss/fuse/mvnd/client/DefaultClient.java +++ b/client/src/main/java/org/jboss/fuse/mvnd/client/DefaultClient.java @@ -77,7 +77,7 @@ public class DefaultClient implements Client { .orDefault(() -> "https://github.com/mvndaemon/mvnd/releases/download/" + version + "/mvnd-dist.zip") .asString(); final URI zipUri = URI.create(rawZipUri); - final Path mvndHome = Environment.MAVEN_HOME + final Path mvndHome = Environment.MVND_HOME .commandLineProperty(() -> commandLineProperties) .orEnvironmentVariable() .orSystemProperty() diff --git a/client/src/main/java/org/jboss/fuse/mvnd/client/Environment.java b/client/src/main/java/org/jboss/fuse/mvnd/client/Environment.java index bcdf3664..33a4217e 100644 --- a/client/src/main/java/org/jboss/fuse/mvnd/client/Environment.java +++ b/client/src/main/java/org/jboss/fuse/mvnd/client/Environment.java @@ -32,7 +32,7 @@ import java.util.function.Supplier; public enum Environment { LOGBACK_CONFIGURATION_FILE("logback.configurationFile", null), JAVA_HOME("java.home", "JAVA_HOME"), - MAVEN_HOME("maven.home", "MAVEN_HOME"), + MVND_HOME("mvnd.home", "MVND_HOME"), MAVEN_REPO_LOCAL("maven.repo.local", null), MAVEN_MULTIMODULE_PROJECT_DIRECTORY("maven.multiModuleProjectDirectory", null), MVND_PROPERTIES_PATH("mvnd.properties.path", "MVND_PROPERTIES_PATH"), @@ -108,7 +108,7 @@ public enum Environment { } public static EnvValue findBasicMavenHome() { - return MAVEN_HOME + return MVND_HOME .environmentVariable() .orSystemProperty(); } diff --git a/client/src/main/java/org/jboss/fuse/mvnd/client/ServerMain.java b/client/src/main/java/org/jboss/fuse/mvnd/client/ServerMain.java index d28eb06e..f5866a7c 100644 --- a/client/src/main/java/org/jboss/fuse/mvnd/client/ServerMain.java +++ b/client/src/main/java/org/jboss/fuse/mvnd/client/ServerMain.java @@ -26,7 +26,7 @@ public class ServerMain { public static void main(String[] args) throws Exception { final String uidStr = Environment.DAEMON_UID.systemProperty().orFail().asString(); - final Path mavenHome = Environment.MAVEN_HOME.systemProperty().orFail().asPath(); + final Path mavenHome = Environment.MVND_HOME.systemProperty().orFail().asPath(); URL[] classpath = Stream.concat( Stream.concat(Files.list(mavenHome.resolve("lib/ext")), Files.list(mavenHome.resolve("lib"))) diff --git a/client/src/main/resources/org/jboss/fuse/mvnd/client/mvnd.properties.template b/client/src/main/resources/org/jboss/fuse/mvnd/client/mvnd.properties.template index 7005cc40..cb9f56d1 100644 --- a/client/src/main/resources/org/jboss/fuse/mvnd/client/mvnd.properties.template +++ b/client/src/main/resources/org/jboss/fuse/mvnd/client/mvnd.properties.template @@ -1,5 +1,5 @@ # An absolute path to your Maven Daemon installation -maven.home = %s +mvnd.home = %s # java.home is optional if you have JAVA_HOME environment variable set %s diff --git a/client/src/test/java/org/jboss/fuse/mvnd/client/EnvironmentTest.java b/client/src/test/java/org/jboss/fuse/mvnd/client/EnvironmentTest.java index b6cd7704..625fa1b7 100644 --- a/client/src/test/java/org/jboss/fuse/mvnd/client/EnvironmentTest.java +++ b/client/src/test/java/org/jboss/fuse/mvnd/client/EnvironmentTest.java @@ -27,16 +27,16 @@ public class EnvironmentTest { @Test void prop() { try (EnvironmentResource env = new EnvironmentResource()) { - env.props("maven.home", "/maven/home/prop"); - Assertions.assertEquals("/maven/home/prop", Environment.MAVEN_HOME.systemProperty().asString()); + env.props("mvnd.home", "/maven/home/prop"); + Assertions.assertEquals("/maven/home/prop", Environment.MVND_HOME.systemProperty().asString()); } } @Test void env() { try (EnvironmentResource env = new EnvironmentResource()) { - env.env("MAVEN_HOME", "/maven/home/env"); - Assertions.assertEquals("/maven/home/env", Environment.MAVEN_HOME.environmentVariable().asString()); + env.env("MVND_HOME", "/maven/home/env"); + Assertions.assertEquals("/maven/home/env", Environment.MVND_HOME.environmentVariable().asString()); } } @@ -44,9 +44,9 @@ public class EnvironmentTest { void localProps() { try (EnvironmentResource env = new EnvironmentResource()) { final Properties localProps = new Properties(); - localProps.put("maven.home", "/maven/home/local"); + localProps.put("mvnd.home", "/maven/home/local"); Assertions.assertEquals(Paths.get("/maven/home/local"), - Environment.MAVEN_HOME + Environment.MVND_HOME .environmentVariable() .orSystemProperty() .orLocalProperty(() -> localProps, Paths.get("/local/properties")) @@ -58,10 +58,10 @@ public class EnvironmentTest { @Test void envBeforeProp() { try (EnvironmentResource env = new EnvironmentResource()) { - env.props("maven.home", "/maven/home/prop"); - env.env("MAVEN_HOME", "/maven/home/env"); + env.props("mvnd.home", "/maven/home/prop"); + env.env("MVND_HOME", "/maven/home/env"); Assertions.assertEquals("/maven/home/env", - Environment.MAVEN_HOME + Environment.MVND_HOME .environmentVariable() .orSystemProperty() .asString()); @@ -73,7 +73,7 @@ public class EnvironmentTest { try (EnvironmentResource env = new EnvironmentResource()) { try { Assertions.assertEquals("/maven/home/env", - Environment.MAVEN_HOME + Environment.MVND_HOME .environmentVariable() .orSystemProperty() .orFail() @@ -81,7 +81,7 @@ public class EnvironmentTest { Assertions.fail("IllegalStateException expected"); } catch (IllegalStateException e) { Assertions.assertEquals( - "Could not get value for Environment.MAVEN_HOME from any of the following sources: environment variable MAVEN_HOME, system property maven.home", + "Could not get value for Environment.MVND_HOME from any of the following sources: environment variable MVND_HOME, system property mvnd.home", e.getMessage()); } } diff --git a/daemon/src/main/distro/bin/mvnd b/daemon/src/main/distro/bin/mvnd index 96338895..98dcbfa8 100755 --- a/daemon/src/main/distro/bin/mvnd +++ b/daemon/src/main/distro/bin/mvnd @@ -194,7 +194,7 @@ exec "$JAVACMD" \ $MAVEN_DEBUG_OPTS \ -classpath "${DAEMON_JAR}" \ "-Dlogback.configurationFile=${MVND_HOME}/conf/logging/logback.xml" \ - "-Dmaven.home=${MVND_HOME}" \ + "-Dmvnd.home=${MVND_HOME}" \ "-Dlibrary.jansi.path=${MVND_HOME}/lib/jansi-native" \ "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${DAEMON_LAUNCHER} "$@" diff --git a/daemon/src/main/distro/conf/logging/logback.xml b/daemon/src/main/distro/conf/logging/logback.xml index 890b2769..dbb573eb 100644 --- a/daemon/src/main/distro/conf/logging/logback.xml +++ b/daemon/src/main/distro/conf/logging/logback.xml @@ -33,7 +33,7 @@ - ${maven.home}/daemon/daemon-${daemon.uid}.log + ${mvnd.home}/daemon/daemon-${daemon.uid}.log %d{HH:mm:ss.SSS} %.-1level %msg%n diff --git a/daemon/src/main/java/org/apache/maven/cli/DaemonMavenCli.java b/daemon/src/main/java/org/apache/maven/cli/DaemonMavenCli.java index 74a5f0f2..cdaf09c9 100644 --- a/daemon/src/main/java/org/apache/maven/cli/DaemonMavenCli.java +++ b/daemon/src/main/java/org/apache/maven/cli/DaemonMavenCli.java @@ -200,9 +200,10 @@ public class DaemonMavenCli { // Make sure the Maven home directory is an absolute path to save us from confusion with say drive-relative // Windows paths. // - String mavenHome = System.getProperty("maven.home"); + String mavenHome = System.getProperty("mvnd.home"); if (mavenHome != null) { + System.setProperty("mvnd.home", new File(mavenHome).getAbsolutePath()); System.setProperty("maven.home", new File(mavenHome).getAbsolutePath()); } } diff --git a/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/InstallDaemonNativeIT.java b/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/InstallDaemonNativeIT.java index a3c1266d..26ad3016 100644 --- a/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/InstallDaemonNativeIT.java +++ b/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/InstallDaemonNativeIT.java @@ -66,7 +66,7 @@ public class InstallDaemonNativeIT { Environment.MVND_DIST_URI.asCommandLineProperty(mvndDistUri), Environment.MVND_PROPERTIES_PATH.asCommandLineProperty(mvndPropertiesPath.toString()), Environment.JAVA_HOME.asCommandLineProperty(layout.javaHome().toString()), - Environment.MAVEN_HOME.asCommandLineProperty(mavenHome.toString())) + Environment.MVND_HOME.asCommandLineProperty(mavenHome.toString())) .assertSuccess(); Assertions.assertThat(mvndPropertiesPath).exists(); diff --git a/integration-tests/src/test/java/org/jboss/fuse/mvnd/junit/NativeTestClient.java b/integration-tests/src/test/java/org/jboss/fuse/mvnd/junit/NativeTestClient.java index 096ed705..268cbcf3 100644 --- a/integration-tests/src/test/java/org/jboss/fuse/mvnd/junit/NativeTestClient.java +++ b/integration-tests/src/test/java/org/jboss/fuse/mvnd/junit/NativeTestClient.java @@ -69,8 +69,8 @@ public class NativeTestClient implements Client { .redirectErrorStream(true); final Map env = builder.environment(); - if (!Environment.MAVEN_HOME.hasCommandLineProperty(args)) { - env.put("MAVEN_HOME", System.getProperty("mvnd.home")); + if (!Environment.MVND_HOME.hasCommandLineProperty(args)) { + env.put("MVND_HOME", System.getProperty("mvnd.home")); } if (!Environment.JAVA_HOME.hasCommandLineProperty(args)) { env.put("JAVA_HOME", System.getProperty("java.home"));