Skip to content

Commit

Permalink
Merge branch 'master' into MNG-7586-resolver-192
Browse files Browse the repository at this point in the history
  • Loading branch information
gnodet committed Dec 9, 2022
2 parents dc4b5c7 + bc021d0 commit 738df34
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 15 deletions.
27 changes: 17 additions & 10 deletions client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
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;
Expand Down Expand Up @@ -378,33 +379,39 @@ private Process startDaemonProcess(String daemonId) {
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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ Stream<EnvValue> discriminatingValues() {
.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() {
Expand Down
15 changes: 13 additions & 2 deletions common/src/main/java/org/mvndaemon/mvnd/common/Environment.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,16 @@ public enum Environment {
// Maven properties
//
/** The path to the Maven local repository */
MAVEN_REPO_LOCAL("maven.repo.local", null, null, OptionType.PATH, Flags.NONE),
MAVEN_REPO_LOCAL("maven.repo.local", null, null, OptionType.PATH, Flags.DISCRIMINATING | Flags.OPTIONAL),
/** The location of the maven settings file */
MAVEN_SETTINGS("maven.settings", null, null, OptionType.PATH, Flags.NONE, "mvn:-s", "mvn:--settings"),
MAVEN_SETTINGS(
"maven.settings",
null,
null,
OptionType.PATH,
Flags.DISCRIMINATING | Flags.OPTIONAL,
"mvn:-s",
"mvn:--settings"),
/** The pom or directory to build */
MAVEN_FILE(null, null, null, OptionType.PATH, Flags.NONE, "mvn:-f", "mvn:--file"),
/** The root directory of the current multi module Maven project */
Expand Down Expand Up @@ -413,6 +420,10 @@ public String asDaemonOpt(String value) {
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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ public int doMain(CliRequest cliRequest, Map<String, String> clientEnv) throws E
} catch (ExitException e) {
return e.exitCode;
} finally {
System.setProperties(props);
eventSpyDispatcher.close();
System.setProperties(props);
Thread.currentThread().setContextClassLoader(tccl);
}
}
Expand Down

0 comments on commit 738df34

Please sign in to comment.