]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4069 Don't register automatically Task executors
authorJulien HENRY <julien.henry@sonarsource.com>
Wed, 16 Jan 2013 14:49:32 +0000 (15:49 +0100)
committerJulien HENRY <julien.henry@sonarsource.com>
Wed, 16 Jan 2013 14:51:04 +0000 (15:51 +0100)
but force users to declare them in extension list.

sonar-batch/src/main/java/org/sonar/batch/bootstrap/AbstractTaskModule.java
sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectTaskModule.java
sonar-batch/src/main/java/org/sonar/batch/tasks/InspectionTaskDefinition.java
sonar-batch/src/main/java/org/sonar/batch/tasks/ListTaskExecutor.java
sonar-plugin-api/src/main/java/org/sonar/api/batch/TaskDescriptor.java

index 685623774497f0fcf9d1e8340d2d28acaf6002d1..37f6ad15a8f91c22836ff6836cfc63d530dc5f37 100644 (file)
@@ -22,8 +22,10 @@ package org.sonar.batch.bootstrap;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.sonar.api.batch.TaskDefinition;
+import org.sonar.api.batch.TaskExecutor;
 import org.sonar.api.config.EmailSettings;
 import org.sonar.api.resources.ResourceTypes;
+import org.sonar.api.utils.SonarException;
 import org.sonar.batch.DefaultResourceCreationLock;
 import org.sonar.batch.components.PastMeasuresLoader;
 import org.sonar.batch.components.PastSnapshotFinder;
@@ -40,6 +42,7 @@ import org.sonar.batch.index.LinkPersister;
 import org.sonar.batch.index.MeasurePersister;
 import org.sonar.batch.index.MemoryOptimizer;
 import org.sonar.batch.index.SourcePersister;
+import org.sonar.batch.tasks.ListTaskExecutor;
 import org.sonar.core.i18n.I18nManager;
 import org.sonar.core.i18n.RuleI18nManager;
 import org.sonar.core.metric.CacheMetricFinder;
@@ -73,10 +76,10 @@ public abstract class AbstractTaskModule extends Module {
   @Override
   protected void configure() {
     logSettings();
-    container.addSingleton(task.getExecutor());
     registerCoreComponents();
     registerDatabaseComponents();
     registerTaskExtensions();
+    registerCoreTasks();
   }
 
   private void registerCoreComponents() {
@@ -128,6 +131,10 @@ public abstract class AbstractTaskModule extends Module {
     container.addSingleton(BatchDatabaseSessionFactory.class);
   }
 
+  private void registerCoreTasks() {
+    container.addSingleton(ListTaskExecutor.class);
+  }
+
   private void registerTaskExtensions() {
     ExtensionInstaller installer = container.getComponentByType(ExtensionInstaller.class);
     installer.installTaskExtensions(container, projectPresent);
@@ -142,7 +149,13 @@ public abstract class AbstractTaskModule extends Module {
    */
   @Override
   protected void doStart() {
-    container.getComponentByType(task.getExecutor()).execute();
+    TaskExecutor taskExecutor = container.getComponentByType(task.getExecutor());
+    if (taskExecutor != null) {
+      taskExecutor.execute();
+    }
+    else {
+      throw new SonarException("Extension " + task.getExecutor() + " was not found in declared extensions.");
+    }
   }
 
 }
index ab727f40fc812378f2278852b6861e33428ad0d4..3025491d452aabd7ea683d70936c13c8c44b6694 100644 (file)
@@ -24,6 +24,7 @@ import org.sonar.batch.DefaultFileLinesContextFactory;
 import org.sonar.batch.ProjectConfigurator;
 import org.sonar.batch.ProjectTree;
 import org.sonar.batch.index.DefaultIndex;
+import org.sonar.batch.tasks.InspectionTaskExecutor;
 
 public class ProjectTaskModule extends AbstractTaskModule {
 
@@ -35,6 +36,7 @@ public class ProjectTaskModule extends AbstractTaskModule {
   protected void configure() {
     super.configure();
     registerCoreComponentsRequiringProject();
+    registerCoreTasksRequiringProject();
   }
 
   private void registerCoreComponentsRequiringProject() {
@@ -49,4 +51,8 @@ public class ProjectTaskModule extends AbstractTaskModule {
     container.addSingleton(DryRunDatabase.class);
   }
 
+  private void registerCoreTasksRequiringProject() {
+    container.addSingleton(InspectionTaskExecutor.class);
+  }
+
 }
index 0978565af9c53dbd40bed0c50c110110f64a4f93..530a9d8c33cf2b262e0062859acb3b25fc53ddca 100644 (file)
@@ -25,12 +25,12 @@ import org.sonar.api.batch.TaskExecutor;
 
 public class InspectionTaskDefinition implements TaskDefinition {
 
-  public static final String COMMAND = "analyse-project";
+  public static final String COMMAND = "inspect";
 
   public TaskDescriptor getTaskDescriptor() {
     return TaskDescriptor.create()
-        .setDescription("Start a Sonar analysis of a project")
-        .setName("Sonar project analysis")
+        .setDescription("Start a Sonar inspection of a project")
+        .setName("Sonar project inspection")
         .setCommand(COMMAND)
         .setRequiresProject(true);
   }
index 45226963b8005372c5d5d3b665a6641e15c1b020..428c8ea8f2b79ce129729e6facf2d7279bae14ac 100644 (file)
@@ -34,7 +34,7 @@ public class ListTaskExecutor implements TaskExecutor {
   public void execute() {
     for (TaskDefinition task : taskManager.getTasks()) {
       TaskDescriptor desc = task.getTaskDescriptor();
-      System.out.println("  " + desc.getCommand() + ": " + desc.getDecription());
+      System.out.println("  " + desc.getCommand() + ": " + desc.getDescription());
     }
   }
 
index 78cda168edab0d856a5d8deab354cfb55e1a0ac2..3933c6da73570b4a7cdd3d9bc8f5138827c01649 100644 (file)
@@ -26,7 +26,7 @@ package org.sonar.api.batch;
 public class TaskDescriptor {
 
   private String name;
-  private String decription;
+  private String description;
   private String command;
   private boolean requiresProject = false;
 
@@ -47,12 +47,12 @@ public class TaskDescriptor {
     return this;
   }
 
-  public String getDecription() {
-    return decription;
+  public String getDescription() {
+    return description;
   }
 
-  public TaskDescriptor setDescription(String decription) {
-    this.decription = decription;
+  public TaskDescriptor setDescription(String description) {
+    this.description = description;
     return this;
   }