From: Simon Brandhof Date: Fri, 20 Jul 2018 19:14:05 +0000 (+0200) Subject: SONAR-11064 drop metric comment_lines_data X-Git-Tag: 7.5~711 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=5f995384b08be67cdd11a52485b38cf7099bd113;p=sonarqube.git SONAR-11064 drop metric comment_lines_data --- diff --git a/sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java b/sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java index 9da45b54375..622e1992972 100644 --- a/sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java +++ b/sonar-core/src/main/java/org/sonar/core/metric/ScannerMetrics.java @@ -25,9 +25,7 @@ import java.util.List; import java.util.Objects; import java.util.Set; import java.util.stream.Stream; - import javax.annotation.concurrent.Immutable; - import org.sonar.api.batch.ScannerSide; import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.measures.Metric; @@ -36,7 +34,6 @@ import org.sonar.api.measures.Metrics; import static org.sonar.api.measures.CoreMetrics.CLASSES; import static org.sonar.api.measures.CoreMetrics.COGNITIVE_COMPLEXITY; import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES; -import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES_DATA; import static org.sonar.api.measures.CoreMetrics.COMPLEXITY; import static org.sonar.api.measures.CoreMetrics.COMPLEXITY_IN_CLASSES; import static org.sonar.api.measures.CoreMetrics.COMPLEXITY_IN_FUNCTIONS; @@ -84,7 +81,6 @@ public class ScannerMetrics { NCLOC_DATA, GENERATED_NCLOC, COMMENT_LINES, - COMMENT_LINES_DATA, NCLOC_LANGUAGE_DISTRIBUTION, PUBLIC_API, @@ -129,6 +125,10 @@ public class ScannerMetrics { this.metrics = Stream.concat(getPluginMetrics(metricsRepositories), ALLOWED_CORE_METRICS.stream()).collect(toSet()); } + /** + * The metrics allowed in scanner analysis reports. The measures that don't relate to + * these metrics are not loaded by Compute Engine. + */ public Set getMetrics() { return metrics; } diff --git a/sonar-core/src/test/java/org/sonar/core/metric/ScannerMetricsTest.java b/sonar-core/src/test/java/org/sonar/core/metric/ScannerMetricsTest.java index 602341a74d5..e9bb640dca3 100644 --- a/sonar-core/src/test/java/org/sonar/core/metric/ScannerMetricsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/metric/ScannerMetricsTest.java @@ -35,7 +35,7 @@ public class ScannerMetricsTest { @Test public void check_number_of_allowed_core_metrics() { - assertThat(SENSOR_METRICS_WITHOUT_METRIC_PLUGIN).hasSize(33); + assertThat(SENSOR_METRICS_WITHOUT_METRIC_PLUGIN).hasSize(32); } @Test diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java index f746645a91b..51d854c6488 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java @@ -72,25 +72,27 @@ public final class CoreMetrics { /** * SonarQube Quality Model + * * @since 5.5 */ public static String DOMAIN_MAINTAINABILITY = "Maintainability"; /** * SonarQube Quality Model + * * @since 5.5 */ public static String DOMAIN_RELIABILITY = "Reliability"; /** * SonarQube Quality Model + * * @since 5.5 */ public static String DOMAIN_SECURITY = "Security"; /** * @since 4.0 - * * @deprecated in 5.5. Replaced by {@link #DOMAIN_MAINTAINABILITY} */ @Deprecated @@ -217,8 +219,8 @@ public final class CoreMetrics { .create(); /** - * @deprecated since 6.2 * @see SONAR-8328 + * @deprecated since 6.2 */ @Deprecated public static final String PUBLIC_API_KEY = "public_api"; @@ -274,8 +276,8 @@ public final class CoreMetrics { // -------------------------------------------------------------------------------------------------------------------- /** - * @deprecated since 6.2 * @see SONAR-8328 + * @deprecated since 6.2 */ @Deprecated public static final String PUBLIC_DOCUMENTED_API_DENSITY_KEY = "public_documented_api_density"; @@ -291,8 +293,8 @@ public final class CoreMetrics { .create(); /** - * @deprecated since 6.2 * @see SONAR-8328 + * @deprecated since 6.2 */ @Deprecated public static final String PUBLIC_UNDOCUMENTED_API_KEY = "public_undocumented_api"; @@ -389,6 +391,7 @@ public final class CoreMetrics { public static final String CLASS_COMPLEXITY_KEY = "class_complexity"; /** * Information about the cyclomatic complexity per class, calculated by divided the {@link #COMPLEXITY_IN_CLASSES} by the number of {@link #CLASSES}. + * * @deprecated since 6.7 */ @Deprecated @@ -428,6 +431,7 @@ public final class CoreMetrics { public static final String FUNCTION_COMPLEXITY_KEY = "function_complexity"; /** * Information about the cyclomatic complexity per function, calculated by divided the {@link #COMPLEXITY_IN_FUNCTIONS} by the number of {@link #FUNCTIONS}. + * * @deprecated since 6.7 */ @Deprecated @@ -450,12 +454,12 @@ public final class CoreMetrics { @Deprecated public static final Metric CLASS_COMPLEXITY_DISTRIBUTION = new Metric.Builder(CLASS_COMPLEXITY_DISTRIBUTION_KEY, "Class Distribution / Complexity", Metric.ValueType.DISTRIB) - .setDescription("Classes distribution /complexity") - .setDirection(Metric.DIRECTION_NONE) - .setQualitative(true) - .setDomain(DOMAIN_COMPLEXITY) - .setHidden(true) - .create(); + .setDescription("Classes distribution /complexity") + .setDirection(Metric.DIRECTION_NONE) + .setQualitative(true) + .setDomain(DOMAIN_COMPLEXITY) + .setHidden(true) + .create(); /** * @deprecated since 6.7 @@ -468,12 +472,12 @@ public final class CoreMetrics { @Deprecated public static final Metric FUNCTION_COMPLEXITY_DISTRIBUTION = new Metric.Builder(FUNCTION_COMPLEXITY_DISTRIBUTION_KEY, "Function Distribution / Complexity", Metric.ValueType.DISTRIB) - .setDescription("Functions distribution /complexity") - .setDirection(Metric.DIRECTION_NONE) - .setQualitative(true) - .setDomain(DOMAIN_COMPLEXITY) - .setHidden(true) - .create(); + .setDescription("Functions distribution /complexity") + .setDirection(Metric.DIRECTION_NONE) + .setQualitative(true) + .setDomain(DOMAIN_COMPLEXITY) + .setHidden(true) + .create(); /** * @deprecated since 6.7 @@ -486,12 +490,12 @@ public final class CoreMetrics { @Deprecated public static final Metric FILE_COMPLEXITY_DISTRIBUTION = new Metric.Builder(FILE_COMPLEXITY_DISTRIBUTION_KEY, "File Distribution / Complexity", Metric.ValueType.DISTRIB) - .setDescription("Files distribution /complexity") - .setDirection(Metric.DIRECTION_NONE) - .setQualitative(true) - .setDomain(DOMAIN_COMPLEXITY) - .setHidden(true) - .create(); + .setDescription("Files distribution /complexity") + .setDirection(Metric.DIRECTION_NONE) + .setQualitative(true) + .setDomain(DOMAIN_COMPLEXITY) + .setHidden(true) + .create(); public static final String COGNITIVE_COMPLEXITY_KEY = "cognitive_complexity"; public static final Metric COGNITIVE_COMPLEXITY = new Metric.Builder(COGNITIVE_COMPLEXITY_KEY, "Cognitive Complexity", Metric.ValueType.INT) @@ -674,7 +678,6 @@ public final class CoreMetrics { .create(); /** - * * @deprecated since 5.2 soon to be removed */ @Deprecated @@ -683,6 +686,7 @@ public final class CoreMetrics { /** * Key-value pairs, where key - is a number of line, and value - is a number of hits for this line. * Use {@link CoverageMeasuresBuilder} to build measure for this metric. + * * @deprecated since 5.2 soon to be removed */ @Deprecated @@ -797,14 +801,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String IT_COVERAGE_KEY = "it_coverage"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric IT_COVERAGE = new Metric.Builder(IT_COVERAGE_KEY, "IT Coverage", Metric.ValueType.PERCENT) @@ -819,14 +823,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_IT_COVERAGE_KEY = "new_it_coverage"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_IT_COVERAGE = new Metric.Builder(NEW_IT_COVERAGE_KEY, "Coverage by IT on New Code", Metric.ValueType.PERCENT) @@ -842,14 +846,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String IT_LINES_TO_COVER_KEY = "it_lines_to_cover"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric IT_LINES_TO_COVER = new Metric.Builder(IT_LINES_TO_COVER_KEY, "IT Lines to Cover", Metric.ValueType.INT) @@ -862,14 +866,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_IT_LINES_TO_COVER_KEY = "new_it_lines_to_cover"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_IT_LINES_TO_COVER = new Metric.Builder(NEW_IT_LINES_TO_COVER_KEY, "Lines to Cover by IT on New Code", Metric.ValueType.INT) @@ -883,14 +887,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String IT_UNCOVERED_LINES_KEY = "it_uncovered_lines"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric IT_UNCOVERED_LINES = new Metric.Builder(IT_UNCOVERED_LINES_KEY, "IT Uncovered Lines", Metric.ValueType.INT) @@ -903,14 +907,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_IT_UNCOVERED_LINES_KEY = "new_it_uncovered_lines"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_IT_UNCOVERED_LINES = new Metric.Builder(NEW_IT_UNCOVERED_LINES_KEY, "Uncovered Lines by IT on New Code", Metric.ValueType.INT) @@ -924,14 +928,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String IT_LINE_COVERAGE_KEY = "it_line_coverage"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric IT_LINE_COVERAGE = new Metric.Builder(IT_LINE_COVERAGE_KEY, "IT Line Coverage", Metric.ValueType.PERCENT) @@ -944,14 +948,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_IT_LINE_COVERAGE_KEY = "new_it_line_coverage"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_IT_LINE_COVERAGE = new Metric.Builder(NEW_IT_LINE_COVERAGE_KEY, "Line Coverage by IT on New Code", Metric.ValueType.PERCENT) @@ -988,14 +992,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String IT_CONDITIONS_TO_COVER_KEY = "it_conditions_to_cover"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric IT_CONDITIONS_TO_COVER = new Metric.Builder(IT_CONDITIONS_TO_COVER_KEY, "IT Branches to Cover", Metric.ValueType.INT) @@ -1008,14 +1012,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_IT_CONDITIONS_TO_COVER_KEY = "new_it_conditions_to_cover"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_IT_CONDITIONS_TO_COVER = new Metric.Builder(NEW_IT_CONDITIONS_TO_COVER_KEY, "Branches to Cover by IT on New Code", Metric.ValueType.INT) @@ -1027,14 +1031,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String IT_UNCOVERED_CONDITIONS_KEY = "it_uncovered_conditions"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric IT_UNCOVERED_CONDITIONS = new Metric.Builder(IT_UNCOVERED_CONDITIONS_KEY, "IT Uncovered Conditions", Metric.ValueType.INT) @@ -1046,36 +1050,36 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_IT_UNCOVERED_CONDITIONS_KEY = "new_it_uncovered_conditions"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_IT_UNCOVERED_CONDITIONS = new Metric.Builder(NEW_IT_UNCOVERED_CONDITIONS_KEY, "Uncovered Conditions by IT on New Code", Metric.ValueType.INT) - .setDescription("New conditions that are not covered by integration tests") - .setDirection(Metric.DIRECTION_WORST) - .setDomain(DOMAIN_COVERAGE) - .setBestValue(0.0) - .setDeleteHistoricalData(true) - .setHidden(true) - .create(); + .setDescription("New conditions that are not covered by integration tests") + .setDirection(Metric.DIRECTION_WORST) + .setDomain(DOMAIN_COVERAGE) + .setBestValue(0.0) + .setDeleteHistoricalData(true) + .setHidden(true) + .create(); /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String IT_BRANCH_COVERAGE_KEY = "it_branch_coverage"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric IT_BRANCH_COVERAGE = new Metric.Builder(IT_BRANCH_COVERAGE_KEY, "IT Condition Coverage", Metric.ValueType.PERCENT) @@ -1090,14 +1094,14 @@ public final class CoreMetrics { /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_IT_BRANCH_COVERAGE_KEY = "new_it_branch_coverage"; /** * @since 2.12 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_IT_BRANCH_COVERAGE = new Metric.Builder(NEW_IT_BRANCH_COVERAGE_KEY, "Condition Coverage by IT on New Code", Metric.ValueType.PERCENT) @@ -1155,14 +1159,14 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String OVERALL_COVERAGE_KEY = "overall_coverage"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric OVERALL_COVERAGE = new Metric.Builder(OVERALL_COVERAGE_KEY, "Overall Coverage", Metric.ValueType.PERCENT) @@ -1177,14 +1181,14 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_OVERALL_COVERAGE_KEY = "new_overall_coverage"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_OVERALL_COVERAGE = new Metric.Builder(NEW_OVERALL_COVERAGE_KEY, "Overall Coverage on New Code", Metric.ValueType.PERCENT) @@ -1200,14 +1204,14 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String OVERALL_LINES_TO_COVER_KEY = "overall_lines_to_cover"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric OVERALL_LINES_TO_COVER = new Metric.Builder(OVERALL_LINES_TO_COVER_KEY, "Overall Lines to Cover", Metric.ValueType.INT) @@ -1220,14 +1224,14 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_OVERALL_LINES_TO_COVER_KEY = "new_overall_lines_to_cover"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_OVERALL_LINES_TO_COVER = new Metric.Builder(NEW_OVERALL_LINES_TO_COVER_KEY, "Overall Lines to Cover on New Code", Metric.ValueType.INT) @@ -1241,14 +1245,14 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String OVERALL_UNCOVERED_LINES_KEY = "overall_uncovered_lines"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric OVERALL_UNCOVERED_LINES = new Metric.Builder(OVERALL_UNCOVERED_LINES_KEY, "Overall Uncovered Lines", Metric.ValueType.INT) @@ -1261,14 +1265,14 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_OVERALL_UNCOVERED_LINES_KEY = "new_overall_uncovered_lines"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_OVERALL_UNCOVERED_LINES = new Metric.Builder(NEW_OVERALL_UNCOVERED_LINES_KEY, "Overall Uncovered Lines on New Code", Metric.ValueType.INT) @@ -1282,14 +1286,14 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String OVERALL_LINE_COVERAGE_KEY = "overall_line_coverage"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric OVERALL_LINE_COVERAGE = new Metric.Builder(OVERALL_LINE_COVERAGE_KEY, "Overall Line Coverage", Metric.ValueType.PERCENT) @@ -1302,14 +1306,14 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_OVERALL_LINE_COVERAGE_KEY = "new_overall_line_coverage"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_OVERALL_LINE_COVERAGE = new Metric.Builder(NEW_OVERALL_LINE_COVERAGE_KEY, "Overall Line Coverage on New Code", Metric.ValueType.PERCENT) @@ -1337,23 +1341,23 @@ public final class CoreMetrics { @Deprecated public static final Metric OVERALL_COVERAGE_LINE_HITS_DATA = new Metric.Builder(OVERALL_COVERAGE_LINE_HITS_DATA_KEY, "Overall Coverage Hits by Line", Metric.ValueType.DATA) - .setDescription("Coverage hits by all tests and by line") - .setDirection(Metric.DIRECTION_NONE) - .setQualitative(false) - .setDomain(DOMAIN_COVERAGE) - .setDeleteHistoricalData(true) - .create(); + .setDescription("Coverage hits by all tests and by line") + .setDirection(Metric.DIRECTION_NONE) + .setQualitative(false) + .setDomain(DOMAIN_COVERAGE) + .setDeleteHistoricalData(true) + .create(); /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String OVERALL_CONDITIONS_TO_COVER_KEY = "overall_conditions_to_cover"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric OVERALL_CONDITIONS_TO_COVER = new Metric.Builder(OVERALL_CONDITIONS_TO_COVER_KEY, "Overall Branches to Cover", Metric.ValueType.INT) @@ -1366,34 +1370,34 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_OVERALL_CONDITIONS_TO_COVER_KEY = "new_overall_conditions_to_cover"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_OVERALL_CONDITIONS_TO_COVER = new Metric.Builder(NEW_OVERALL_CONDITIONS_TO_COVER_KEY, "Overall Branches to Cover on New Code", Metric.ValueType.INT) - .setDescription("New branches to cover by all tests") - .setDomain(DOMAIN_COVERAGE) - .setDeleteHistoricalData(true) - .setHidden(true) - .create(); + .setDescription("New branches to cover by all tests") + .setDomain(DOMAIN_COVERAGE) + .setDeleteHistoricalData(true) + .setHidden(true) + .create(); /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String OVERALL_UNCOVERED_CONDITIONS_KEY = "overall_uncovered_conditions"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric OVERALL_UNCOVERED_CONDITIONS = new Metric.Builder(OVERALL_UNCOVERED_CONDITIONS_KEY, "Overall Uncovered Conditions", Metric.ValueType.INT) @@ -1405,36 +1409,36 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_OVERALL_UNCOVERED_CONDITIONS_KEY = "new_overall_uncovered_conditions"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_OVERALL_UNCOVERED_CONDITIONS = new Metric.Builder(NEW_OVERALL_UNCOVERED_CONDITIONS_KEY, "Overall Uncovered Conditions on New Code", Metric.ValueType.INT) - .setDescription("New conditions that are not covered by any test") - .setDirection(Metric.DIRECTION_WORST) - .setDomain(DOMAIN_COVERAGE) - .setBestValue(0.0) - .setDeleteHistoricalData(true) - .setHidden(true) - .create(); + .setDescription("New conditions that are not covered by any test") + .setDirection(Metric.DIRECTION_WORST) + .setDomain(DOMAIN_COVERAGE) + .setBestValue(0.0) + .setDeleteHistoricalData(true) + .setHidden(true) + .create(); /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String OVERALL_BRANCH_COVERAGE_KEY = "overall_branch_coverage"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric OVERALL_BRANCH_COVERAGE = new Metric.Builder(OVERALL_BRANCH_COVERAGE_KEY, "Overall Condition Coverage", Metric.ValueType.PERCENT) @@ -1449,27 +1453,27 @@ public final class CoreMetrics { /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final String NEW_OVERALL_BRANCH_COVERAGE_KEY = "new_overall_branch_coverage"; /** * @since 3.3 - * @deprecated since 6.2 all coverage reports are merged in the same measures + * @deprecated since 6.2 all coverage reports are merged in the same measures */ @Deprecated public static final Metric NEW_OVERALL_BRANCH_COVERAGE = new Metric.Builder(NEW_OVERALL_BRANCH_COVERAGE_KEY, "Overall Condition Coverage on New Code", Metric.ValueType.PERCENT) - .setDescription("Condition coverage of new/changed code by all tests") - .setDirection(Metric.DIRECTION_BETTER) - .setQualitative(true) - .setDomain(DOMAIN_COVERAGE) - .setWorstValue(0.0) - .setBestValue(100.0) - .setDeleteHistoricalData(true) - .setHidden(true) - .create(); + .setDescription("Condition coverage of new/changed code by all tests") + .setDirection(Metric.DIRECTION_BETTER) + .setQualitative(true) + .setDomain(DOMAIN_COVERAGE) + .setWorstValue(0.0) + .setBestValue(100.0) + .setDeleteHistoricalData(true) + .setHidden(true) + .create(); /** * @since 3.3 @@ -1503,10 +1507,10 @@ public final class CoreMetrics { @Deprecated public static final Metric OVERALL_COVERED_CONDITIONS_BY_LINE = new Metric.Builder(OVERALL_COVERED_CONDITIONS_BY_LINE_KEY, "Overall Covered Conditions by Line", Metric.ValueType.DATA) - .setDescription("Overall covered conditions by all tests and by line") - .setDomain(DOMAIN_COVERAGE) - .setDeleteHistoricalData(true) - .create(); + .setDescription("Overall covered conditions by all tests and by line") + .setDomain(DOMAIN_COVERAGE) + .setDeleteHistoricalData(true) + .create(); // -------------------------------------------------------------------------------------------------------------------- // @@ -1553,7 +1557,7 @@ public final class CoreMetrics { /** * @since 6.1 - */ + */ public static final String NEW_BLOCKS_DUPLICATED_KEY = "new_duplicated_blocks"; /** * @since 6.1 @@ -1604,13 +1608,13 @@ public final class CoreMetrics { */ public static final Metric NEW_DUPLICATED_LINES_DENSITY = new Metric.Builder(NEW_DUPLICATED_LINES_DENSITY_KEY, "Duplicated Lines on New Code (%)", Metric.ValueType.PERCENT) - .setDescription("Duplicated lines on new code balanced by statements") - .setDirection(Metric.DIRECTION_WORST) - .setQualitative(true) - .setDomain(DOMAIN_DUPLICATIONS) - .setBestValue(0.0) - .setDeleteHistoricalData(true) - .create(); + .setDescription("Duplicated lines on new code balanced by statements") + .setDirection(Metric.DIRECTION_WORST) + .setQualitative(true) + .setDomain(DOMAIN_DUPLICATIONS) + .setBestValue(0.0) + .setDeleteHistoricalData(true) + .create(); /** * @deprecated since 4.5. Internal storage of duplication is not an API. @@ -1863,12 +1867,14 @@ public final class CoreMetrics { /** * SonarQube Quality Model + * * @since 5.5 */ public static final String CODE_SMELLS_KEY = "code_smells"; /** * SonarQube Quality Model + * * @since 5.5 */ public static final Metric CODE_SMELLS = new Metric.Builder(CODE_SMELLS_KEY, "Code Smells", Metric.ValueType.INT) @@ -1882,12 +1888,14 @@ public final class CoreMetrics { /** * SonarQube Quality Model + * * @since 5.5 */ public static final String NEW_CODE_SMELLS_KEY = "new_code_smells"; /** * SonarQube Quality Model + * * @since 5.5 */ public static final Metric NEW_CODE_SMELLS = new Metric.Builder(NEW_CODE_SMELLS_KEY, "New Code Smells", Metric.ValueType.INT) @@ -1902,12 +1910,14 @@ public final class CoreMetrics { /** * SonarQube Quality Model + * * @since 5.5 */ public static final String BUGS_KEY = "bugs"; /** * SonarQube Quality Model + * * @since 5.5 */ public static final Metric BUGS = new Metric.Builder(BUGS_KEY, "Bugs", Metric.ValueType.INT) @@ -1921,12 +1931,14 @@ public final class CoreMetrics { /** * SonarQube Quality Model + * * @since 5.5 */ public static final String NEW_BUGS_KEY = "new_bugs"; /** * SonarQube Quality Model + * * @since 5.5 */ public static final Metric NEW_BUGS = new Metric.Builder(NEW_BUGS_KEY, "New Bugs", Metric.ValueType.INT) @@ -1941,12 +1953,14 @@ public final class CoreMetrics { /** * SonarQube Quality Model + * * @since 5.5 */ public static final String VULNERABILITIES_KEY = "vulnerabilities"; /** * SonarQube Quality Model + * * @since 5.5 */ public static final Metric VULNERABILITIES = new Metric.Builder(VULNERABILITIES_KEY, "Vulnerabilities", Metric.ValueType.INT) @@ -1960,12 +1974,14 @@ public final class CoreMetrics { /** * SonarQube Quality Model + * * @since 5.5 */ public static final String NEW_VULNERABILITIES_KEY = "new_vulnerabilities"; /** * SonarQube Quality Model + * * @since 5.5 */ public static final Metric NEW_VULNERABILITIES = new Metric.Builder(NEW_VULNERABILITIES_KEY, "New Vulnerabilities", Metric.ValueType.INT) @@ -2401,13 +2417,13 @@ public final class CoreMetrics { */ public static final Metric EFFORT_TO_REACH_MAINTAINABILITY_RATING_A = new Metric.Builder(EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_KEY, "Effort to Reach Maintainability Rating A", Metric.ValueType.WORK_DUR) - .setDescription("Effort to reach maintainability rating A") - .setDomain(DOMAIN_MAINTAINABILITY) - .setDirection(Metric.DIRECTION_WORST) - .setQualitative(true) - .setBestValue(0.0) - .setOptimizedBestValue(true) - .create(); + .setDescription("Effort to reach maintainability rating A") + .setDomain(DOMAIN_MAINTAINABILITY) + .setDirection(Metric.DIRECTION_WORST) + .setQualitative(true) + .setBestValue(0.0) + .setOptimizedBestValue(true) + .create(); // -------------------------------------------------------------------------------------------------------------------- // @@ -2425,13 +2441,13 @@ public final class CoreMetrics { */ public static final Metric RELIABILITY_REMEDIATION_EFFORT = new Metric.Builder(RELIABILITY_REMEDIATION_EFFORT_KEY, "Reliability Remediation Effort", Metric.ValueType.WORK_DUR) - .setDescription("Reliability Remediation Effort") - .setDomain(DOMAIN_RELIABILITY) - .setDirection(Metric.DIRECTION_WORST) - .setOptimizedBestValue(true) - .setBestValue(0.0) - .setQualitative(true) - .create(); + .setDescription("Reliability Remediation Effort") + .setDomain(DOMAIN_RELIABILITY) + .setDirection(Metric.DIRECTION_WORST) + .setOptimizedBestValue(true) + .setBestValue(0.0) + .setQualitative(true) + .create(); /** * @since 5.5 @@ -2443,14 +2459,14 @@ public final class CoreMetrics { */ public static final Metric NEW_RELIABILITY_REMEDIATION_EFFORT = new Metric.Builder(NEW_RELIABILITY_REMEDIATION_EFFORT_KEY, "Reliability Remediation Effort on New Code", Metric.ValueType.WORK_DUR) - .setDescription("Reliability remediation effort on new code") - .setDomain(DOMAIN_RELIABILITY) - .setDirection(Metric.DIRECTION_WORST) - .setOptimizedBestValue(true) - .setBestValue(0.0) - .setQualitative(true) - .setDeleteHistoricalData(true) - .create(); + .setDescription("Reliability remediation effort on new code") + .setDomain(DOMAIN_RELIABILITY) + .setDirection(Metric.DIRECTION_WORST) + .setOptimizedBestValue(true) + .setBestValue(0.0) + .setQualitative(true) + .setDeleteHistoricalData(true) + .create(); /** * @since 5.5 @@ -2521,14 +2537,14 @@ public final class CoreMetrics { */ public static final Metric NEW_SECURITY_REMEDIATION_EFFORT = new Metric.Builder(NEW_SECURITY_REMEDIATION_EFFORT_KEY, "Security Remediation Effort on New Code", Metric.ValueType.WORK_DUR) - .setDescription("Security remediation effort on new code") - .setDomain(DOMAIN_SECURITY) - .setDirection(Metric.DIRECTION_WORST) - .setOptimizedBestValue(true) - .setBestValue(0.0) - .setQualitative(true) - .setDeleteHistoricalData(true) - .create(); + .setDescription("Security remediation effort on new code") + .setDomain(DOMAIN_SECURITY) + .setDirection(Metric.DIRECTION_WORST) + .setOptimizedBestValue(true) + .setBestValue(0.0) + .setQualitative(true) + .setDeleteHistoricalData(true) + .create(); /** * @since 5.5 @@ -2592,7 +2608,10 @@ public final class CoreMetrics { /** * @since 2.14 + * @deprecated in 7.3. Measures are no longer sent within analysis reports, and by consequence no + * longer persisted nor available from web API. */ + @Deprecated public static final String COMMENT_LINES_DATA_KEY = "comment_lines_data"; /** @@ -2602,7 +2621,10 @@ public final class CoreMetrics { * * @see org.sonar.api.measures.FileLinesContext * @since 2.14 + * @deprecated in 7.3. Measures are no longer sent within analysis reports, and by consequence no + * longer persisted nor available from web API. */ + @Deprecated public static final Metric COMMENT_LINES_DATA = new Metric.Builder(COMMENT_LINES_DATA_KEY, "comment_lines_data", Metric.ValueType.DATA) .setHidden(true) .setDomain(DOMAIN_SIZE) @@ -2647,6 +2669,7 @@ public final class CoreMetrics { /** * The project detailed status with regard to its quality gate. * Storing the global quality gate status, along with all evaluated conditions, into a JSON object. + * * @since 4.4 */ public static final Metric QUALITY_GATE_DETAILS = new Metric.Builder(QUALITY_GATE_DETAILS_KEY, "Quality Gate Details", Metric.ValueType.DATA) @@ -2681,6 +2704,7 @@ public final class CoreMetrics { /** * Date of the most recent commit. Current implementation is based on commits touching lines of source code. It * ignores other changes like file renaming or file deletion. + * * @since 5.2 */ public static final Metric LAST_COMMIT_DATE = new Metric.Builder(LAST_COMMIT_DATE_KEY, "Date of Last Commit", Metric.ValueType.MILLISEC) diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/DefaultFileLinesContext.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/DefaultFileLinesContext.java index b71a4adbebd..c59cd57f7db 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/DefaultFileLinesContext.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/DefaultFileLinesContext.java @@ -19,12 +19,12 @@ */ package org.sonar.scanner; -import static java.util.stream.Collectors.toMap; - +import com.google.common.base.MoreObjects; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; - import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.measure.MetricFinder; import org.sonar.api.batch.sensor.SensorContext; @@ -35,9 +35,7 @@ import org.sonar.api.utils.KeyValueFormat; import org.sonar.api.utils.KeyValueFormat.Converter; import org.sonar.scanner.scan.measure.MeasureCache; -import com.google.common.base.MoreObjects; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableMap; +import static java.util.stream.Collectors.toMap; public class DefaultFileLinesContext implements FileLinesContext { private final SensorContext context; @@ -117,7 +115,7 @@ public class DefaultFileLinesContext implements FileLinesContext { private static Map optimizeStorage(String metricKey, Map lines) { // SONAR-7464 Don't store 0 because this is default value anyway - if (CoreMetrics.NCLOC_DATA_KEY.equals(metricKey) || CoreMetrics.COMMENT_LINES_DATA_KEY.equals(metricKey) || CoreMetrics.EXECUTABLE_LINES_DATA_KEY.equals(metricKey)) { + if (CoreMetrics.NCLOC_DATA_KEY.equals(metricKey) || CoreMetrics.EXECUTABLE_LINES_DATA_KEY.equals(metricKey)) { return lines.entrySet().stream() .filter(entry -> !entry.getValue().equals(0)) .collect(toMap(Entry::getKey, Entry::getValue)); diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java index c798dcca98d..538ca0d7de4 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java @@ -69,6 +69,7 @@ import org.sonar.scanner.scan.measure.MeasureCache; import static java.util.stream.Collectors.toList; import static org.sonar.api.measures.CoreMetrics.BRANCH_COVERAGE; import static org.sonar.api.measures.CoreMetrics.COMMENTED_OUT_CODE_LINES_KEY; +import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES_DATA_KEY; import static org.sonar.api.measures.CoreMetrics.CONDITIONS_BY_LINE; import static org.sonar.api.measures.CoreMetrics.CONDITIONS_TO_COVER; import static org.sonar.api.measures.CoreMetrics.COVERAGE; @@ -117,7 +118,15 @@ public class DefaultSensorStorage implements SensorStorage { private static final Logger LOG = Loggers.get(DefaultSensorStorage.class); + /** + * The metrics that can be computed by analyzers but that are + * filtered from analysis reports. That allows analyzers to continue + * providing measures that are supported only by older versions. + * + * The metrics in this list should not be declared in {@link ScannerMetrics#ALLOWED_CORE_METRICS}. + */ private static final List DEPRECATED_METRICS_KEYS = Arrays.asList( + COMMENT_LINES_DATA_KEY, DEPENDENCY_MATRIX_KEY, DIRECTORY_CYCLES_KEY, DIRECTORY_EDGES_WEIGHT_KEY, diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/DefaultFileLinesContextTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/DefaultFileLinesContextTest.java index 245702a0252..c4521bb6c31 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/DefaultFileLinesContextTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/DefaultFileLinesContextTest.java @@ -38,7 +38,6 @@ import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES_DATA_KEY; import static org.sonar.api.measures.CoreMetrics.EXECUTABLE_LINES_DATA_KEY; import static org.sonar.api.measures.CoreMetrics.NCLOC_DATA_KEY; @@ -77,7 +76,6 @@ public class DefaultFileLinesContextTest { when(metricFinder.findByKey(BRANCHES_METRIC_KEY)).thenReturn(branchesMetric); when(metricFinder.findByKey(CoreMetrics.NCLOC_DATA_KEY)).thenReturn(CoreMetrics.NCLOC_DATA); when(metricFinder.findByKey(CoreMetrics.EXECUTABLE_LINES_DATA_KEY)).thenReturn(CoreMetrics.EXECUTABLE_LINES_DATA); - when(metricFinder.findByKey(CoreMetrics.COMMENT_LINES_DATA_KEY)).thenReturn(CoreMetrics.COMMENT_LINES_DATA); measureCache = mock(MeasureCache.class); fileLineMeasures = new DefaultFileLinesContext(sensorContextTester, new TestInputFileBuilder("foo", "src/foo.php").initMetadata("Foo\nbar\nbiz").build(), metricFinder, measureCache); @@ -112,13 +110,10 @@ public class DefaultFileLinesContextTest { fileLineMeasures.setIntValue(NCLOC_DATA_KEY, 2, 1); fileLineMeasures.setIntValue(EXECUTABLE_LINES_DATA_KEY, 1, 0); fileLineMeasures.setIntValue(EXECUTABLE_LINES_DATA_KEY, 2, 1); - fileLineMeasures.setIntValue(COMMENT_LINES_DATA_KEY, 1, 0); - fileLineMeasures.setIntValue(COMMENT_LINES_DATA_KEY, 2, 1); fileLineMeasures.save(); assertThat(sensorContextTester.measure("foo:src/foo.php", NCLOC_DATA_KEY).value()).isEqualTo("2=1"); assertThat(sensorContextTester.measure("foo:src/foo.php", EXECUTABLE_LINES_DATA_KEY).value()).isEqualTo("2=1"); - assertThat(sensorContextTester.measure("foo:src/foo.php", COMMENT_LINES_DATA_KEY).value()).isEqualTo("2=1"); } @Test