aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api/src/main
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2015-11-16 18:10:44 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2015-11-17 18:18:21 +0100
commit01570a451806cce75fd66b9e02a4631d4ba5509e (patch)
tree4a37c18c2feb48693aa8d571f06f7f7783e7230e /sonar-plugin-api/src/main
parentdf0b8c45e5921a194a937bda405e2be43fcf4865 (diff)
downloadsonarqube-01570a451806cce75fd66b9e02a4631d4ba5509e.tar.gz
sonarqube-01570a451806cce75fd66b9e02a4631d4ba5509e.zip
SONAR-7023 Restore task API
Diffstat (limited to 'sonar-plugin-api/src/main')
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/CoreProperties.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/InstantiationStrategy.java7
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/task/Task.java9
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/task/TaskComponent.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/task/TaskDefinition.java11
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/task/TaskExtension.java9
6 files changed, 27 insertions, 17 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/CoreProperties.java b/sonar-plugin-api/src/main/java/org/sonar/api/CoreProperties.java
index 9e4a625b626..c1bbad7271b 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/CoreProperties.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/CoreProperties.java
@@ -362,16 +362,12 @@ public interface CoreProperties {
/**
* @since 3.5
- * @deprecated since 5.2 no more task concept on batch side
*/
- @Deprecated
String TASK = "sonar.task";
/**
* @since 3.6
- * @deprecated since 5.2 no more task concept on batch side
*/
- @Deprecated
String SCAN_TASK = "scan";
/**
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/InstantiationStrategy.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/InstantiationStrategy.java
index 46b2e7abd26..e1efd17a1ea 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/InstantiationStrategy.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/InstantiationStrategy.java
@@ -34,7 +34,12 @@ import java.lang.annotation.Target;
public @interface InstantiationStrategy {
/**
- * Shared extension. Lifecycle is the full analysis.
+ * Shared task extension. Available in task container.
+ */
+ String PER_TASK = "PER_TASK";
+
+ /**
+ * Shared extension. Available in top level project container.
*/
String PER_BATCH = "PER_BATCH";
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
index dd280ef2ab1..be7677f17a7 100644
--- 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
@@ -19,13 +19,16 @@
*/
package org.sonar.api.task;
+import org.sonar.api.batch.BatchSide;
+import org.sonar.api.batch.InstantiationStrategy;
+
/**
* Implement this interface to provide the behavior of a task.
* @since 3.6
- * @deprecated since 5.1 all tasks (devcockpit, views) will be moved to server side
*/
-@Deprecated
-public interface Task extends TaskExtension {
+@BatchSide
+@InstantiationStrategy(InstantiationStrategy.PER_TASK)
+public interface Task {
void execute();
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskComponent.java b/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskComponent.java
index 3c863a01937..0f3a1ba0074 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskComponent.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskComponent.java
@@ -26,10 +26,10 @@ import org.sonar.api.batch.InstantiationStrategy;
* All the classes implementing this interface can be injected in public constructors of {@link TaskExtension}.
*
* @since 3.6
- * @deprecated since 5.1 all tasks (devcockpit, views) will be moved to server side
+ * @deprecated since 5.1. Use {@link BatchSide} and {@link InstantiationStrategy#PER_TASK}
*/
@Deprecated
@BatchSide
-@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
+@InstantiationStrategy(InstantiationStrategy.PER_TASK)
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
index 858c37b725d..8271252a3ca 100644
--- 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
@@ -21,17 +21,20 @@ package org.sonar.api.task;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
-
import java.util.regex.Pattern;
+import org.sonar.api.ExtensionPoint;
+import org.sonar.api.batch.BatchSide;
+import org.sonar.api.batch.InstantiationStrategy;
/**
* Register and describe a {@link TaskExtension}.
*
* @since 3.6
- * @deprecated since 5.1 all tasks (devcockpit, views) will be moved to server side
*/
-@Deprecated
-public class TaskDefinition implements TaskExtension, Comparable<TaskDefinition> {
+@ExtensionPoint
+@BatchSide
+@InstantiationStrategy(InstantiationStrategy.PER_TASK)
+public class TaskDefinition implements Comparable<TaskDefinition> {
static final String KEY_PATTERN = "[a-zA-Z0-9\\-\\_]+";
private final String key;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskExtension.java b/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskExtension.java
index f389d069dcf..93a4e841ca1 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskExtension.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/task/TaskExtension.java
@@ -19,14 +19,17 @@
*/
package org.sonar.api.task;
-import org.sonar.api.Extension;
+import org.sonar.api.batch.BatchSide;
+import org.sonar.api.batch.InstantiationStrategy;
/**
* Task extension point
*
* @since 3.6
- * @deprecated since 5.1 all tasks (devcockpit, views) will be moved to server side
+ * @deprecated since 5.1. Not used.
*/
@Deprecated
-public interface TaskExtension extends Extension, TaskComponent {
+@BatchSide
+@InstantiationStrategy(InstantiationStrategy.PER_TASK)
+public interface TaskExtension {
}