From 4d3d6b2504673128263eadcec82c8fd64f71e4c5 Mon Sep 17 00:00:00 2001 From: Sébastien Lesaint Date: Tue, 8 Mar 2016 18:45:24 +0100 Subject: SONAR-7435 add CE process, never stops but does nothing yet --- sonar-application/assembly.xml | 10 ++++ sonar-application/pom.xml | 10 +++- .../src/main/java/org/sonar/application/App.java | 67 +++++++++++++++------- .../test/java/org/sonar/application/AppTest.java | 2 +- 4 files changed, 65 insertions(+), 24 deletions(-) (limited to 'sonar-application') diff --git a/sonar-application/assembly.xml b/sonar-application/assembly.xml index 2300b6dd140..069bd23add4 100644 --- a/sonar-application/assembly.xml +++ b/sonar-application/assembly.xml @@ -68,6 +68,16 @@ provided + + lib/ce + false + false + false + + org.sonarsource.sonarqube:sonar-ce + + provided + lib/batch diff --git a/sonar-application/pom.xml b/sonar-application/pom.xml index b2126dc6da3..6fa92bcabb7 100644 --- a/sonar-application/pom.xml +++ b/sonar-application/pom.xml @@ -54,6 +54,12 @@ ${project.version} provided + + ${project.groupId} + sonar-ce + ${project.version} + provided + ${project.groupId} sonar-scanner-engine-shaded @@ -232,8 +238,8 @@ - 105000000 - 125000000 + 110000000 + 120000000 ${project.build.directory}/sonarqube-${project.version}.zip diff --git a/sonar-application/src/main/java/org/sonar/application/App.java b/sonar-application/src/main/java/org/sonar/application/App.java index ca2f98d62b8..1537405fa04 100644 --- a/sonar-application/src/main/java/org/sonar/application/App.java +++ b/sonar-application/src/main/java/org/sonar/application/App.java @@ -53,8 +53,20 @@ public class App implements Stoppable { } private static List createCommands(Props props) { - List commands = new ArrayList<>(); File homeDir = props.nonNullValueAsFile(ProcessProperties.PATH_HOME); + List commands = new ArrayList<>(3); + commands.add(createESCommand(props, homeDir)); + + // do not yet start WebServer nor CE on elasticsearch slaves + if (StringUtils.isBlank(props.value(ProcessProperties.CLUSTER_MASTER_HOST))) { + commands.add(createWebServerCommand(props, homeDir)); + commands.add(createCeServerCommand(props, homeDir)); + } + + return commands; + } + + private static JavaCommand createESCommand(Props props, File homeDir) { JavaCommand elasticsearch = new JavaCommand("search"); elasticsearch .setWorkDir(homeDir) @@ -65,28 +77,41 @@ public class App implements Stoppable { .setArguments(props.rawProperties()) .addClasspath("./lib/common/*") .addClasspath("./lib/search/*"); - commands.add(elasticsearch); + return elasticsearch; + } - // do not yet start SQ on elasticsearch slaves - if (StringUtils.isBlank(props.value(ProcessProperties.CLUSTER_MASTER_HOST))) { - JavaCommand webServer = new JavaCommand("web") - .setWorkDir(homeDir) - .addJavaOptions(ProcessProperties.WEB_ENFORCED_JVM_ARGS) - .addJavaOptions(props.nonNullValue(ProcessProperties.WEB_JAVA_OPTS)) - .addJavaOptions(props.nonNullValue(ProcessProperties.WEB_JAVA_ADDITIONAL_OPTS)) - // required for logback tomcat valve - .setEnvVariable(ProcessProperties.PATH_LOGS, props.nonNullValue(ProcessProperties.PATH_LOGS)) - .setClassName("org.sonar.server.app.WebServer") - .setArguments(props.rawProperties()) - .addClasspath("./lib/common/*") - .addClasspath("./lib/server/*"); - String driverPath = props.value(ProcessProperties.JDBC_DRIVER_PATH); - if (driverPath != null) { - webServer.addClasspath(driverPath); - } - commands.add(webServer); + private static JavaCommand createWebServerCommand(Props props, File homeDir) { + JavaCommand webServer = new JavaCommand("web") + .setWorkDir(homeDir) + .addJavaOptions(ProcessProperties.WEB_ENFORCED_JVM_ARGS) + .addJavaOptions(props.nonNullValue(ProcessProperties.WEB_JAVA_OPTS)) + .addJavaOptions(props.nonNullValue(ProcessProperties.WEB_JAVA_ADDITIONAL_OPTS)) + // required for logback tomcat valve + .setEnvVariable(ProcessProperties.PATH_LOGS, props.nonNullValue(ProcessProperties.PATH_LOGS)) + .setClassName("org.sonar.server.app.WebServer") + .setArguments(props.rawProperties()) + .addClasspath("./lib/common/*") + .addClasspath("./lib/server/*"); + String driverPath = props.value(ProcessProperties.JDBC_DRIVER_PATH); + if (driverPath != null) { + webServer.addClasspath(driverPath); } - return commands; + return webServer; + } + + private static JavaCommand createCeServerCommand(Props props, File homeDir) { + JavaCommand webServer = new JavaCommand("ce") + .setWorkDir(homeDir) + .setClassName("org.sonar.ce.app.CeServer") + .setArguments(props.rawProperties()) + .addClasspath("./lib/common/*") + .addClasspath("./lib/server/*") + .addClasspath("./lib/ce/*"); + String driverPath = props.value(ProcessProperties.JDBC_DRIVER_PATH); + if (driverPath != null) { + webServer.addClasspath(driverPath); + } + return webServer; } static String starPath(File homeDir, String relativePath) { diff --git a/sonar-application/src/test/java/org/sonar/application/AppTest.java b/sonar-application/src/test/java/org/sonar/application/AppTest.java index 120dd2382d7..04f0da47559 100644 --- a/sonar-application/src/test/java/org/sonar/application/AppTest.java +++ b/sonar-application/src/test/java/org/sonar/application/AppTest.java @@ -63,7 +63,7 @@ public class AppTest { ArgumentCaptor> argument = ArgumentCaptor.forClass(listClass); verify(monitor).start(argument.capture()); - assertThat(argument.getValue()).extracting("key").containsExactly("search", "web"); + assertThat(argument.getValue()).extracting("key").containsExactly("search", "web", "ce"); } @Test -- cgit v1.2.3