diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2016-05-12 11:32:50 +0200 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2016-05-12 15:19:59 +0200 |
commit | d8845c6f438cee268fa4268a6a6503c54330bdda (patch) | |
tree | 803c2e7a2ea656c2c7ef48562f9def70ad11a4cd /sonar-plugin-api | |
parent | 4c56e6c287c0ca07dba287a234759c5a32193ba7 (diff) | |
download | sonarqube-d8845c6f438cee268fa4268a6a6503c54330bdda.tar.gz sonarqube-d8845c6f438cee268fa4268a6a6503c54330bdda.zip |
SONAR-7636 Deprecate org.sonar.api.measures.Measure + many small API improvements
Diffstat (limited to 'sonar-plugin-api')
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; |