]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3758 Add logs and SONAR-1078 Fix default test exclusions
authorDavid Gageot <david@gageot.net>
Mon, 8 Oct 2012 08:50:39 +0000 (10:50 +0200)
committerDavid Gageot <david@gageot.net>
Mon, 8 Oct 2012 08:50:49 +0000 (10:50 +0200)
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/batch/ProjectFileSystemLogger.java
sonar-plugin-api/src/main/java/org/sonar/api/CoreProperties.java
sonar-plugin-api/src/main/java/org/sonar/api/resources/Project.java
sonar-plugin-api/src/test/java/org/sonar/api/resources/ProjectTest.java

index 5476f7eb6f7301b44e2156df048e9754b1a41e9a..074d8d3873eb1f6a1b7c4f7b4237af58ea6ec1a1 100644 (file)
@@ -186,7 +186,7 @@ import java.util.List;
     description = "Exclude tests from code analysis. Applies to every project. Cannot be overriden. Changes will be applied during next code analysis.",
     multiValues = true,
     category = CoreProperties.CATEGORY_EXCLUSIONS,
-    defaultValue = "**/package-info.java"),
+    defaultValue = CoreProperties.GLOBAL_TEST_EXCLUSIONS_DEFAULT),
   @Property(
     key = CoreProperties.PROJECT_EXCLUSIONS_PROPERTY,
     name = "Exclusions",
index cab000d8d85b6682bb3e9668e75f6aaa54f4c7d7..3364e99b8f60d03586e41ec48d4731506414f742 100644 (file)
  */
 package org.sonar.plugins.core.batch;
 
-import java.util.Arrays;
-import java.util.List;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.sonar.api.batch.Initializer;
 import org.sonar.api.resources.Project;
 import org.sonar.api.resources.ProjectFileSystem;
 
-public class ProjectFileSystemLogger extends Initializer {
+import java.util.Arrays;
+import java.util.List;
 
+public class ProjectFileSystemLogger extends Initializer {
   private static final Logger LOG = LoggerFactory.getLogger(ProjectFileSystemLogger.class);
 
   @Override
   public void execute(Project project) {
-    String[] exclusionPatterns = project.getExclusionPatterns();
-    if (exclusionPatterns != null && exclusionPatterns.length > 0) {
-      LOG.info("Excluded sources: {}", Arrays.toString(exclusionPatterns));
-    }
+    logExclusionPatterns("Excluded sources: {}", project.getExclusionPatterns());
+    logExclusionPatterns("Excluded tests: {}", project.getTestExclusionPatterns());
+
     ProjectFileSystem projectFileSystem = project.getFileSystem();
     logDirectories("Source directories:", projectFileSystem.getSourceDirs());
     logDirectories("Test directories:", projectFileSystem.getTestDirs());
   }
 
+  private void logExclusionPatterns(String message, String[] exclusionPatterns) {
+    if (exclusionPatterns != null && exclusionPatterns.length > 0) {
+      LOG.info(message, Arrays.toString(exclusionPatterns));
+    }
+  }
+
   private void logDirectories(String name, List<java.io.File> dirs) {
     if (!dirs.isEmpty()) {
       LOG.info(name);
@@ -51,5 +55,4 @@ public class ProjectFileSystemLogger extends Initializer {
       }
     }
   }
-
 }
index 8bceb171ba2c032621299b1825d326bcd75ffeee..05e6c192ae857d2753bf30d51ed5601f28519486 100644 (file)
@@ -116,6 +116,7 @@ public interface CoreProperties {
   String PROJECT_TEST_EXCLUSIONS_PROPERTY = "sonar.test.exclusions";
   String GLOBAL_EXCLUSIONS_PROPERTY = "sonar.global.exclusions";
   String GLOBAL_TEST_EXCLUSIONS_PROPERTY = "sonar.global.test.exclusions";
+  String GLOBAL_TEST_EXCLUSIONS_DEFAULT = "**/package-info.java";
 
   /**
    * @deprecated since 2.5. See discussion from http://jira.codehaus.org/browse/SONAR-1873
index 46871a2aca2311a74e652476816ebf76e86396be..a7e8c7bd326b524c9dad7fc21e4cd6ca3fe9f533 100644 (file)
@@ -374,9 +374,14 @@ public class Project extends Resource {
    * @since 3.3
    */
   public String[] getTestExclusionPatterns() {
+    String[] globalTestExclusions = configuration.getStringArray(CoreProperties.GLOBAL_TEST_EXCLUSIONS_PROPERTY);
+    if (globalTestExclusions.length == 0) {
+      globalTestExclusions = new String[] {CoreProperties.GLOBAL_TEST_EXCLUSIONS_DEFAULT};
+    }
+
     return trimExclusions(ImmutableList.<String> builder()
         .add(configuration.getStringArray(CoreProperties.PROJECT_TEST_EXCLUSIONS_PROPERTY))
-        .add(configuration.getStringArray(CoreProperties.GLOBAL_TEST_EXCLUSIONS_PROPERTY)).build());
+        .add(globalTestExclusions).build());
   }
 
   // http://jira.codehaus.org/browse/SONAR-2261 - exclusion must be trimmed
index ae2d5151be76a3430e22d740c69db0f68243138b..81c3f209886c2e7e587892999a2e5cb3a55d7212 100644 (file)
@@ -72,6 +72,7 @@ public class ProjectTest {
     Project project = new Project("key").setConfiguration(conf);
 
     assertThat(project.getExclusionPatterns()).isEmpty();
+    assertThat(project.getTestExclusionPatterns()).containsOnly("**/package-info.java");
   }
 
   @Test