Browse Source

SONAR-5709 Add properties sonar.search.javaAdditionalOpts and sonar.web.javaAdditionalOpts

tags/4.5.1-RC1
Simon Brandhof 9 years ago
parent
commit
4de2100bd3

+ 1
- 1
debug-server.sh View File

fi fi


cd sonarqube-* cd sonarqube-*
java -jar ./lib/sonar-application*.jar -Dsonar.web.javaOpts=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
java -jar ./lib/sonar-application*.jar -Dsonar.web.javaAdditionalOpts=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

+ 8
- 2
server/sonar-process-monitor/src/main/java/org/sonar/process/monitor/JavaCommand.java View File

*/ */
package org.sonar.process.monitor; package org.sonar.process.monitor;


import org.apache.commons.lang.StringUtils;

import javax.annotation.Nullable; import javax.annotation.Nullable;


import java.io.File; import java.io.File;
} }


public JavaCommand addJavaOption(String s) { public JavaCommand addJavaOption(String s) {
javaOptions.add(s);
if (StringUtils.isNotBlank(s)) {
javaOptions.add(s);
}
return this; return this;
} }


public JavaCommand addJavaOptions(String s) { public JavaCommand addJavaOptions(String s) {
Collections.addAll(javaOptions, s.split(" "));
for (String opt : s.split(" ")) {
addJavaOption(opt);
}
return this; return this;
} }



+ 6
- 1
server/sonar-process-monitor/src/test/java/org/sonar/process/monitor/JavaCommandTest.java View File

} }


@Test @Test
public void split_java_options() throws Exception {
public void add_java_options() throws Exception {
JavaCommand command = new JavaCommand("foo"); JavaCommand command = new JavaCommand("foo");
assertThat(command.getJavaOptions()).isEmpty();

command.addJavaOptions("");
assertThat(command.getJavaOptions()).isEmpty();

command.addJavaOptions("-Xmx512m -Xms256m -Dfoo"); command.addJavaOptions("-Xmx512m -Xms256m -Dfoo");
assertThat(command.getJavaOptions()).containsOnly("-Xmx512m", "-Xms256m", "-Dfoo"); assertThat(command.getJavaOptions()).containsOnly("-Xmx512m", "-Xms256m", "-Dfoo");
} }

+ 6
- 0
sonar-application/src/main/assembly/conf/sonar.properties View File

#sonar.web.javaOpts=-Xmx768m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError \ #sonar.web.javaOpts=-Xmx768m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError \
# -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.management.enabled=false # -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.management.enabled=false


# Same as previous property, but allows to not repeat all settings like -Djava.awt.headless=true
#sonar.web.javaAdditionalOpts=

# Binding IP address. For servers with more than one IP address, this property specifies which # Binding IP address. For servers with more than one IP address, this property specifies which
# address will be used for listening on the specified ports. # address will be used for listening on the specified ports.
# By default, ports will be used on all IP addresses associated with the server. # By default, ports will be used on all IP addresses associated with the server.
# -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError \ # -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError \
# -Djava.awt.headless=true # -Djava.awt.headless=true


# Same as previous property, but allows to not repeat all settings like -Djava.awt.headless=true
#sonar.search.javaAdditionalOpts=

# Elasticsearch port. Default is 9001. Use 0 to get a free port. # Elasticsearch port. Default is 9001. Use 0 to get a free port.
# This port must be private and must not be exposed to the Internet. # This port must be private and must not be exposed to the Internet.
#sonar.search.port=9001 #sonar.search.port=9001

+ 3
- 1
sonar-application/src/main/java/org/sonar/application/App.java View File

JavaCommand elasticsearch = new JavaCommand("search"); JavaCommand elasticsearch = new JavaCommand("search");
elasticsearch elasticsearch
.setWorkDir(homeDir) .setWorkDir(homeDir)
.addJavaOptions(props.value(DefaultSettings.SEARCH_JAVA_OPTS))
.addJavaOptions(props.nonNullValue(DefaultSettings.SEARCH_JAVA_OPTS))
.addJavaOptions(props.nonNullValue(DefaultSettings.SEARCH_JAVA_ADDITIONAL_OPTS))
.setTempDir(tempDir.getAbsoluteFile()) .setTempDir(tempDir.getAbsoluteFile())
.setClassName("org.sonar.search.SearchServer") .setClassName("org.sonar.search.SearchServer")
.setArguments(props.rawProperties()) .setArguments(props.rawProperties())
JavaCommand webServer = new JavaCommand("web") JavaCommand webServer = new JavaCommand("web")
.setWorkDir(homeDir) .setWorkDir(homeDir)
.addJavaOptions(props.nonNullValue(DefaultSettings.WEB_JAVA_OPTS)) .addJavaOptions(props.nonNullValue(DefaultSettings.WEB_JAVA_OPTS))
.addJavaOptions(props.nonNullValue(DefaultSettings.WEB_JAVA_ADDITIONAL_OPTS))
.setTempDir(tempDir.getAbsoluteFile()) .setTempDir(tempDir.getAbsoluteFile())
// required for logback tomcat valve // required for logback tomcat valve
.setEnvVariable("sonar.path.logs", props.nonNullValue("sonar.path.logs")) .setEnvVariable("sonar.path.logs", props.nonNullValue("sonar.path.logs"))

+ 4
- 0
sonar-application/src/main/java/org/sonar/application/DefaultSettings.java View File

static final String CLUSTER_NODE_NAME = "sonar.node.name"; static final String CLUSTER_NODE_NAME = "sonar.node.name";
static final String SEARCH_PORT = "sonar.search.port"; static final String SEARCH_PORT = "sonar.search.port";
static final String SEARCH_JAVA_OPTS = "sonar.search.javaOpts"; static final String SEARCH_JAVA_OPTS = "sonar.search.javaOpts";
static final String SEARCH_JAVA_ADDITIONAL_OPTS = "sonar.search.javaAdditionalOpts";
static final String WEB_JAVA_OPTS = "sonar.web.javaOpts"; static final String WEB_JAVA_OPTS = "sonar.web.javaOpts";
static final String WEB_JAVA_ADDITIONAL_OPTS = "sonar.web.javaAdditionalOpts";
static final String JDBC_URL = "sonar.jdbc.url"; static final String JDBC_URL = "sonar.jdbc.url";
static final String JDBC_LOGIN = "sonar.jdbc.username"; static final String JDBC_LOGIN = "sonar.jdbc.username";
static final String JDBC_PASSWORD = "sonar.jdbc.password"; static final String JDBC_PASSWORD = "sonar.jdbc.password";
defaults.put(SEARCH_JAVA_OPTS, "-Xmx256m -Xms256m -Xss256k -Djava.net.preferIPv4Stack=true " + defaults.put(SEARCH_JAVA_OPTS, "-Xmx256m -Xms256m -Xss256k -Djava.net.preferIPv4Stack=true " +
"-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly " + "-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly " +
"-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true"); "-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true");
defaults.put(SEARCH_JAVA_ADDITIONAL_OPTS, "");
defaults.put(CLUSTER_NODE_NAME, "sonar-" + System.currentTimeMillis()); defaults.put(CLUSTER_NODE_NAME, "sonar-" + System.currentTimeMillis());
defaults.put(WEB_JAVA_OPTS, "-Xmx768m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true " + defaults.put(WEB_JAVA_OPTS, "-Xmx768m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true " +
"-Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.management.enabled=false"); "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.management.enabled=false");
defaults.put(WEB_JAVA_ADDITIONAL_OPTS, "");
defaults.put(JDBC_URL, "jdbc:h2:tcp://localhost:9092/sonar"); defaults.put(JDBC_URL, "jdbc:h2:tcp://localhost:9092/sonar");
defaults.put(JDBC_LOGIN, "sonar"); defaults.put(JDBC_LOGIN, "sonar");
defaults.put(JDBC_PASSWORD, "sonar"); defaults.put(JDBC_PASSWORD, "sonar");

Loading…
Cancel
Save