aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/sonar-process/src/main/java/org/sonar/process/ProcessMXBean.java7
-rw-r--r--sonar-application-test/src/test/java/ForkTest.java8
-rw-r--r--sonar-application-test/src/test/projects/xoo-sample/sonar-project.properties5
-rw-r--r--sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo12
-rw-r--r--sonar-application-test/src/test/projects/xoo-sample/src/main/xoo/sample/Sample.xoo.measures13
-rw-r--r--sonar-application/pom.xml2
-rw-r--r--sonar-application/src/main/assembly/lib/jsw/wrapper.conf2
-rw-r--r--sonar-application/src/main/java/org/sonar/application/App.java (renamed from sonar-application/src/main/java/org/sonar/application/StartServer.java)18
-rw-r--r--sonar-application/src/main/java/org/sonar/application/Installation.java2
-rw-r--r--sonar-application/src/main/resources/org/sonar/application/logback.xml5
-rw-r--r--sonar-application/src/test/java/org/sonar/application/AppTest.java (renamed from sonar-application/src/test/java/org/sonar/application/StartServerTest.java)6
11 files changed, 53 insertions, 27 deletions
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.<String, Object>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.<String, Object>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 @@
<index>true</index>
<manifest>
<addClasspath>false</addClasspath>
- <mainClass>org.sonar.application.StartServer</mainClass>
+ <mainClass>org.sonar.application.App</mainClass>
</manifest>
<manifestEntries>
<mode>distribution</mode>
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
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 @@
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>
%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
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