]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9586 Run incremental task when sonar.incremental=true
authorJulien HENRY <julien.henry@sonarsource.com>
Thu, 20 Jul 2017 14:33:37 +0000 (16:33 +0200)
committerJulien HENRY <julien.henry@sonarsource.com>
Mon, 7 Aug 2017 09:44:06 +0000 (11:44 +0200)
sonar-scanner-engine/src/main/java/org/sonar/scanner/task/TaskContainer.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/tasks/TasksMediumTest.java

index 477bd4d2d836ad6bf8cde72aae107fdcb9a456f1..32d3b81b141b04b7f1a49144259e60124f50b77a 100644 (file)
@@ -70,14 +70,21 @@ public class TaskContainer extends ComponentContainer {
 
   @Override
   public void doAfterStart() {
-    // default value is declared in CorePlugin
     String taskKey = StringUtils.defaultIfEmpty(taskProperties.get(CoreProperties.TASK), CoreProperties.SCAN_TASK);
+    boolean incremental = "true".equals(taskProperties.get("sonar.incremental"));
+    if (CoreProperties.SCAN_TASK.equals(taskKey) && incremental) {
+      taskKey = "incremental";
+    }
     // Release memory
     taskProperties.clear();
 
     TaskDefinition def = getComponentByType(Tasks.class).definition(taskKey);
     if (def == null) {
-      throw MessageException.of("Task '" + taskKey + "' does not exist. Please use '" + ListTask.KEY + "' task to see all available tasks.");
+      if (incremental) {
+        throw MessageException.of("Incremental mode is not available. Please contact your administrator.");
+      } else {
+        throw MessageException.of("Task '" + taskKey + "' does not exist. Please use '" + ListTask.KEY + "' task to see all available tasks.");
+      }
     }
     Task task = getComponentByType(def.taskClass());
     if (task != null) {
index 2739b76e23e5d831b6c706b05011902affb657c7..ea3ffc3737d0efe3e084aee2f8ac8c1d8e1ee897 100644 (file)
@@ -94,6 +94,20 @@ public class TasksMediumTest {
       .execute();
   }
 
+  @Test
+  public void incrementalNotFound() throws Exception {
+    tester.start();
+
+    thrown.expect(MessageException.class);
+    thrown.expectMessage(
+      "Incremental mode is not available. Please contact your administrator.");
+
+    tester.newTask()
+      .properties(ImmutableMap.<String, String>builder()
+        .put("sonar.incremental", "true").build())
+      .start();
+  }
+
   private static class FakeTaskPlugin extends SonarPlugin {
 
     @Override