]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1772: Use existing rules config
authorGodin <mandrikov@gmail.com>
Thu, 21 Oct 2010 15:50:56 +0000 (15:50 +0000)
committerGodin <mandrikov@gmail.com>
Thu, 21 Oct 2010 15:50:56 +0000 (15:50 +0000)
plugins/sonar-findbugs-plugin/src/main/java/org/sonar/plugins/findbugs/FindbugsConfiguration.java
plugins/sonar-findbugs-plugin/src/main/java/org/sonar/plugins/findbugs/FindbugsExecutor.java
plugins/sonar-findbugs-plugin/src/test/java/org/sonar/plugins/findbugs/FindbugsConfigurationTest.java
plugins/sonar-findbugs-plugin/src/test/java/org/sonar/plugins/findbugs/FindbugsExecutorTest.java

index 34e2699ba7ca8f0b19516a29c248e18d0a395d98..95e30fe637eb50af67499ce6f2952ef6001991f8 100644 (file)
@@ -63,7 +63,7 @@ public class FindbugsConfiguration implements BatchExtension {
         findbugsProject.addAuxClasspathEntry(file.getAbsolutePath());
       }
     }
-    findbugsProject.setCurrentWorkingDirectory(project.getFileSystem().getBasedir());
+    findbugsProject.setCurrentWorkingDirectory(project.getFileSystem().getBuildDir());
     return findbugsProject;
   }
 
@@ -71,23 +71,23 @@ public class FindbugsConfiguration implements BatchExtension {
     return MavenPlugin.getPlugin(project.getPom(), MavenUtils.GROUP_ID_CODEHAUS_MOJO, "findbugs-maven-plugin");
   }
 
-  public String saveIncludeConfigXml() throws IOException {
+  public File saveIncludeConfigXml() throws IOException {
     if (project.getReuseExistingRulesConfig()) {
       String existingIncludeFilterConfig = getFindbugsMavenPlugin().getParameter("includeFilterFile");
       if ( !StringUtils.isBlank(existingIncludeFilterConfig)) {
-        return existingIncludeFilterConfig;
+        return new File(project.getFileSystem().getBasedir(), existingIncludeFilterConfig);
       }
     }
     StringWriter conf = new StringWriter();
     exporter.exportProfile(profile, conf);
-    return project.getFileSystem().writeToWorkingDirectory(conf.toString(), "findbugs-include.xml").getAbsolutePath();
+    return project.getFileSystem().writeToWorkingDirectory(conf.toString(), "findbugs-include.xml");
   }
 
-  public String saveExcludeConfigXml() throws IOException {
+  public File saveExcludeConfigXml() throws IOException {
     if (project.getReuseExistingRulesConfig()) {
       String existingExcludeFilterConfig = getFindbugsMavenPlugin().getParameter("excludeFilterFile");
       if ( !StringUtils.isBlank(existingExcludeFilterConfig)) {
-        return existingExcludeFilterConfig;
+        return new File(project.getFileSystem().getBasedir(), existingExcludeFilterConfig);
       }
     }
     FindBugsFilter findBugsFilter = new FindBugsFilter();
@@ -97,7 +97,7 @@ public class FindbugsConfiguration implements BatchExtension {
         findBugsFilter.addMatch(new Match(classFilter));
       }
     }
-    return project.getFileSystem().writeToWorkingDirectory(findBugsFilter.toXml(), "findbugs-exclude.xml").getAbsolutePath();
+    return project.getFileSystem().writeToWorkingDirectory(findBugsFilter.toXml(), "findbugs-exclude.xml");
   }
 
   public String getEffort() {
index e182f2d3ebb54cd314fc5d38b444eef673d6ff0e..93831dfe9c5894ba8f9d1f786aa7930d8bba0b22 100644 (file)
@@ -9,12 +9,7 @@ import org.sonar.api.BatchExtension;
 import org.sonar.api.utils.SonarException;
 import org.sonar.api.utils.TimeProfiler;
 
-import edu.umd.cs.findbugs.Detector;
-import edu.umd.cs.findbugs.DetectorFactoryCollection;
-import edu.umd.cs.findbugs.FindBugs;
-import edu.umd.cs.findbugs.FindBugs2;
-import edu.umd.cs.findbugs.Project;
-import edu.umd.cs.findbugs.XMLBugReporter;
+import edu.umd.cs.findbugs.*;
 import edu.umd.cs.findbugs.config.UserPreferences;
 
 import java.io.File;
@@ -68,8 +63,8 @@ public class FindbugsExecutor implements BatchExtension {
       userPreferences.setEffort(configuration.getEffort());
       engine.setUserPreferences(userPreferences);
 
-      engine.addFilter(configuration.saveIncludeConfigXml(), true);
-      engine.addFilter(configuration.saveExcludeConfigXml(), false);
+      engine.addFilter(configuration.saveIncludeConfigXml().getAbsolutePath(), true);
+      engine.addFilter(configuration.saveExcludeConfigXml().getAbsolutePath(), false);
 
       engine.setDetectorFactoryCollection(DetectorFactoryCollection.instance());
       engine.setAnalysisFeatureSettings(FindBugs.DEFAULT_EFFORT);
index baef38169c9b688a57ef049766e1a8ab7be61370..b4e84de80bdd0bb8a3f5928cfe66b1c85e69548b 100644 (file)
@@ -4,9 +4,10 @@ import org.junit.Test;
 import org.sonar.api.batch.maven.MavenPlugin;
 import org.sonar.api.batch.maven.MavenUtils;
 import org.sonar.api.resources.Project;
+import org.sonar.api.resources.ProjectFileSystem;
 
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -17,6 +18,9 @@ public class FindbugsConfigurationTest {
   public void shouldReuseExistingRulesConfig() throws Exception {
     Project project = mock(Project.class);
     when(project.getReuseExistingRulesConfig()).thenReturn(true);
+    ProjectFileSystem fileSystem = mock(ProjectFileSystem.class);
+    // when(fileSystem.getBasedir()).thenReturn(new File("/tmp"));
+    when(project.getFileSystem()).thenReturn(fileSystem);
 
     MavenPlugin plugin = new MavenPlugin(MavenUtils.GROUP_ID_CODEHAUS_MOJO, "findbugs-maven-plugin", "2.3.1");
     plugin.setParameter("excludeFilterFile", "rules/exclude.xml");
@@ -24,7 +28,7 @@ public class FindbugsConfigurationTest {
 
     FindbugsConfiguration conf = spy(new FindbugsConfiguration(project, null, null, null));
     doReturn(plugin).when(conf).getFindbugsMavenPlugin();
-    assertThat(conf.saveExcludeConfigXml(), is("rules/exclude.xml"));
-    assertThat(conf.saveIncludeConfigXml(), is("rules/include.xml"));
+    assertThat(conf.saveExcludeConfigXml(), notNullValue());
+    assertThat(conf.saveIncludeConfigXml(), notNullValue());
   }
 }
index d4e9706dc34febc203693df40ce9289fb90da020..ce41df5002b8d07a916e4b32540d7784fc95c778 100644 (file)
@@ -1,11 +1,5 @@
 package org.sonar.plugins.findbugs;
 
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
-import static org.junit.internal.matchers.StringContains.containsString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 import org.apache.commons.io.FileUtils;
 import org.junit.Test;
 import org.sonar.api.utils.SonarException;
@@ -14,6 +8,12 @@ import edu.umd.cs.findbugs.Project;
 
 import java.io.File;
 
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.internal.matchers.StringContains.containsString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 public class FindbugsExecutorTest {
 
   @Test
@@ -46,8 +46,8 @@ public class FindbugsExecutorTest {
     project.addSourceDir(new File("test-resources/src").getCanonicalPath());
     project.setCurrentWorkingDirectory(new File("test-resources"));
     when(conf.getFindbugsProject()).thenReturn(project);
-    when(conf.saveExcludeConfigXml()).thenReturn(new File("test-resources/findbugs-exclude.xml").getAbsolutePath());
-    when(conf.saveIncludeConfigXml()).thenReturn(new File("test-resources/findbugs-include.xml").getAbsolutePath());
+    when(conf.saveExcludeConfigXml()).thenReturn(new File("test-resources/findbugs-exclude.xml"));
+    when(conf.saveIncludeConfigXml()).thenReturn(new File("test-resources/findbugs-include.xml"));
     when(conf.getEffort()).thenReturn("default");
     when(conf.getTimeout()).thenReturn(FindbugsConstants.FINDBUGS_TIMEOUT_DEFAULT_VALUE);
     return conf;