summaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2016-05-12 11:32:50 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2016-05-12 15:19:59 +0200
commitd8845c6f438cee268fa4268a6a6503c54330bdda (patch)
tree803c2e7a2ea656c2c7ef48562f9def70ad11a4cd /sonar-plugin-api
parent4c56e6c287c0ca07dba287a234759c5a32193ba7 (diff)
downloadsonarqube-d8845c6f438cee268fa4268a6a6503c54330bdda.tar.gz
sonarqube-d8845c6f438cee268fa4268a6a6503c54330bdda.zip
SONAR-7636 Deprecate org.sonar.api.measures.Measure + many small API improvements
Diffstat (limited to 'sonar-plugin-api')
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java13
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/measure/NewMeasure.java3
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java3
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureBuilder.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureUtils.java8
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilter.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilters.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/Metrics.java1
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/PersistenceMode.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/PropertiesBuilder.java5
13 files changed, 36 insertions, 15 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java
index 0e5bf775e53..ed8338d1473 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/measure/MetricFinder.java
@@ -19,12 +19,11 @@
*/
package org.sonar.api.batch.measure;
-import org.sonar.api.batch.BatchSide;
-
-import javax.annotation.CheckForNull;
-
+import java.io.Serializable;
import java.util.Collection;
import java.util.List;
+import javax.annotation.CheckForNull;
+import org.sonar.api.batch.BatchSide;
/**
* @since 4.5
@@ -33,9 +32,9 @@ import java.util.List;
public interface MetricFinder {
@CheckForNull
- Metric findByKey(String key);
+ <G extends Serializable> Metric<G> findByKey(String key);
- Collection<Metric> findAll(List<String> metricKeys);
+ Collection<Metric<Serializable>> findAll(List<String> metricKeys);
- Collection<Metric> findAll();
+ Collection<Metric<Serializable>> findAll();
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/measure/NewMeasure.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/measure/NewMeasure.java
index 00b3a17a1be..0e671dbdc9f 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/measure/NewMeasure.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/measure/NewMeasure.java
@@ -22,6 +22,7 @@ package org.sonar.api.batch.sensor.measure;
import java.io.Serializable;
import org.sonar.api.batch.fs.InputComponent;
import org.sonar.api.batch.measure.Metric;
+import org.sonar.api.batch.measure.MetricFinder;
/**
* Builder to create new Measure.
@@ -36,7 +37,7 @@ public interface NewMeasure<G extends Serializable> {
NewMeasure<G> on(InputComponent component);
/**
- * Set the metric this measure belong to.
+ * Set the metric this measure belong to. To find a metric based on its key you can use {@link MetricFinder}.
*/
NewMeasure<G> forMetric(Metric<G> metric);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java
index 37225d2d255..5ab94f297e2 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CountDistributionBuilder.java
@@ -33,7 +33,9 @@ import org.sonar.api.utils.SonarException;
* <p>An example of usage : you wish to record the number of violations for each level of rules priority
*
* @since 1.10
+ * @deprecated since 5.6. Scanner side is not responsible to aggregate measures since 5.2.
*/
+@Deprecated
public class CountDistributionBuilder implements MeasureBuilder {
private final Metric metric;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
index fae0b7d794c..3ea25fc8b0e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
@@ -26,12 +26,15 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.math.NumberUtils;
+import org.sonar.api.batch.sensor.SensorContext;
/**
* A class to handle measures.
*
* @since 1.10
+ * @deprecated since 5.6. To create a new measure on scanner side use {@link SensorContext#newMeasure()}
*/
+@Deprecated
public class Measure<G extends Serializable> implements Serializable {
private static final String INDEX_SHOULD_BE_IN_RANGE_FROM_1_TO_5 = "Index should be in range from 1 to 5";
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureBuilder.java
index 0cd78bf1104..d2e44159278 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureBuilder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureBuilder.java
@@ -19,11 +19,15 @@
*/
package org.sonar.api.measures;
+import org.sonar.api.batch.sensor.SensorContext;
+
/**
* MeasureBuilder helps to build complex measures.
*
* @since 1.10
+ * @deprecated since 5.6. To create a new measure on scanner side use {@link SensorContext#newMeasure()}
*/
+@Deprecated
public interface MeasureBuilder {
Measure build();
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureUtils.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureUtils.java
index 0e8290863f3..9542220d04e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureUtils.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasureUtils.java
@@ -19,17 +19,17 @@
*/
package org.sonar.api.measures;
-import org.apache.commons.lang.StringUtils;
-
-import javax.annotation.Nullable;
-
import java.util.Collection;
+import javax.annotation.Nullable;
+import org.apache.commons.lang.StringUtils;
/**
* An utility class to manipulate measures
*
* @since 1.10
+ * @deprecated since 5.6. {@link Measure} is deprecated.
*/
+@Deprecated
public final class MeasureUtils {
/**
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilter.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilter.java
index 585df69ec79..c576b34d88d 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilter.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilter.java
@@ -23,7 +23,9 @@ import java.util.Collection;
/**
* @since 1.10
+ * @deprecated since 5.6. Sensor should only save measures and not read them.
*/
+@Deprecated
public interface MeasuresFilter<M> {
M filter(Collection<Measure> measures);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilters.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilters.java
index 470593c856f..189af4466ad 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilters.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MeasuresFilters.java
@@ -27,7 +27,9 @@ import org.sonar.api.rules.Rule;
/**
* @since 1.10
+ * @deprecated since 5.6. Sensor should only save measures and not read them.
*/
+@Deprecated
public final class MeasuresFilters {
private MeasuresFilters() {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
index d27e62e34ae..3400be34f18 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
@@ -38,6 +38,10 @@ import static com.google.common.base.Objects.firstNonNull;
import static com.google.common.base.Preconditions.checkArgument;
import static org.apache.commons.lang.StringUtils.isNotBlank;
+/**
+ * Used to define a metric in a plugin. Should be used with {@link Metrics} extension point.
+ * Should no more be used on scanner side. Use {@link org.sonar.api.batch.measure.Metric} instead.
+ */
@BatchSide
@InstantiationStrategy(InstantiationStrategy.PER_BATCH)
@ServerSide
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java
index 5aceb4f2471..5f0d127524e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/MetricFinder.java
@@ -28,7 +28,7 @@ import org.sonar.api.server.ServerSide;
/**
* @since 2.5
- * @deprecated since 5.1 use {@link org.sonar.api.batch.measure.MetricFinder} on batch side
+ * @deprecated since 5.1 use {@link org.sonar.api.batch.measure.MetricFinder} on scanner side.
*/
@Deprecated
@BatchSide
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metrics.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metrics.java
index 96521bac3a5..acb25075509 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metrics.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metrics.java
@@ -27,6 +27,7 @@ import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.server.ServerSide;
/**
+ * This is the extension point used by plugins to declare new metrics.
* @since 1.10
*/
@BatchSide
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/PersistenceMode.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/PersistenceMode.java
index 8ea226e0714..8cf4b150d85 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/PersistenceMode.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/PersistenceMode.java
@@ -28,7 +28,9 @@ package org.sonar.api.measures;
* </ul>
*
* @since 1.10
+ * @deprecated since 5.6. No more used since 5.2.
*/
+@Deprecated
public enum PersistenceMode {
MEMORY, DATABASE, FULL;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/PropertiesBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/PropertiesBuilder.java
index 00feb2b3b9d..2e994a628f3 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/PropertiesBuilder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/PropertiesBuilder.java
@@ -19,14 +19,15 @@
*/
package org.sonar.api.measures;
-import org.sonar.api.utils.KeyValueFormat;
-
import java.util.Map;
import java.util.TreeMap;
+import org.sonar.api.utils.KeyValueFormat;
/**
* @since 1.10
+ * @deprecated since 5.6. Use directly {@link KeyValueFormat}.
*/
+@Deprecated
public class PropertiesBuilder<K, V> {
private Metric metric;
private Map<K, V> props;