You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2023/01/06 13:42:10 UTC
[maven-mvnd] 13/28: Fix daemon JVM start options (follow-up to #749) (#751)
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 <gn...@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());