aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/sonar-squid-java-plugin/src
diff options
context:
space:
mode:
authorGodin <mandrikov@gmail.com>2010-11-03 14:42:22 +0000
committerGodin <mandrikov@gmail.com>2010-11-03 14:42:22 +0000
commit3cd3e807f4b55c51362290885398cba067812699 (patch)
tree194e191d47c118c6c383814e5535a2f04089702c /plugins/sonar-squid-java-plugin/src
parentce0caddad67119edc47fd5509720e78fcd5e3da7 (diff)
downloadsonarqube-3cd3e807f4b55c51362290885398cba067812699.tar.gz
sonarqube-3cd3e807f4b55c51362290885398cba067812699.zip
Use ProjectClasspath instead of custom filtering in sonar-squid-java-plugin
Diffstat (limited to 'plugins/sonar-squid-java-plugin/src')
-rw-r--r--plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/SquidSensor.java53
1 files changed, 10 insertions, 43 deletions
diff --git a/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/SquidSensor.java b/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/SquidSensor.java
index e2f58dca855..5abb4f50b67 100644
--- a/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/SquidSensor.java
+++ b/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/SquidSensor.java
@@ -20,29 +20,18 @@
package org.sonar.plugins.squid;
import org.apache.commons.io.FileUtils;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.artifact.filter.collection.FilterArtifacts;
-import org.apache.maven.shared.artifact.filter.collection.ProjectTransitivityFilter;
-import org.apache.maven.shared.artifact.filter.collection.ScopeFilter;
import org.sonar.api.CoreProperties;
-import org.sonar.api.batch.DependedUpon;
-import org.sonar.api.batch.Phase;
-import org.sonar.api.batch.Sensor;
-import org.sonar.api.batch.SensorContext;
+import org.sonar.api.batch.*;
import org.sonar.api.checks.AnnotationCheckFactory;
import org.sonar.api.checks.NoSonarFilter;
import org.sonar.api.profiles.RulesProfile;
import org.sonar.api.resources.Java;
import org.sonar.api.resources.Project;
-import org.sonar.api.utils.SonarException;
import java.io.File;
import java.nio.charset.Charset;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import java.util.Set;
@Phase(name = Phase.Name.PRE)
/* TODO is the flag still used ? */
@@ -52,11 +41,13 @@ public class SquidSensor implements Sensor {
private SquidSearchProxy proxy;
private NoSonarFilter noSonarFilter;
private RulesProfile profile;
+ private ProjectClasspath projectClasspath;
- public SquidSensor(RulesProfile profile, SquidSearchProxy proxy, NoSonarFilter noSonarFilter) {
+ public SquidSensor(RulesProfile profile, SquidSearchProxy proxy, NoSonarFilter noSonarFilter, ProjectClasspath projectClasspath) {
this.proxy = proxy;
this.noSonarFilter = noSonarFilter;
this.profile = profile;
+ this.projectClasspath = projectClasspath;
}
public boolean shouldExecuteOnProject(Project project) {
@@ -84,38 +75,15 @@ public class SquidSensor implements Sensor {
return project.getFileSystem().getJavaSourceFiles();
}
- /**
- * TODO replace this code by org.sonar.api.batch.ProjectClasspath
- *
- * @return Collection of java.util.File
- */
private Collection<File> getBytecodeFiles(Project project) {
- try {
- Collection<File> bytecodeFiles = new ArrayList<File>();
- if (hasProjectBytecodeFiles(project)) {
- File classesDir = project.getFileSystem().getBuildOutputDir();
- if (classesDir != null && classesDir.exists()) {
- bytecodeFiles.add(classesDir);
- }
-
- MavenProject mavenProject = project.getPom();
- FilterArtifacts filters = new FilterArtifacts();
- filters.addFilter(new ProjectTransitivityFilter(mavenProject.getDependencyArtifacts(), false));
-
- // IMPORTANT : the following annotation must be aded to BatchMojo : @requiresDependencyResolution test
- // => Include scopes compile and provided, exclude scopes test, system and runtime
- filters.addFilter(new ScopeFilter("compile", ""));
- Set<Artifact> artifacts = mavenProject.getArtifacts();
- artifacts = filters.filter(artifacts);
- for (Artifact a : artifacts) {
- bytecodeFiles.add(a.getFile());
- }
+ Collection<File> bytecodeFiles = projectClasspath.getElements();
+ if ( !hasProjectBytecodeFiles(project)) {
+ File classesDir = project.getFileSystem().getBuildOutputDir();
+ if (classesDir != null && classesDir.exists()) {
+ bytecodeFiles.remove(classesDir);
}
- return bytecodeFiles;
-
- } catch (Exception e) {
- throw new SonarException(e);
}
+ return bytecodeFiles;
}
private boolean hasProjectBytecodeFiles(Project project) {
@@ -127,7 +95,6 @@ public class SquidSensor implements Sensor {
}
}
return false;
-
}
@Override