]> source.dussan.org Git - sonarqube.git/commitdiff
Do not cache file exclusions
authorSimon Brandhof <simon.brandhof@gmail.com>
Tue, 19 Feb 2013 14:24:51 +0000 (15:24 +0100)
committerSimon Brandhof <simon.brandhof@gmail.com>
Tue, 19 Feb 2013 14:25:12 +0000 (15:25 +0100)
sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilters.java

index 07f49377bac7eab267b19484d85231c797e5c112..7122f7a706f328ac8a2e1685d0744efec1279470 100644 (file)
@@ -32,25 +32,17 @@ import org.sonar.api.scan.filesystem.FileType;
 import java.io.File;
 
 public class ExclusionFilters implements FileSystemFilter, ResourceFilter, BatchComponent {
-  private final PathPattern[] sourceInclusions;
-  private final PathPattern[] testInclusions;
-  private final PathPattern[] sourceExclusions;
-  private final PathPattern[] testExclusions;
+  private final FileExclusions exclusionSettings;
 
   public ExclusionFilters(FileExclusions exclusions) {
-    sourceInclusions = PathPattern.create(exclusions.sourceInclusions());
-    log("Included sources: ", sourceInclusions);
-
-    sourceExclusions = PathPattern.create(exclusions.sourceExclusions());
-    log("Excluded sources: ", sourceExclusions);
-
-    testInclusions = PathPattern.create(exclusions.testInclusions());
-    log("Included tests: ", testInclusions);
-
-    testExclusions = PathPattern.create(exclusions.testExclusions());
-    log("Excluded tests: ", testExclusions);
+    this.exclusionSettings = exclusions;
+    log("Included sources: ", sourceInclusions());
+    log("Excluded sources: ", sourceExclusions());
+    log("Included tests: ", testInclusions());
+    log("Excluded tests: ", testExclusions());
   }
 
+
   private void log(String title, PathPattern[] patterns) {
     if (patterns.length > 0) {
       Logger log = LoggerFactory.getLogger(ExclusionFilters.class);
@@ -62,7 +54,7 @@ public class ExclusionFilters implements FileSystemFilter, ResourceFilter, Batch
   }
 
   public boolean accept(File file, Context context) {
-    PathPattern[] inclusionPatterns = (context.type() == FileType.TEST ? testInclusions : sourceInclusions);
+    PathPattern[] inclusionPatterns = (context.type() == FileType.TEST ? testInclusions() : sourceInclusions());
     if (inclusionPatterns.length > 0) {
       boolean matchInclusion = false;
       for (PathPattern pattern : inclusionPatterns) {
@@ -72,7 +64,7 @@ public class ExclusionFilters implements FileSystemFilter, ResourceFilter, Batch
         return false;
       }
     }
-    PathPattern[] exclusionPatterns = (context.type() == FileType.TEST ? testExclusions : sourceExclusions);
+    PathPattern[] exclusionPatterns = (context.type() == FileType.TEST ? testExclusions() : sourceExclusions());
     for (PathPattern pattern : exclusionPatterns) {
       if (pattern.match(context)) {
         return false;
@@ -83,11 +75,11 @@ public class ExclusionFilters implements FileSystemFilter, ResourceFilter, Batch
 
   public boolean isIgnored(Resource resource) {
     if (ResourceUtils.isFile(resource)) {
-      PathPattern[] inclusionPatterns = (ResourceUtils.isUnitTestClass(resource) ? testInclusions : sourceInclusions);
+      PathPattern[] inclusionPatterns = (ResourceUtils.isUnitTestClass(resource) ? testInclusions() : sourceInclusions());
       if (isIgnoredByInclusions(resource, inclusionPatterns)) {
         return true;
       }
-      PathPattern[] exclusionPatterns = (ResourceUtils.isUnitTestClass(resource) ? testExclusions : sourceExclusions);
+      PathPattern[] exclusionPatterns = (ResourceUtils.isUnitTestClass(resource) ? testExclusions() : sourceExclusions());
       return isIgnoredByExclusions(resource, exclusionPatterns);
     }
     return false;
@@ -120,18 +112,18 @@ public class ExclusionFilters implements FileSystemFilter, ResourceFilter, Batch
   }
 
   PathPattern[] sourceInclusions() {
-    return sourceInclusions;
+    return PathPattern.create(exclusionSettings.sourceInclusions());
   }
 
   PathPattern[] testInclusions() {
-    return testInclusions;
+    return PathPattern.create(exclusionSettings.testInclusions());
   }
 
   PathPattern[] sourceExclusions() {
-    return sourceExclusions;
+    return PathPattern.create(exclusionSettings.sourceExclusions());
   }
 
   PathPattern[] testExclusions() {
-    return testExclusions;
+    return PathPattern.create(exclusionSettings.testExclusions());
   }
 }