diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2016-10-27 11:04:12 +0200 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2016-10-27 11:05:40 +0200 |
commit | bff5ec56cab23c5a8a59575ea20443230cdfe7ef (patch) | |
tree | ec450d141c3a5aa90fc84b3b5824c1fb62d8f676 /sonar-scanner-engine | |
parent | 263d54549782fc443c66cf2c483851906bcdb1fb (diff) | |
download | sonarqube-bff5ec56cab23c5a8a59575ea20443230cdfe7ef.tar.gz sonarqube-bff5ec56cab23c5a8a59575ea20443230cdfe7ef.zip |
SONAR-8310 Added missing deprecation warning
Diffstat (limited to 'sonar-scanner-engine')
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"); + } + +} |