]> source.dussan.org Git - sonarqube.git/commitdiff
Revert "SONAR-4069 Remove Task and TaskDefinition from API."
authorSimon Brandhof <simon.brandhof@gmail.com>
Tue, 5 Mar 2013 15:22:31 +0000 (16:22 +0100)
committerSimon Brandhof <simon.brandhof@gmail.com>
Tue, 5 Mar 2013 15:22:31 +0000 (16:22 +0100)
This reverts commit 7509fbafb262c92c3603d5b17387c232a5748327.

16 files changed:
sonar-batch/src/main/java/org/sonar/batch/bootstrap/ExtensionInstaller.java
sonar-batch/src/main/java/org/sonar/batch/bootstrap/TaskBootstrapContainer.java
sonar-batch/src/main/java/org/sonar/batch/bootstrap/TaskContainer.java
sonar-batch/src/main/java/org/sonar/batch/scan/ScanTask.java
sonar-batch/src/main/java/org/sonar/batch/tasks/ListTasksTask.java
sonar-batch/src/main/java/org/sonar/batch/tasks/Task.java [deleted file]
sonar-batch/src/main/java/org/sonar/batch/tasks/TaskDefinition.java [deleted file]
sonar-batch/src/main/java/org/sonar/batch/tasks/Tasks.java
sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionInstallerTest.java
sonar-batch/src/test/java/org/sonar/batch/bootstrap/TaskContainerTest.java
sonar-batch/src/test/java/org/sonar/batch/tasks/ListTasksTaskTest.java
sonar-batch/src/test/java/org/sonar/batch/tasks/TasksTest.java
sonar-plugin-api/src/main/java/org/sonar/api/task/Task.java [new file with mode: 0644]
sonar-plugin-api/src/main/java/org/sonar/api/task/TaskComponent.java
sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinition.java [new file with mode: 0644]
sonar-plugin-api/src/main/java/org/sonar/api/task/TaskExtension.java

index a6833247022ccce66e57a1bae6741db83aea5e28..211128bde2f6e673247ac26b02805a4e294e3c00 100644 (file)
@@ -31,7 +31,7 @@ import org.sonar.api.config.Settings;
 import org.sonar.api.platform.ComponentContainer;
 import org.sonar.api.platform.PluginMetadata;
 import org.sonar.api.resources.Project;
-import org.sonar.batch.tasks.TaskDefinition;
+import org.sonar.api.task.TaskDefinition;
 import org.sonar.batch.bootstrapper.EnvironmentInformation;
 
 import javax.annotation.Nullable;
index ae0b36a5020209a0c7df590c9689b1a15c78b4ab..39a81ebffdb64041c84d9379717addb67090c654 100644 (file)
@@ -20,7 +20,7 @@
 package org.sonar.batch.bootstrap;
 
 import org.sonar.api.batch.bootstrap.ProjectReactor;
-import org.sonar.batch.tasks.TaskDefinition;
+import org.sonar.api.task.TaskDefinition;
 import org.sonar.api.utils.SonarException;
 import org.sonar.batch.scan.ScanTask;
 import org.sonar.batch.tasks.ListTasksTask;
index 6158d3b02f14260063fdeb9d53e3c8e5b9a33456..9c4e23c0a22be0e6d8e41e881883a3254ab563e7 100644 (file)
@@ -23,8 +23,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.sonar.api.config.EmailSettings;
 import org.sonar.api.resources.ResourceTypes;
-import org.sonar.batch.tasks.Task;
-import org.sonar.batch.tasks.TaskDefinition;
+import org.sonar.api.task.Task;
+import org.sonar.api.task.TaskDefinition;
 import org.sonar.api.utils.SonarException;
 import org.sonar.batch.DefaultFileLinesContextFactory;
 import org.sonar.batch.DefaultResourceCreationLock;
index f9e03d977d9da50e5174026b09330211b43a0ceb..f007e92749df8fd2f4b27030d4fff5dd70a550f0 100644 (file)
@@ -22,8 +22,8 @@ package org.sonar.batch.scan;
 import com.google.common.annotations.VisibleForTesting;
 import org.sonar.api.platform.ComponentContainer;
 import org.sonar.api.resources.Project;
-import org.sonar.batch.tasks.Task;
-import org.sonar.batch.tasks.TaskDefinition;
+import org.sonar.api.task.Task;
+import org.sonar.api.task.TaskDefinition;
 import org.sonar.batch.ProjectTree;
 import org.sonar.batch.tasks.RequiresProject;
 
index 50b8dbb709089d9d51e90d6bc39775b1f9488c9a..dd08729b2cfee4df44666211149e3111ee455ddb 100644 (file)
@@ -19,6 +19,9 @@
  */
 package org.sonar.batch.tasks;
 
+import org.sonar.api.task.Task;
+import org.sonar.api.task.TaskDefinition;
+
 public class ListTasksTask implements Task {
 
   public static final String COMMAND = "list-tasks";
diff --git a/sonar-batch/src/main/java/org/sonar/batch/tasks/Task.java b/sonar-batch/src/main/java/org/sonar/batch/tasks/Task.java
deleted file mode 100644 (file)
index 26b583e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * Sonar is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.tasks;
-
-
-import org.sonar.api.task.TaskExtension;
-
-/**
- * Implement this interface to provide the behavior of a task.
- * @since 3.5
- */
-public interface Task extends TaskExtension {
-
-  void execute();
-
-}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/tasks/TaskDefinition.java b/sonar-batch/src/main/java/org/sonar/batch/tasks/TaskDefinition.java
deleted file mode 100644 (file)
index aea3dda..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * Sonar is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.tasks;
-
-import org.sonar.api.task.TaskComponent;
-
-/**
- * Implement this interface to provide a new task.
- * @since 3.5
- */
-public class TaskDefinition implements TaskComponent {
-
-  private String name;
-  private String description;
-  private String command;
-  private Class<? extends Task> task;
-
-  private TaskDefinition() {
-
-  }
-
-  public static TaskDefinition create() {
-    return new TaskDefinition();
-  }
-
-  public String getName() {
-    return name;
-  }
-
-  public TaskDefinition setName(String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getDescription() {
-    return description;
-  }
-
-  public TaskDefinition setDescription(String description) {
-    this.description = description;
-    return this;
-  }
-
-  public String getCommand() {
-    return command;
-  }
-
-  public TaskDefinition setCommand(String command) {
-    this.command = command;
-    return this;
-  }
-
-  public Class<? extends Task> getTask() {
-    return task;
-  }
-
-  public TaskDefinition setTask(Class<? extends Task> task) {
-    this.task = task;
-    return this;
-  }
-
-  @Override
-  public String toString() {
-    return "Definition of task " + task + " with command " + command;
-  }
-
-}
index 1af4cf6f14317604ce7dd4c4b0b4b3d93f17e8a3..82af633c54b23f77c1efe4fb281edf9a31df085a 100644 (file)
@@ -24,7 +24,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.config.Settings;
+import org.sonar.api.task.Task;
 import org.sonar.api.task.TaskComponent;
+import org.sonar.api.task.TaskDefinition;
 import org.sonar.api.utils.SonarException;
 import org.sonar.batch.scan.ScanTask;
 
index 51c9c8b6750e411900e877c662a2f8f453df5ba7..ce31e79b46e914232ae759ca0662472712a1c0d9 100644 (file)
@@ -32,7 +32,7 @@ import org.sonar.api.config.Settings;
 import org.sonar.api.platform.ComponentContainer;
 import org.sonar.api.platform.PluginMetadata;
 import org.sonar.api.resources.Project;
-import org.sonar.batch.tasks.TaskDefinition;
+import org.sonar.api.task.TaskDefinition;
 import org.sonar.api.task.TaskExtension;
 import org.sonar.batch.bootstrapper.EnvironmentInformation;
 import org.sonar.batch.tasks.RequiresProject;
index 9fae435cb0be53e89f68a09047b11674203f6f4a..03944ea0d772004e7ec51c822a8a40959d66035e 100644 (file)
@@ -21,7 +21,7 @@ package org.sonar.batch.bootstrap;
 
 import org.junit.Test;
 import org.sonar.api.platform.ComponentContainer;
-import org.sonar.batch.tasks.TaskDefinition;
+import org.sonar.api.task.TaskDefinition;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
index d4a91ab36caef6f2fa83700d909feb4794c3bed1..d66c0c688edc3ac8fe6d83e48763108d05827845 100644 (file)
@@ -20,6 +20,7 @@
 package org.sonar.batch.tasks;
 
 import org.junit.Test;
+import org.sonar.api.task.TaskDefinition;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
index de478c23cf3abd1c0ebdcd400147c885eb08550b..102576ec1967583eb6c83a3cc117bb540c79d5aa 100644 (file)
@@ -25,6 +25,8 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.config.Settings;
+import org.sonar.api.task.Task;
+import org.sonar.api.task.TaskDefinition;
 import org.sonar.api.utils.SonarException;
 import org.sonar.batch.scan.ScanTask;
 
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/task/Task.java b/sonar-plugin-api/src/main/java/org/sonar/api/task/Task.java
new file mode 100644 (file)
index 0000000..42bfddd
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2008-2012 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * Sonar is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * Sonar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Sonar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
+ */
+package org.sonar.api.task;
+
+
+/**
+ * Implement this interface to provide the behavior of a task.
+ * @since 3.5
+ */
+public interface Task extends TaskExtension {
+
+  void execute();
+
+}
index 3640ac794759be67a7788108a5b1b6e1598fc09d..346b8bcf3510629c195c65321ac051b01b808d0f 100644 (file)
  */
 package org.sonar.api.task;
 
-import com.google.common.annotations.Beta;
-
 /**
- * EXPERIMENTAL - DO NOT USE
+ * Dependency Injection : all the classes implementing this interface are available in the task IoC container.
+ * Just add a parameter to the constructor of your component.
  *
  * @since 3.5
  */
-@Beta
 public interface TaskComponent {
 }
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinition.java b/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinition.java
new file mode 100644 (file)
index 0000000..2d7d595
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2008-2012 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * Sonar is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * Sonar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Sonar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
+ */
+package org.sonar.api.task;
+
+/**
+ * Implement this interface to provide a new task.
+ * @since 3.5
+ */
+public class TaskDefinition implements TaskComponent {
+
+  private String name;
+  private String description;
+  private String command;
+  private Class<? extends Task> task;
+
+  private TaskDefinition() {
+
+  }
+
+  public static TaskDefinition create() {
+    return new TaskDefinition();
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public TaskDefinition setName(String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public TaskDefinition setDescription(String description) {
+    this.description = description;
+    return this;
+  }
+
+  public String getCommand() {
+    return command;
+  }
+
+  public TaskDefinition setCommand(String command) {
+    this.command = command;
+    return this;
+  }
+
+  public Class<? extends Task> getTask() {
+    return task;
+  }
+
+  public TaskDefinition setTask(Class<? extends Task> task) {
+    this.task = task;
+    return this;
+  }
+
+  @Override
+  public String toString() {
+    return "Definition of task " + task + " with command " + command;
+  }
+
+}
index 854f94e3824c84e50c3eb8aa93d21bd80de05f22..92c3c7230deeadc94429d584901d85515342ad74 100644 (file)
  */
 package org.sonar.api.task;
 
-import com.google.common.annotations.Beta;
 import org.sonar.api.Extension;
 
 /**
- * EXPERIMENTAL - DO NOT USE
+ * Task extension point.
  *
  * @since 3.5
  */
-@Beta
 public interface TaskExtension extends Extension, TaskComponent {
 }