]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1772: Use existing rules config
authorGodin <mandrikov@gmail.com>
Thu, 21 Oct 2010 10:59:03 +0000 (10:59 +0000)
committerGodin <mandrikov@gmail.com>
Thu, 21 Oct 2010 10:59:03 +0000 (10:59 +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/FindbugsConstants.java
plugins/sonar-findbugs-plugin/src/test/java/org/sonar/plugins/findbugs/FindbugsConfigurationTest.java [new file with mode: 0644]
plugins/sonar-findbugs-plugin/src/test/java/org/sonar/plugins/findbugs/FindbugsNativeSensorTest.java

index 84c3f49364ded83a6c2bb9f77c75bbadd781b64b..34e2699ba7ca8f0b19516a29c248e18d0a395d98 100644 (file)
@@ -63,17 +63,20 @@ public class FindbugsConfiguration implements BatchExtension {
         findbugsProject.addAuxClasspathEntry(file.getAbsolutePath());
       }
     }
-    findbugsProject.setCurrentWorkingDirectory(project.getFileSystem().getBuildDir());
+    findbugsProject.setCurrentWorkingDirectory(project.getFileSystem().getBasedir());
     return findbugsProject;
   }
 
-  private MavenPlugin getFindbugsMavenPlugin() {
+  protected MavenPlugin getFindbugsMavenPlugin() {
     return MavenPlugin.getPlugin(project.getPom(), MavenUtils.GROUP_ID_CODEHAUS_MOJO, "findbugs-maven-plugin");
   }
 
   public String saveIncludeConfigXml() throws IOException {
     if (project.getReuseExistingRulesConfig()) {
-      return getFindbugsMavenPlugin().getParameter("includeFilterFile");
+      String existingIncludeFilterConfig = getFindbugsMavenPlugin().getParameter("includeFilterFile");
+      if ( !StringUtils.isBlank(existingIncludeFilterConfig)) {
+        return existingIncludeFilterConfig;
+      }
     }
     StringWriter conf = new StringWriter();
     exporter.exportProfile(profile, conf);
@@ -82,7 +85,10 @@ public class FindbugsConfiguration implements BatchExtension {
 
   public String saveExcludeConfigXml() throws IOException {
     if (project.getReuseExistingRulesConfig()) {
-      return getFindbugsMavenPlugin().getParameter("excludeFilterFile");
+      String existingExcludeFilterConfig = getFindbugsMavenPlugin().getParameter("excludeFilterFile");
+      if ( !StringUtils.isBlank(existingExcludeFilterConfig)) {
+        return existingExcludeFilterConfig;
+      }
     }
     FindBugsFilter findBugsFilter = new FindBugsFilter();
     if (project.getExclusionPatterns() != null) {
index 69d72ee3e13c92ce24f82daa6f90f0304e2d84d8..9ca7b8de47afb8b2d9f567b28e836d4eabb0cf6e 100644 (file)
@@ -32,6 +32,6 @@ public final class FindbugsConstants {
    * @since 2.4
    */
   public static final String GENERATE_XML_KEY = "sonar.findbugs.generateXml";
-  public static final boolean GENERATE_XML_DEFAULT_VALUE = true; // TODO should be false
+  public static final boolean GENERATE_XML_DEFAULT_VALUE = true; // TODO should be false - see SONAR-1880
   public static final long FINDBUGS_TIMEOUT_DEFAULT_VALUE = 600000;
 }
diff --git a/plugins/sonar-findbugs-plugin/src/test/java/org/sonar/plugins/findbugs/FindbugsConfigurationTest.java b/plugins/sonar-findbugs-plugin/src/test/java/org/sonar/plugins/findbugs/FindbugsConfigurationTest.java
new file mode 100644 (file)
index 0000000..baef381
--- /dev/null
@@ -0,0 +1,30 @@
+package org.sonar.plugins.findbugs;
+
+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 static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+public class FindbugsConfigurationTest {
+  @Test
+  public void shouldReuseExistingRulesConfig() throws Exception {
+    Project project = mock(Project.class);
+    when(project.getReuseExistingRulesConfig()).thenReturn(true);
+
+    MavenPlugin plugin = new MavenPlugin(MavenUtils.GROUP_ID_CODEHAUS_MOJO, "findbugs-maven-plugin", "2.3.1");
+    plugin.setParameter("excludeFilterFile", "rules/exclude.xml");
+    plugin.setParameter("includeFilterFile", "rules/include.xml");
+
+    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"));
+  }
+}
index e07429aa93e03a7476fa3b3523299f2f3d71e176..907a5c7d83e4d7dd7b8fcb0edea6018d62c0b233 100644 (file)
@@ -1,15 +1,5 @@
 package org.sonar.plugins.findbugs;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.argThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 import org.apache.commons.configuration.Configuration;
 import org.apache.maven.project.MavenProject;
 import org.junit.Test;
@@ -25,6 +15,12 @@ import org.sonar.api.test.IsViolation;
 
 import java.io.File;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.*;
+
 public class FindbugsNativeSensorTest extends FindbugsTests {
 
   @Test
@@ -34,6 +30,14 @@ public class FindbugsNativeSensorTest extends FindbugsTests {
     assertTrue(sensor.shouldExecuteOnProject(project));
   }
 
+  @Test
+  public void shouldExecuteWhenReuseExistingRulesConfig() throws Exception {
+    FindbugsNativeSensor analyser = new FindbugsNativeSensor(RulesProfile.create(), new FindbugsRuleFinder(), null);
+    Project pom = createProject();
+    when(pom.getReuseExistingRulesConfig()).thenReturn(true);
+    assertTrue(analyser.shouldExecuteOnProject(pom));
+  }
+
   @Test
   public void shouldNotExecuteWhenNoRulesAreActive() throws Exception {
     FindbugsNativeSensor analyser = new FindbugsNativeSensor(RulesProfile.create(), new FindbugsRuleFinder(), null);