diff options
author | simonbrandhof <simon.brandhof@gmail.com> | 2010-09-26 21:46:58 +0000 |
---|---|---|
committer | simonbrandhof <simon.brandhof@gmail.com> | 2010-09-26 21:46:58 +0000 |
commit | 36e81898a5a6e2b2029a2279a257d2ac06345f73 (patch) | |
tree | b52bf836e5698b1e4f2df79b2d144ad8e23ea64e /sonar-batch | |
parent | 1723690eeb56a709c9ba87c0be94117186cead2a (diff) | |
download | sonarqube-36e81898a5a6e2b2029a2279a257d2ac06345f73.tar.gz sonarqube-36e81898a5a6e2b2029a2279a257d2ac06345f73.zip |
SONAR-1711 Allow to exclude sources from code analysis based on cutoff date
Diffstat (limited to 'sonar-batch')
8 files changed, 22 insertions, 12 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/ProjectBuilder.java b/sonar-batch/src/main/java/org/sonar/batch/MavenProjectBuilder.java index 3389db5e268..3feb2258463 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/ProjectBuilder.java +++ b/sonar-batch/src/main/java/org/sonar/batch/MavenProjectBuilder.java @@ -36,11 +36,11 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; -public class ProjectBuilder { +public class MavenProjectBuilder { private DatabaseSession databaseSession; - public ProjectBuilder(DatabaseSession databaseSession) { + public MavenProjectBuilder(DatabaseSession databaseSession) { this.databaseSession = databaseSession; } diff --git a/sonar-batch/src/main/java/org/sonar/batch/ProjectBatch.java b/sonar-batch/src/main/java/org/sonar/batch/ProjectBatch.java index fbe69040a35..eb0f9b18db8 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/ProjectBatch.java +++ b/sonar-batch/src/main/java/org/sonar/batch/ProjectBatch.java @@ -22,13 +22,14 @@ package org.sonar.batch; import org.picocontainer.Characteristics; import org.picocontainer.MutablePicoContainer; import org.sonar.api.batch.BatchExtensionDictionnary; +import org.sonar.api.batch.FileFilter; import org.sonar.api.batch.ProjectClasspath; -import org.sonar.api.batch.ResourceCreationLock; import org.sonar.api.batch.SensorContext; import org.sonar.api.database.DatabaseSession; import org.sonar.api.measures.CoreMetrics; import org.sonar.api.measures.Metric; import org.sonar.api.measures.Metrics; +import org.sonar.api.resources.DefaultProjectFileSystem; import org.sonar.api.resources.Languages; import org.sonar.api.resources.Project; import org.sonar.api.rules.DefaultRulesManager; @@ -38,6 +39,8 @@ import org.sonar.core.qualitymodel.DefaultModelFinder; import org.sonar.core.rule.DefaultRuleFinder; import org.sonar.jpa.dao.*; +import java.util.List; + public class ProjectBatch { private MutablePicoContainer globalContainer; @@ -98,8 +101,15 @@ public class ProjectBatch { batchContainer.start(); // post-initializations + prepareProject(project, index); + } + + private void prepareProject(Project project, DefaultSonarIndex index) { project.setLanguage(getComponent(Languages.class).get(project.getLanguageKey())); index.selectProject(project, getComponent(ResourceFilters.class), getComponent(ViolationFilters.class), getComponent(MeasuresDao.class), getComponent(ViolationsDao.class)); + + List<FileFilter> fileFilters = batchContainer.getComponents(FileFilter.class); + ((DefaultProjectFileSystem)project.getFileSystem()).addFileFilters(fileFilters); } private void loadCoreComponents(MutablePicoContainer container) { @@ -122,7 +132,7 @@ public class ProjectBatch { try { globalContainer.removeChildContainer(batchContainer); batchContainer.stop(); - batchContainer=null; + batchContainer = null; } catch (Exception e) { // do not log } diff --git a/sonar-batch/src/main/java/org/sonar/batch/ProjectTree.java b/sonar-batch/src/main/java/org/sonar/batch/ProjectTree.java index 497c4656f58..e586106b310 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/ProjectTree.java +++ b/sonar-batch/src/main/java/org/sonar/batch/ProjectTree.java @@ -35,17 +35,17 @@ public class ProjectTree { private List<Project> projects; private List<MavenProject> poms; - private ProjectBuilder projectBuilder; + private MavenProjectBuilder projectBuilder; public ProjectTree(MavenSession mavenSession, DatabaseSession databaseSession) { this.poms = mavenSession.getSortedProjects(); - this.projectBuilder = new ProjectBuilder(databaseSession); + this.projectBuilder = new MavenProjectBuilder(databaseSession); } /** * for unit tests */ - protected ProjectTree(ProjectBuilder projectBuilder, List<MavenProject> poms) { + protected ProjectTree(MavenProjectBuilder projectBuilder, List<MavenProject> poms) { this.projectBuilder = projectBuilder; this.poms = poms; } diff --git a/sonar-batch/src/test/java/org/sonar/batch/ProjectBuilderTest.java b/sonar-batch/src/test/java/org/sonar/batch/MavenProjectBuilderTest.java index 586edaa9300..a35b692270a 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/ProjectBuilderTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/MavenProjectBuilderTest.java @@ -35,13 +35,13 @@ import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -public class ProjectBuilderTest extends AbstractDbUnitTestCase { +public class MavenProjectBuilderTest extends AbstractDbUnitTestCase { - private ProjectBuilder builder = null; + private MavenProjectBuilder builder = null; @Before public void before() { - builder = new ProjectBuilder(getSession()); + builder = new MavenProjectBuilder(getSession()); } @Test diff --git a/sonar-batch/src/test/java/org/sonar/batch/ProjectTreeTest.java b/sonar-batch/src/test/java/org/sonar/batch/ProjectTreeTest.java index 8473b959f3d..8030c946b19 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/ProjectTreeTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/ProjectTreeTest.java @@ -203,7 +203,7 @@ public class ProjectTreeTest extends AbstractDbUnitTestCase { return pom; } - private ProjectBuilder newProjectBuilder() { - return new ProjectBuilder(getSession()); + private MavenProjectBuilder newProjectBuilder() { + return new MavenProjectBuilder(getSession()); } } diff --git a/sonar-batch/src/test/resources/org/sonar/batch/ProjectBuilderTest/isLatestAnalysis.xml b/sonar-batch/src/test/resources/org/sonar/batch/MavenProjectBuilderTest/isLatestAnalysis.xml index 0d69b6587a4..0d69b6587a4 100644 --- a/sonar-batch/src/test/resources/org/sonar/batch/ProjectBuilderTest/isLatestAnalysis.xml +++ b/sonar-batch/src/test/resources/org/sonar/batch/MavenProjectBuilderTest/isLatestAnalysis.xml diff --git a/sonar-batch/src/test/resources/org/sonar/batch/ProjectBuilderTest/isLatestAnalysisIfNeverAnalysed.xml b/sonar-batch/src/test/resources/org/sonar/batch/MavenProjectBuilderTest/isLatestAnalysisIfNeverAnalysed.xml index 0eecd371324..0eecd371324 100644 --- a/sonar-batch/src/test/resources/org/sonar/batch/ProjectBuilderTest/isLatestAnalysisIfNeverAnalysed.xml +++ b/sonar-batch/src/test/resources/org/sonar/batch/MavenProjectBuilderTest/isLatestAnalysisIfNeverAnalysed.xml diff --git a/sonar-batch/src/test/resources/org/sonar/batch/ProjectBuilderTest/isNotLatestAnalysis.xml b/sonar-batch/src/test/resources/org/sonar/batch/MavenProjectBuilderTest/isNotLatestAnalysis.xml index 98d5825cc37..98d5825cc37 100644 --- a/sonar-batch/src/test/resources/org/sonar/batch/ProjectBuilderTest/isNotLatestAnalysis.xml +++ b/sonar-batch/src/test/resources/org/sonar/batch/MavenProjectBuilderTest/isNotLatestAnalysis.xml |