From 6a5f7d47f8d5443cd394eca2b10db8bbe4887a75 Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Fri, 18 Jul 2014 16:08:20 +0200 Subject: SONAR-5408 - reading properties from sonar.properties for child processes --- .../java/org/sonar/process/ProcessWrapper.java | 27 ++++++++-------------- 1 file changed, 9 insertions(+), 18 deletions(-) (limited to 'server') diff --git a/server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java b/server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java index 428d85d42fb..ea9b86a6621 100644 --- a/server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java +++ b/server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java @@ -53,6 +53,7 @@ public class ProcessWrapper extends Thread { final int port; final String workDir; + final String javaOpts; final String className; final String[] classPath; final Map properties; @@ -66,10 +67,16 @@ public class ProcessWrapper extends Thread { final ProcessMXBean processMXBean; public ProcessWrapper(String workDir, String className, Map properties, final String name, String... classPath) { + this(workDir, null, className, properties, name, className); + LOGGER.warn("Creating process '{}' with no JAVA_OPTS", name); + } + + public ProcessWrapper(String workDir, String javaOpts, String className, Map properties, final String name, String... classPath) { super(name); this.port = NetworkUtils.freePort(); LOGGER.info("Creating Process for '{}' with workDir: '{}' and monitoring port: {}", name, workDir, port); this.workDir = workDir; + this.javaOpts = javaOpts; this.className = className; this.classPath = classPath; this.properties = properties; @@ -139,14 +146,6 @@ public class ProcessWrapper extends Thread { + separator + "bin" + separator + "java"; } - private String getJavaOptions() { - if (properties.containsKey(Process.JAVA_OPS)) { - return properties.get(Process.JAVA_OPS); - } else { - return null; - } - } - private List getJMXOptions() { return ImmutableList.of( "-Dcom.sun.management.jmxremote", @@ -192,22 +191,14 @@ public class ProcessWrapper extends Thread { ProcessBuilder processBuilder = new ProcessBuilder(); processBuilder.command().add(getJavaCommand()); - String javaOptions = getJavaOptions(); - if (!StringUtils.isEmpty(javaOptions)) { - processBuilder.command().add(getJavaOptions()); + if (!StringUtils.isEmpty(javaOpts)) { + processBuilder.command().add(javaOpts); } processBuilder.command().addAll(getJMXOptions()); processBuilder.command().addAll(getClassPath()); processBuilder.command().add(className); processBuilder.command().add(getPropertyFile()); - //TODO remove once Process uses the temp file generated by getPropertyFile(); - processBuilder.environment().putAll(properties); - - processBuilder.environment().put(Process.SONAR_HOME, workDir); - processBuilder.environment().put(Process.NAME_PROPERTY, this.getName()); - processBuilder.environment().put(Process.PORT_PROPERTY, Integer.toString(port)); - //check that working directory exists. File workDirectory = new File(workDir); if (!workDirectory.exists()) { -- cgit v1.2.3