diff options
author | simonbrandhof <simon.brandhof@gmail.com> | 2011-12-20 20:56:20 +0100 |
---|---|---|
committer | simonbrandhof <simon.brandhof@gmail.com> | 2011-12-20 20:56:20 +0100 |
commit | 3abd667d979c3899a4f529a6e0dbf0e0dddb8245 (patch) | |
tree | 6c054804a5e0a631ab0ad76a8294cd43b1019b81 /sonar-batch/src/main/java/org/sonar/batch/bootstrap | |
parent | 44096503cea425a43632dfa3e58da2cc1d28a35b (diff) | |
download | sonarqube-3abd667d979c3899a4f529a6e0dbf0e0dddb8245.tar.gz sonarqube-3abd667d979c3899a4f529a6e0dbf0e0dddb8245.zip |
SONAR-2968 Do not force to add the root project to the property sonar.includedModules
Diffstat (limited to 'sonar-batch/src/main/java/org/sonar/batch/bootstrap')
-rw-r--r-- | sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectFilter.java | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectFilter.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectFilter.java index 5ecf6606dc0..e1e5c4d1fcc 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectFilter.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectFilter.java @@ -21,6 +21,7 @@ package org.sonar.batch.bootstrap; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; +import org.slf4j.LoggerFactory; import org.sonar.api.config.Settings; import org.sonar.api.resources.Project; @@ -40,7 +41,7 @@ public class ProjectFilter { public boolean isExcluded(Project project) { Project p = project; while (p != null) { - if (isExcluded(getArtifactId(p))) { + if (isExcludedModule(getArtifactId(p), p.isRoot())) { return true; } p = p.getParent(); @@ -48,14 +49,21 @@ public class ProjectFilter { return false; } - private boolean isExcluded(String artifactId) { + private boolean isExcludedModule(String artifactId, boolean isRoot) { String[] includedArtifactIds = settings.getStringArray("sonar.includedModules"); - - if (includedArtifactIds.length > 0) { - return !ArrayUtils.contains(includedArtifactIds, artifactId); + boolean excluded = false; + if (!isRoot && includedArtifactIds.length > 0) { + excluded = !ArrayUtils.contains(includedArtifactIds, artifactId); + } + if (!excluded) { + String[] excludedArtifactIds = settings.getStringArray("sonar.skippedModules"); + excluded = ArrayUtils.contains(excludedArtifactIds, artifactId); + } + if (excluded && isRoot) { + LoggerFactory.getLogger(getClass()).warn("The root module can't be excluded: " + artifactId); + excluded = false; } - String[] excludedArtifactIds = settings.getStringArray("sonar.skippedModules"); - return ArrayUtils.contains(excludedArtifactIds, artifactId); + return excluded; } // TODO see http://jira.codehaus.org/browse/SONAR-2324 |