diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2013-10-14 14:25:10 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2013-10-14 14:25:18 +0200 |
commit | e6c502f4a6b9ccebbfd332aa337e4c8863ae7e49 (patch) | |
tree | 05580dbfe1a6fe43d88bb00289e8b8978f9d972f /sonar-batch/src/main/java/org/sonar/batch/scan/filesystem | |
parent | 0b0735751e88ee196340d3de7f456a8120038575 (diff) | |
download | sonarqube-e6c502f4a6b9ccebbfd332aa337e4c8863ae7e49.tar.gz sonarqube-e6c502f4a6b9ccebbfd332aa337e4c8863ae7e49.zip |
Remove support of <UNSET> file extensions (postponed)
Diffstat (limited to 'sonar-batch/src/main/java/org/sonar/batch/scan/filesystem')
-rw-r--r-- | sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageRecognizer.java | 17 |
1 files changed, 12 insertions, 5 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 6357ee744ea..fa8d7bbcf72 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 @@ -39,8 +39,6 @@ import java.util.Set; */ public class LanguageRecognizer implements BatchComponent, Startable { - static final String NO_EXTENSION = "<UNSET>"; - private final Project project; private final Language[] languages; @@ -49,6 +47,13 @@ public class LanguageRecognizer implements BatchComponent, Startable { */ private SetMultimap<String, String> langsByExtension = HashMultimap.create(); + /** + * Some plugins, like web and cobol, can analyze all the source files, whatever + * their file extension. This behavior is kept for backward-compatibility, + * but it should be fixed with future multi-language support. + */ + private boolean ignoreFileExtension = false; + public LanguageRecognizer(Project project, Language[] languages) { this.project = project; this.languages = languages; @@ -57,8 +62,8 @@ public class LanguageRecognizer implements BatchComponent, Startable { @Override public void start() { for (Language language : languages) { - if (language.getFileSuffixes().length == 0) { - langsByExtension.put(NO_EXTENSION, language.getKey()); + if (language.getFileSuffixes().length == 0 && language.getKey().equals(project.getLanguageKey())) { + ignoreFileExtension = true; } else { for (String suffix : language.getFileSuffixes()) { @@ -90,9 +95,11 @@ public class LanguageRecognizer implements BatchComponent, Startable { @CheckForNull String of(File file) { + if (ignoreFileExtension) { + return project.getLanguageKey(); + } // multi-language is not supported yet. Filter on project language String extension = sanitizeExtension(FilenameUtils.getExtension(file.getName())); - extension = StringUtils.defaultIfBlank(extension, NO_EXTENSION); Set<String> langs = langsByExtension.get(extension); return langs.contains(project.getLanguageKey()) ? project.getLanguageKey() : null; } |