This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch mvnd-0.9.x in repository https://gitbox.apache.org/repos/asf/maven-mvnd.git
commit f2117ccfffac53141f80bca40c839e6a6e3b9bcc Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Fri Dec 9 23:58:13 2022 +0100 Fix daemon JVM start options (follow-up to #749) (#751) --- .../org/mvndaemon/mvnd/client/DaemonConnector.java | 27 ++++++++++++++-------- .../mvndaemon/mvnd/client/DaemonParameters.java | 4 ++-- .../org/mvndaemon/mvnd/common/Environment.java | 4 ++++ 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java index 70d3d933..05558d13 100644 --- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java +++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java @@ -29,6 +29,7 @@ import java.nio.channels.SocketChannel; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.StandardOpenOption; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -378,33 +379,39 @@ public class DaemonConnector { args.add("-Xss" + threadStackSize); } - Environment.MVND_HOME.addCommandLineOption(args, mvndHome.toString()); + Environment.MVND_HOME.addSystemProperty(args, mvndHome.toString()); args.add("-Dmaven.home=" + mvndHome.resolve("mvn")); args.add("-Dmaven.conf=" + mvndHome.resolve("mvn/conf")); - Environment.MVND_JAVA_HOME.addCommandLineOption( + Environment.MVND_JAVA_HOME.addSystemProperty( args, parameters.javaHome().toString()); - Environment.LOGBACK_CONFIGURATION_FILE.addCommandLineOption( + Environment.LOGBACK_CONFIGURATION_FILE.addSystemProperty( args, parameters.logbackConfigurationPath().toString()); - Environment.MVND_ID.addCommandLineOption(args, daemonId); - Environment.MVND_DAEMON_STORAGE.addCommandLineOption( + Environment.MVND_ID.addSystemProperty(args, daemonId); + Environment.MVND_DAEMON_STORAGE.addSystemProperty( args, parameters.daemonStorage().toString()); - Environment.MVND_REGISTRY.addCommandLineOption( + Environment.MVND_REGISTRY.addSystemProperty( args, parameters.registry().toString()); - Environment.MVND_SOCKET_FAMILY.addCommandLineOption( + Environment.MVND_SOCKET_FAMILY.addSystemProperty( args, parameters .socketFamily() .orElseGet(() -> getJavaVersion() >= 16.0f ? SocketFamily.unix : SocketFamily.inet) .toString()); - parameters.discriminatingCommandLineOptions(args); + parameters.discriminatingSystemProperties(args); args.add(MavenDaemon.class.getName()); command = String.join(" ", args); LOGGER.debug( "Starting daemon process: id = {}, workingDir = {}, daemonArgs: {}", daemonId, workingDir, command); - ProcessBuilder.Redirect redirect = ProcessBuilder.Redirect.appendTo( - parameters.daemonOutLog(daemonId).toFile()); + Path daemonOutLog = parameters.daemonOutLog(daemonId); + Files.writeString( + daemonOutLog, + "Starting daemon process: id = " + daemonId + ", workingDir = " + workingDir + ", daemonArgs: " + + command, + StandardOpenOption.CREATE, + StandardOpenOption.APPEND); + ProcessBuilder.Redirect redirect = ProcessBuilder.Redirect.appendTo(daemonOutLog.toFile()); ProcessBuilder processBuilder = new ProcessBuilder(); processBuilder .environment() diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java index e0fc8b98..858975e5 100644 --- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java +++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java @@ -96,8 +96,8 @@ public class DaemonParameters { .filter(EnvValue::isSet); } - public void discriminatingCommandLineOptions(List<String> args) { - discriminatingValues().forEach(envValue -> envValue.envKey.addCommandLineOption(args, envValue.asString())); + public void discriminatingSystemProperties(List<String> args) { + discriminatingValues().forEach(envValue -> envValue.envKey.addSystemProperty(args, envValue.asString())); } public Path mvndHome() { diff --git a/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java b/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java index 9149eb8f..95cd046e 100644 --- a/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java +++ b/common/src/main/java/org/mvndaemon/mvnd/common/Environment.java @@ -420,6 +420,10 @@ public enum Environment { return property + "=" + type.normalize(value); } + public void addSystemProperty(Collection<String> args, String value) { + args.add("-D" + property + "=" + type.normalize(value)); + } + public void addCommandLineOption(Collection<String> args, String value) { if (!options.isEmpty()) { args.add(options.keySet().iterator().next());