@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) {
.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