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