aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-main/src/main/java
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2019-05-20 16:39:42 +0200
committerSonarTech <sonartech@sonarsource.com>2019-05-23 20:21:09 +0200
commit1f3ee626c1faa8f32aa15ce8dcc0ed333e6e57aa (patch)
tree7f8832a9e91b4be6d726fb5bbfc5df6f491a1abb /server/sonar-main/src/main/java
parent49451f5a6eb77a234072584192eaa576c78e3390 (diff)
downloadsonarqube-1f3ee626c1faa8f32aa15ce8dcc0ed333e6e57aa.tar.gz
sonarqube-1f3ee626c1faa8f32aa15ce8dcc0ed333e6e57aa.zip
SONAR-11264 enforce ES boostrap checks on all editions
Diffstat (limited to 'server/sonar-main/src/main/java')
-rw-r--r--server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java6
-rw-r--r--server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java15
2 files changed, 12 insertions, 9 deletions
diff --git a/server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java b/server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java
index 738cabf841d..7a17300a1ed 100644
--- a/server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java
+++ b/server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java
@@ -114,9 +114,7 @@ public class CommandFactoryImpl implements CommandFactory {
return new JavaCommand<EsJvmOptions>(ProcessId.ELASTICSEARCH, esInstallation.getHomeDirectory())
.setEsInstallation(esInstallation)
.setReadsArgumentsFromFile(false)
- .setJvmOptions(new EsJvmOptions(tempDir)
- .addFromMandatoryProperty(props, SEARCH_JAVA_OPTS.getKey())
- .addFromMandatoryProperty(props, SEARCH_JAVA_ADDITIONAL_OPTS.getKey())
+ .setJvmOptions(esInstallation.getEsJvmOptions()
.add("-Delasticsearch")
.add("-Des.path.home=" + esInstallation.getHomeDirectory().getAbsolutePath())
.add("-Des.path.conf=" + esInstallation.getConfDirectory().getAbsolutePath()))
@@ -137,7 +135,7 @@ public class CommandFactoryImpl implements CommandFactory {
esInstallation
.setLog4j2Properties(new EsLogging().createProperties(props, esInstallation.getLogDirectory()))
- .setEsJvmOptions(new EsJvmOptions(tempDir)
+ .setEsJvmOptions(new EsJvmOptions(props, tempDir)
.addFromMandatoryProperty(props, SEARCH_JAVA_OPTS.getKey())
.addFromMandatoryProperty(props, SEARCH_JAVA_ADDITIONAL_OPTS.getKey()))
.setEsYmlSettings(new EsYmlSettings(settingsMap))
diff --git a/server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java b/server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java
index 0b24606e27a..75dc84ef5b3 100644
--- a/server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java
+++ b/server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java
@@ -26,6 +26,7 @@ import java.nio.file.Files;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;
+import org.sonar.process.Props;
import org.sonar.process.System2;
public class EsJvmOptions extends JvmOptions<EsJvmOptions> {
@@ -35,17 +36,17 @@ public class EsJvmOptions extends JvmOptions<EsJvmOptions> {
"# DO NOT EDIT THIS FILE\n" +
"\n";
- public EsJvmOptions(File tmpDir) {
- this(System2.INSTANCE, tmpDir);
+ public EsJvmOptions(Props props, File tmpDir) {
+ this(System2.INSTANCE, props, tmpDir);
}
- EsJvmOptions(System2 system2, File tmpDir) {
- super(mandatoryOptions(system2, tmpDir));
+ EsJvmOptions(System2 system2, Props props, File tmpDir) {
+ super(mandatoryOptions(system2, props, tmpDir));
}
// this basically writes down the content of jvm.options file distributed in vanilla Elasticsearch package
// with some changes to fit running bundled in SQ
- private static Map<String, String> mandatoryOptions(System2 system2, File tmpDir) {
+ private static Map<String, String> mandatoryOptions(System2 system2, Props props, File tmpDir) {
Map<String, String> res = new LinkedHashMap<>(16);
// GC configuration
res.put("-XX:+UseConcMarkSweepGC", "");
@@ -125,6 +126,10 @@ public class EsJvmOptions extends JvmOptions<EsJvmOptions> {
res.put("-XX:UseAVX=", "2");
}
+ if (!props.valueAsBoolean("sonar.es.bootstrap.checks.disable")) {
+ res.put("-Des.enforce.bootstrap.checks=", "true");
+ }
+
return res;
}