aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/sonar-cpd-plugin
diff options
context:
space:
mode:
authorFabrice Bellingard <fabrice.bellingard@sonarsource.com>2013-02-18 11:27:19 +0100
committerFabrice Bellingard <fabrice.bellingard@sonarsource.com>2013-02-18 11:27:19 +0100
commitdae9ef9559ba41d07cce87db1c5ca11fc43fecad (patch)
treea1c19bb827044b90f1280c4fb9ced0fab524794e /plugins/sonar-cpd-plugin
parent6723d2eacd59bc102b4133b9c8c76e82d9dad7a4 (diff)
downloadsonarqube-dae9ef9559ba41d07cce87db1c5ca11fc43fecad.tar.gz
sonarqube-dae9ef9559ba41d07cce87db1c5ca11fc43fecad.zip
SONAR-3108 Log exclusions when defined
Diffstat (limited to 'plugins/sonar-cpd-plugin')
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java8
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java1
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java7
-rw-r--r--plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/SonarBridgeEngineTest.java17
4 files changed, 29 insertions, 4 deletions
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java
index 5836f1348e4..0b5f03ad4a8 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java
@@ -19,6 +19,8 @@
*/
package org.sonar.plugins.cpd;
+import com.google.common.base.Joiner;
+import org.slf4j.Logger;
import org.sonar.api.BatchExtension;
import org.sonar.api.batch.SensorContext;
import org.sonar.api.resources.Language;
@@ -30,6 +32,12 @@ public abstract class CpdEngine implements BatchExtension {
abstract void analyse(Project project, SensorContext context);
+ protected void logExclusions(String[] exclusions, Logger logger) {
+ if (exclusions.length > 0) {
+ logger.info("Exclusions applied to copy-paste detection: " + Joiner.on(",").join(exclusions));
+ }
+ }
+
@Override
public String toString() {
return getClass().getSimpleName();
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
index 0b05e83f4ad..181b8031518 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
@@ -83,6 +83,7 @@ public class SonarBridgeEngine extends CpdEngine {
@Override
public void analyse(Project project, SensorContext context) {
String[] cpdExclusions = settings.getStringArray(CoreProperties.CPD_EXCLUSIONS);
+ logExclusions(cpdExclusions, LOG);
List<File> sourceFiles = fileSystem.files(FileQuery.onSource().onLanguage(project.getLanguageKey()).withExclusions(cpdExclusions));
if (sourceFiles.isEmpty()) {
return;
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
index e9e4c589081..9f99584f2aa 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
@@ -19,16 +19,14 @@
*/
package org.sonar.plugins.cpd;
-import org.sonar.api.CoreProperties;
-
-import org.sonar.api.config.Settings;
-
import com.google.common.collect.Iterables;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.sonar.api.CoreProperties;
import org.sonar.api.batch.SensorContext;
+import org.sonar.api.config.Settings;
import org.sonar.api.database.model.ResourceModel;
import org.sonar.api.measures.CoreMetrics;
import org.sonar.api.measures.Measure;
@@ -113,6 +111,7 @@ public class SonarEngine extends CpdEngine {
@Override
public void analyse(Project project, SensorContext context) {
String[] cpdExclusions = settings.getStringArray(CoreProperties.CPD_EXCLUSIONS);
+ logExclusions(cpdExclusions, LOG);
List<File> sourceFiles = fileSystem.files(FileQuery.onSource().onLanguage(project.getLanguageKey()).withExclusions(cpdExclusions));
if (sourceFiles.isEmpty()) {
return;
diff --git a/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/SonarBridgeEngineTest.java b/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/SonarBridgeEngineTest.java
index 13f593c021f..a7cde907a0d 100644
--- a/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/SonarBridgeEngineTest.java
+++ b/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/SonarBridgeEngineTest.java
@@ -22,6 +22,7 @@ package org.sonar.plugins.cpd;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.junit.Before;
import org.junit.Test;
+import org.slf4j.Logger;
import org.sonar.api.CoreProperties;
import org.sonar.api.config.Settings;
import org.sonar.api.resources.Project;
@@ -29,6 +30,11 @@ import org.sonar.api.resources.Project;
import static org.fest.assertions.Assertions.assertThat;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
public class SonarBridgeEngineTest {
@@ -42,6 +48,17 @@ public class SonarBridgeEngineTest {
}
@Test
+ public void shouldLogExclusions() {
+ Logger logger = mock(Logger.class);
+ engine.logExclusions(new String[0], logger);
+ verify(logger, never()).info(anyString());
+
+ logger = mock(Logger.class);
+ engine.logExclusions(new String[] {"Foo*", "**/Bar*"}, logger);
+ verify(logger, times(1)).info("Exclusions applied to copy-paste detection: Foo*,**/Bar*");
+ }
+
+ @Test
public void shouldReturnDefaultBlockSize() {
assertThat(SonarBridgeEngine.getDefaultBlockSize("cobol"), is(30));
assertThat(SonarBridgeEngine.getDefaultBlockSize("natur"), is(20));