Browse Source

SONAR-8310 Added missing deprecation warning

tags/6.2-RC1
Julien HENRY 7 years ago
parent
commit
bff5ec56ca

+ 16
- 11
sonar-scanner-engine/src/main/java/org/sonar/scanner/genericcoverage/GenericCoverageSensor.java View File

@@ -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();

+ 55
- 0
sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageSensorTest.java View File

@@ -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");
}

}

Loading…
Cancel
Save