diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2013-10-11 09:33:45 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2013-10-11 09:33:45 +0200 |
commit | 7855fc19668960fd2e30d49ae5dd46feac943b90 (patch) | |
tree | 0a3f437187c3847e8d260af79b0f047ac3cdb4cc /sonar-batch | |
parent | d3651a139e3a66b4e9260c1ab1d334779804e3b1 (diff) | |
download | sonarqube-7855fc19668960fd2e30d49ae5dd46feac943b90.tar.gz sonarqube-7855fc19668960fd2e30d49ae5dd46feac943b90.zip |
SONAR-2657 support plugins that declare several times the same file extension
Diffstat (limited to 'sonar-batch')
-rw-r--r-- | sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageRecognizer.java | 2 | ||||
-rw-r--r-- | sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/LanguageRecognizerTest.java | 27 |
2 files changed, 28 insertions, 1 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageRecognizer.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageRecognizer.java index e5c6ebc03fc..2214f24df1e 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageRecognizer.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageRecognizer.java @@ -53,7 +53,7 @@ public class LanguageRecognizer implements BatchComponent, Startable { String extension = sanitizeExtension(suffix); String s = byExtensions.get(extension); - if (s != null) { + if (s != null && !StringUtils.equals(s, language.getKey())) { throw new IllegalStateException(String.format( "File extension '%s' is declared by two languages: %s and %s", extension, s, language.getKey() )); diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/LanguageRecognizerTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/LanguageRecognizerTest.java index c4eab635eeb..dbba4e17311 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/LanguageRecognizerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/LanguageRecognizerTest.java @@ -82,6 +82,31 @@ public class LanguageRecognizerTest { } } + @Test + public void plugin_can_declare_a_file_extension_twice_for_case_sensitivity() throws Exception { + Language[] languages = new Language[]{new Language() { + @Override + public String getKey() { + return "abap"; + } + + @Override + public String getName() { + return "ABAP"; + } + + @Override + public String[] getFileSuffixes() { + return new String[]{"abap", "ABAP"}; + } + }}; + + LanguageRecognizer recognizer = new LanguageRecognizer(languages); + recognizer.start(); + assertThat(recognizer.of(temp.newFile("abc.abap"))).isEqualTo("abap"); + + } + static class Cobol implements Language { @Override public String getKey() { @@ -98,4 +123,6 @@ public class LanguageRecognizerTest { return new String[]{"cbl", "cob"}; } } + + } |