From 8de8f95f253099a9571a57e9cc4f9dbfb8b47899 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Thu, 24 Jul 2014 16:11:05 +0200 Subject: [PATCH] SONAR-4898 rename StartServer to App --- .../java/org/sonar/process/ProcessMXBean.java | 7 +++---- .../src/test/java/ForkTest.java | 8 ++++++++ .../xoo-sample/sonar-project.properties | 5 +++++ .../xoo-sample/src/main/xoo/sample/Sample.xoo | 12 ++++++++++++ .../src/main/xoo/sample/Sample.xoo.measures | 13 +++++++++++++ sonar-application/pom.xml | 2 +- .../src/main/assembly/lib/jsw/wrapper.conf | 2 +- .../application/{StartServer.java => App.java} | 18 ++++++------------ .../org/sonar/application/Installation.java | 2 +- .../org/sonar/application/logback.xml | 5 ----- .../{StartServerTest.java => AppTest.java} | 6 +++--- 11 files changed, 53 insertions(+), 27 deletions(-) create mode 100644 sonar-application-test/src/test/projects/xoo-sample/sonar-project.properties create mode 100644 sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo create mode 100644 sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo.measures rename sonar-application/src/main/java/org/sonar/application/{StartServer.java => App.java} (91%) rename sonar-application/src/test/java/org/sonar/application/{StartServerTest.java => AppTest.java} (95%) diff --git a/server/sonar-process/src/main/java/org/sonar/process/ProcessMXBean.java b/server/sonar-process/src/main/java/org/sonar/process/ProcessMXBean.java index 08c3b8cd88c..85ff3400ffd 100644 --- a/server/sonar-process/src/main/java/org/sonar/process/ProcessMXBean.java +++ b/server/sonar-process/src/main/java/org/sonar/process/ProcessMXBean.java @@ -21,10 +21,9 @@ package org.sonar.process; public interface ProcessMXBean { - public static final String IS_READY = "isReady"; - public static final String PING = "ping"; - public static final String TERMINATE = "terminate"; - + String IS_READY = "isReady"; + String PING = "ping"; + String TERMINATE = "terminate"; boolean isReady(); diff --git a/sonar-application-test/src/test/java/ForkTest.java b/sonar-application-test/src/test/java/ForkTest.java index f24872af494..caa97d3e53d 100644 --- a/sonar-application-test/src/test/java/ForkTest.java +++ b/sonar-application-test/src/test/java/ForkTest.java @@ -19,11 +19,14 @@ */ import com.sonar.orchestrator.Orchestrator; import com.sonar.orchestrator.OrchestratorBuilder; +import com.sonar.orchestrator.build.SonarRunner; +import com.sonar.orchestrator.locator.MavenLocation; import org.junit.After; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.TemporaryFolder; +import java.io.File; import java.util.Collections; import static org.fest.assertions.Assertions.assertThat; @@ -46,12 +49,17 @@ public class ForkTest { @Test public void start_and_stop() { OrchestratorBuilder builder = Orchestrator.builderEnv(); + builder.addPlugin(MavenLocation.create("com.sonarsource.xoo", "sonar-xoo-plugin", "1.0-SNAPSHOT")); orchestrator = builder.build(); orchestrator.start(); + // verify web service that requests elasticsearch String json = orchestrator.getServer().wsClient().get("/api/rules/search", Collections.emptyMap()); assertThat(json).startsWith("{").endsWith("}"); + // project analysis + orchestrator.executeBuild(SonarRunner.create(new File("src/test/projects/xoo-sample"))); + orchestrator.stop(); try { orchestrator.getServer().wsClient().get("/api/rules/search", Collections.emptyMap()); diff --git a/sonar-application-test/src/test/projects/xoo-sample/sonar-project.properties b/sonar-application-test/src/test/projects/xoo-sample/sonar-project.properties new file mode 100644 index 00000000000..e01f062e51b --- /dev/null +++ b/sonar-application-test/src/test/projects/xoo-sample/sonar-project.properties @@ -0,0 +1,5 @@ +sonar.projectKey=sample +sonar.projectName=Sample +sonar.projectVersion=1.0-SNAPSHOT +sonar.sources=src/main/xoo +sonar.language=xoo \ No newline at end of file diff --git a/sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo b/sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo new file mode 100644 index 00000000000..b1210973dd9 --- /dev/null +++ b/sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo @@ -0,0 +1,12 @@ +package sample; + +public class Sample { + + public Sample(int i) { + int j = i++; + } + + private String myMethod() { + return "hello"; + } +} diff --git a/sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo.measures b/sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo.measures new file mode 100644 index 00000000000..a687109155a --- /dev/null +++ b/sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo.measures @@ -0,0 +1,13 @@ +lines:13 +ncloc:13 +#Used by dashboard/widgets tests +lcom4:2 +complexity:3 +complexity_in_classes:3 +classes:1 +comment_lines:3 +public_api:5 +public_undocumented_api:2 +duplicated_files:1 +duplicated_blocks:2 +duplicated_lines:3 diff --git a/sonar-application/pom.xml b/sonar-application/pom.xml index df8af3bda9d..52ec763c1e4 100644 --- a/sonar-application/pom.xml +++ b/sonar-application/pom.xml @@ -201,7 +201,7 @@ true false - org.sonar.application.StartServer + org.sonar.application.App distribution diff --git a/sonar-application/src/main/assembly/lib/jsw/wrapper.conf b/sonar-application/src/main/assembly/lib/jsw/wrapper.conf index c4bb513a8a3..4ade5ff2937 100644 --- a/sonar-application/src/main/assembly/lib/jsw/wrapper.conf +++ b/sonar-application/src/main/assembly/lib/jsw/wrapper.conf @@ -27,7 +27,7 @@ wrapper.java.classpath.2=../../lib/*.jar wrapper.java.library.path.1=./lib # Application parameters. Add parameters as needed starting from 1 -wrapper.app.parameter.1=org.sonar.application.StartServer +wrapper.app.parameter.1=org.sonar.application.App # Do not touch the following property. Max memory is set with -Xmx (see above). # See https://jira.codehaus.org/browse/SONAR-5204 diff --git a/sonar-application/src/main/java/org/sonar/application/StartServer.java b/sonar-application/src/main/java/org/sonar/application/App.java similarity index 91% rename from sonar-application/src/main/java/org/sonar/application/StartServer.java rename to sonar-application/src/main/java/org/sonar/application/App.java index 80076761497..afd335a06d3 100644 --- a/sonar-application/src/main/java/org/sonar/application/StartServer.java +++ b/sonar-application/src/main/java/org/sonar/application/App.java @@ -34,7 +34,7 @@ import javax.management.NotCompliantMBeanException; import java.lang.management.ManagementFactory; -public class StartServer implements ProcessMXBean { +public class App implements ProcessMXBean { static final String PROCESS_NAME = "SonarQube"; @@ -43,9 +43,9 @@ public class StartServer implements ProcessMXBean { private ProcessWrapper elasticsearch; private ProcessWrapper server; - private static Logger LOGGER = LoggerFactory.getLogger(StartServer.class); + private static Logger LOGGER = LoggerFactory.getLogger(App.class); - StartServer(Installation installation) throws Exception { + public App(Installation installation) throws Exception { this.installation = installation; Thread shutdownHook = new Thread(new Runnable() { @@ -72,7 +72,7 @@ public class StartServer implements ProcessMXBean { monitor = new Monitor(); } - private void start() { + public void start() { elasticsearch = new ProcessWrapper("ES") .setWorkDir(installation.homeDir()) .setJmxPort(Integer.parseInt(installation.prop(DefaultSettings.ES_JMX_PORT_KEY))) @@ -117,20 +117,14 @@ public class StartServer implements ProcessMXBean { } } + @Override public void terminate() { - LOGGER.debug("StartServer::stop() START"); if (monitor != null) { - LOGGER.trace("StartServer::stop() STOP MONITOR"); monitor.interrupt(); monitor = null; - - LOGGER.trace("StartServer::stop() STOP ES"); terminateAndWait(elasticsearch); - - LOGGER.trace("StartServer::stop() STOP SQ"); terminateAndWait(server); } - LOGGER.trace("StartServer::stop() END"); } @@ -158,6 +152,6 @@ public class StartServer implements ProcessMXBean { public static void main(String[] args) throws Exception { Installation installation = new Installation(); new AppLogging().configure(installation); - new StartServer(installation).start(); + new App(installation).start(); } } diff --git a/sonar-application/src/main/java/org/sonar/application/Installation.java b/sonar-application/src/main/java/org/sonar/application/Installation.java index 35142b46e11..ddba3465361 100644 --- a/sonar-application/src/main/java/org/sonar/application/Installation.java +++ b/sonar-application/src/main/java/org/sonar/application/Installation.java @@ -38,7 +38,7 @@ public class Installation { private final File tempDir, logsDir; private final Props props; - Installation() throws URISyntaxException, IOException { + public Installation() throws URISyntaxException, IOException { // home dir guessed with location of lib/sonar-application.jar homeDir = detectHomeDir(); diff --git a/sonar-application/src/main/resources/org/sonar/application/logback.xml b/sonar-application/src/main/resources/org/sonar/application/logback.xml index 51aaa17a6be..993f5d097db 100644 --- a/sonar-application/src/main/resources/org/sonar/application/logback.xml +++ b/sonar-application/src/main/resources/org/sonar/application/logback.xml @@ -28,11 +28,6 @@ - - INFO - ACCEPT - DENY - %d{yyyy.MM.dd HH:mm:ss} %-5level %msg%n diff --git a/sonar-application/src/test/java/org/sonar/application/StartServerTest.java b/sonar-application/src/test/java/org/sonar/application/AppTest.java similarity index 95% rename from sonar-application/src/test/java/org/sonar/application/StartServerTest.java rename to sonar-application/src/test/java/org/sonar/application/AppTest.java index c410b840ff1..040dba14cc9 100644 --- a/sonar-application/src/test/java/org/sonar/application/StartServerTest.java +++ b/sonar-application/src/test/java/org/sonar/application/AppTest.java @@ -39,7 +39,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class StartServerTest { +public class AppTest { @Rule public TemporaryFolder sonarHome = new TemporaryFolder(); @@ -63,13 +63,13 @@ public class StartServerTest { MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer(); - StartServer server = new StartServer(installation); + App server = new App(installation); // 0 Can have a valid ObjectName assertThat(server).isNotNull(); // 1 assert that process MBean is registered - ObjectName serverObjectName = Process.objectNameFor(StartServer.PROCESS_NAME); + ObjectName serverObjectName = Process.objectNameFor(App.PROCESS_NAME); assertThat(mbeanServer.isRegistered(serverObjectName)).isTrue(); // 2 assert that we can remotely call ping -- 2.39.5