aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2013-10-14 14:25:10 +0200
committerSimon Brandhof <simon.brandhof@gmail.com>2013-10-14 14:25:18 +0200
commite6c502f4a6b9ccebbfd332aa337e4c8863ae7e49 (patch)
tree05580dbfe1a6fe43d88bb00289e8b8978f9d972f /sonar-batch/src/main/java/org/sonar/batch/scan/filesystem
parent0b0735751e88ee196340d3de7f456a8120038575 (diff)
downloadsonarqube-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.java17
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;
}