aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch
diff options
context:
space:
mode:
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2013-09-13 15:04:41 +0200
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2013-09-13 15:08:55 +0200
commit3af09034934f3f7b3611fdfed6dd217c73c033e9 (patch)
tree3a5512cfee6c317cc35efd685b43e6a7191dbe32 /sonar-batch
parentc12be67f1851bc099e6343845d432f7543d0c632 (diff)
downloadsonarqube-3af09034934f3f7b3611fdfed6dd217c73c033e9.tar.gz
sonarqube-3af09034934f3f7b3611fdfed6dd217c73c033e9.zip
SONAR-766 Add exclusions for coverage
Introduce new API to filter measures before they are saved to context Implement a measure filter for code coverage measures Add configuration property for coverage exclusions
Diffstat (limited to 'sonar-batch')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java14
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java3
2 files changed, 14 insertions, 3 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java b/sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java
index 57c75b2551f..bc3c0424451 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java
@@ -19,6 +19,8 @@
*/
package org.sonar.batch;
+import org.sonar.core.measure.MeasurementFilters;
+
import org.sonar.api.batch.Event;
import org.sonar.api.batch.SensorContext;
import org.sonar.api.batch.SonarIndex;
@@ -40,10 +42,12 @@ public class DefaultSensorContext implements SensorContext {
private SonarIndex index;
private Project project;
+ private MeasurementFilters filters;
- public DefaultSensorContext(SonarIndex index, Project project) {
+ public DefaultSensorContext(SonarIndex index, Project project, MeasurementFilters filters) {
this.index = index;
this.project = project;
+ this.filters = filters;
}
public Project getProject() {
@@ -115,11 +119,15 @@ public class DefaultSensorContext implements SensorContext {
}
public Measure saveMeasure(Resource resource, Metric metric, Double value) {
- return index.addMeasure(resourceOrProject(resource), new Measure(metric, value));
+ return saveMeasure(resource, new Measure(metric, value));
}
public Measure saveMeasure(Resource resource, Measure measure) {
- return index.addMeasure(resourceOrProject(resource), measure);
+ if(filters.accept(resource, measure)) {
+ return index.addMeasure(resourceOrProject(resource), measure);
+ } else {
+ return measure;
+ }
}
public void saveViolation(Violation violation, boolean force) {
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java b/sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java
index 23a087ce155..0075238fd4e 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java
@@ -19,6 +19,8 @@
*/
package org.sonar.batch.scan;
+import org.sonar.core.measure.MeasurementFilters;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.BatchExtension;
@@ -104,6 +106,7 @@ public class ModuleScanContainer extends ComponentContainer {
DefaultTimeMachine.class,
ViolationFilters.class,
IssueFilters.class,
+ MeasurementFilters.class,
ResourceFilters.class,
DeprecatedJsonReport.class,
JsonReport.class,