diff options
author | Fabrice Bellingard <fabrice.bellingard@sonarsource.com> | 2013-02-18 11:27:19 +0100 |
---|---|---|
committer | Fabrice Bellingard <fabrice.bellingard@sonarsource.com> | 2013-02-18 11:27:19 +0100 |
commit | dae9ef9559ba41d07cce87db1c5ca11fc43fecad (patch) | |
tree | a1c19bb827044b90f1280c4fb9ced0fab524794e /plugins/sonar-cpd-plugin | |
parent | 6723d2eacd59bc102b4133b9c8c76e82d9dad7a4 (diff) | |
download | sonarqube-dae9ef9559ba41d07cce87db1c5ca11fc43fecad.tar.gz sonarqube-dae9ef9559ba41d07cce87db1c5ca11fc43fecad.zip |
SONAR-3108 Log exclusions when defined
Diffstat (limited to 'plugins/sonar-cpd-plugin')
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)); |