aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-scanner-engine
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2016-10-27 11:04:12 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2016-10-27 11:05:40 +0200
commitbff5ec56cab23c5a8a59575ea20443230cdfe7ef (patch)
treeec450d141c3a5aa90fc84b3b5824c1fb62d8f676 /sonar-scanner-engine
parent263d54549782fc443c66cf2c483851906bcdb1fb (diff)
downloadsonarqube-bff5ec56cab23c5a8a59575ea20443230cdfe7ef.tar.gz
sonarqube-bff5ec56cab23c5a8a59575ea20443230cdfe7ef.zip
SONAR-8310 Added missing deprecation warning
Diffstat (limited to 'sonar-scanner-engine')
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/genericcoverage/GenericCoverageSensor.java27
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageSensorTest.java55
2 files changed, 71 insertions, 11 deletions
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/genericcoverage/GenericCoverageSensor.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/genericcoverage/GenericCoverageSensor.java
index 4a4c6012c4f..73a1af0743c 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/genericcoverage/GenericCoverageSensor.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/genericcoverage/GenericCoverageSensor.java
@@ -41,27 +41,27 @@ public class GenericCoverageSensor extends Initializer implements Sensor {
private static final Logger LOG = Loggers.get(GenericCoverageSensor.class);
- private static final String REPORT_PATH_PROPERTY_KEY = "sonar.coverageReportPaths";
+ static final String REPORT_PATHS_PROPERTY_KEY = "sonar.coverageReportPaths";
/**
* @deprecated since 6.2
*/
@Deprecated
- private static final String OLD_REPORT_PATH_PROPERTY_KEY = "sonar.genericcoverage.reportPath";
+ static final String OLD_REPORT_PATH_PROPERTY_KEY = "sonar.genericcoverage.reportPath";
/**
* @deprecated since 6.2
*/
@Deprecated
- private static final String OLD_COVERAGE_REPORT_PATHS_PROPERTY_KEY = "sonar.genericcoverage.reportPaths";
+ static final String OLD_COVERAGE_REPORT_PATHS_PROPERTY_KEY = "sonar.genericcoverage.reportPaths";
/**
* @deprecated since 6.2
*/
@Deprecated
- private static final String OLD_IT_COVERAGE_REPORT_PATHS_PROPERTY_KEY = "sonar.genericcoverage.itReportPaths";
+ static final String OLD_IT_COVERAGE_REPORT_PATHS_PROPERTY_KEY = "sonar.genericcoverage.itReportPaths";
/**
* @deprecated since 6.2
*/
@Deprecated
- private static final String OLD_OVERALL_COVERAGE_REPORT_PATHS_PROPERTY_KEY = "sonar.genericcoverage.overallReportPaths";
+ static final String OLD_OVERALL_COVERAGE_REPORT_PATHS_PROPERTY_KEY = "sonar.genericcoverage.overallReportPaths";
private final Settings settings;
@@ -72,7 +72,7 @@ public class GenericCoverageSensor extends Initializer implements Sensor {
public static ImmutableList<PropertyDefinition> properties() {
return ImmutableList.of(
- PropertyDefinition.builder(REPORT_PATH_PROPERTY_KEY)
+ PropertyDefinition.builder(REPORT_PATHS_PROPERTY_KEY)
.name("Coverage report paths")
.description("List of comma-separated paths (absolute or relative) containing coverage report.")
.category(CATEGORY_CODE_COVERAGE)
@@ -82,21 +82,26 @@ public class GenericCoverageSensor extends Initializer implements Sensor {
}
+ /**
+ * Use an initializer to migrate old properties to the new one before Sensor phase so that
+ * Sensor will not be executed if there is no report (thanks to SensorDescriptor.requireProperty(REPORT_PATH_PROPERTY_KEY))
+ */
@Override
public void execute() {
Set<String> reportPaths = new LinkedHashSet<>();
- reportPaths.addAll(Arrays.asList(settings.getStringArray(REPORT_PATH_PROPERTY_KEY)));
+ reportPaths.addAll(Arrays.asList(settings.getStringArray(REPORT_PATHS_PROPERTY_KEY)));
loadDeprecated(reportPaths, OLD_REPORT_PATH_PROPERTY_KEY);
+ loadDeprecated(reportPaths, OLD_COVERAGE_REPORT_PATHS_PROPERTY_KEY);
loadDeprecated(reportPaths, OLD_IT_COVERAGE_REPORT_PATHS_PROPERTY_KEY);
loadDeprecated(reportPaths, OLD_OVERALL_COVERAGE_REPORT_PATHS_PROPERTY_KEY);
if (!reportPaths.isEmpty()) {
- settings.setProperty(REPORT_PATH_PROPERTY_KEY, reportPaths.stream().collect(Collectors.joining(",")));
+ settings.setProperty(REPORT_PATHS_PROPERTY_KEY, reportPaths.stream().collect(Collectors.joining(",")));
}
}
private void loadDeprecated(Set<String> reportPaths, String propertyKey) {
if (settings.hasKey(propertyKey)) {
- LOG.warn("Property '{}' is deprecated. Please use '{}' instead.", propertyKey, REPORT_PATH_PROPERTY_KEY);
+ LOG.warn("Property '{}' is deprecated. Please use '{}' instead.", propertyKey, REPORT_PATHS_PROPERTY_KEY);
reportPaths.addAll(Arrays.asList(settings.getStringArray(propertyKey)));
}
}
@@ -104,12 +109,12 @@ public class GenericCoverageSensor extends Initializer implements Sensor {
@Override
public void describe(SensorDescriptor descriptor) {
descriptor.name("Generic Coverage Report")
- .requireProperty(REPORT_PATH_PROPERTY_KEY);
+ .requireProperty(REPORT_PATHS_PROPERTY_KEY);
}
@Override
public void execute(SensorContext context) {
- for (String reportPath : settings.getStringArray(REPORT_PATH_PROPERTY_KEY)) {
+ for (String reportPath : settings.getStringArray(REPORT_PATHS_PROPERTY_KEY)) {
File reportFile = context.fileSystem().resolvePath(reportPath);
LOG.info("Parsing {}", reportFile);
GenericCoverageReportParser parser = new GenericCoverageReportParser();
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageSensorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageSensorTest.java
new file mode 100644
index 00000000000..86e213bf758
--- /dev/null
+++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageSensorTest.java
@@ -0,0 +1,55 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonar.scanner.genericcoverage;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.api.config.MapSettings;
+import org.sonar.api.config.PropertyDefinitions;
+import org.sonar.api.config.Settings;
+import org.sonar.api.utils.log.LogTester;
+import org.sonar.api.utils.log.LoggerLevel;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class GenericCoverageSensorTest {
+
+ @Rule
+ public LogTester logTester = new LogTester();
+
+ @Test
+ public void migrateOldProperties() {
+ Settings settings = new MapSettings(new PropertyDefinitions(GenericCoverageSensor.properties()));
+ settings.setProperty(GenericCoverageSensor.OLD_REPORT_PATH_PROPERTY_KEY, "old.xml");
+ settings.setProperty(GenericCoverageSensor.OLD_COVERAGE_REPORT_PATHS_PROPERTY_KEY, "old1.xml,old2.xml");
+ settings.setProperty(GenericCoverageSensor.OLD_IT_COVERAGE_REPORT_PATHS_PROPERTY_KEY, "old3.xml,old4.xml,old.xml");
+ settings.setProperty(GenericCoverageSensor.OLD_OVERALL_COVERAGE_REPORT_PATHS_PROPERTY_KEY, "old5.xml,old6.xml");
+ new GenericCoverageSensor(settings).execute();
+ assertThat(logTester.logs(LoggerLevel.WARN)).contains(
+ "Property 'sonar.genericcoverage.reportPath' is deprecated. Please use 'sonar.coverageReportPaths' instead.",
+ "Property 'sonar.genericcoverage.reportPaths' is deprecated. Please use 'sonar.coverageReportPaths' instead.",
+ "Property 'sonar.genericcoverage.itReportPaths' is deprecated. Please use 'sonar.coverageReportPaths' instead.",
+ "Property 'sonar.genericcoverage.overallReportPaths' is deprecated. Please use 'sonar.coverageReportPaths' instead.");
+
+ assertThat(settings.getStringArray(GenericCoverageSensor.REPORT_PATHS_PROPERTY_KEY)).containsOnly(
+ "old.xml", "old1.xml", "old2.xml", "old3.xml", "old4.xml", "old5.xml", "old6.xml");
+ }
+
+}