diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2013-07-31 17:56:41 +0200 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2013-07-31 17:57:58 +0200 |
commit | 75406c2a365e04d3be42b61c329c48b3d13bc82d (patch) | |
tree | 40c3b6495c871abe88769ec5ed4a75f7f4f29dce /sonar-batch/src/main/java/org/sonar/batch | |
parent | 7a5ab75342d6c49feca5621d75035e9d136a2df0 (diff) | |
download | sonarqube-75406c2a365e04d3be42b61c329c48b3d13bc82d.tar.gz sonarqube-75406c2a365e04d3be42b61c329c48b3d13bc82d.zip |
SONAR-4515 Display all allowed values for sonar.languages when an invalid one is specified
Diffstat (limited to 'sonar-batch/src/main/java/org/sonar/batch')
-rw-r--r-- | sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java b/sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java index 4c349497bff..2e6e064c4be 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java +++ b/sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java @@ -19,9 +19,11 @@ */ package org.sonar.batch; +import com.google.common.base.Joiner; import org.apache.commons.lang.StringUtils; import org.sonar.api.config.Settings; import org.sonar.api.profiles.RulesProfile; +import org.sonar.api.resources.Languages; import org.sonar.api.resources.Project; import org.sonar.api.rules.ActiveRule; import org.sonar.api.utils.SonarException; @@ -29,22 +31,24 @@ import org.sonar.jpa.dao.ProfilesDao; public class DefaultProfileLoader implements ProfileLoader { private ProfilesDao dao; + private Languages languages; - public DefaultProfileLoader(ProfilesDao dao) { + public DefaultProfileLoader(ProfilesDao dao, Languages languages) { this.dao = dao; + this.languages = languages; } public RulesProfile load(Project project, Settings settings) { + if (!languages.allKey().contains(project.getLanguageKey())) { + String languageList = Joiner.on(", ").join(languages.allKey()); + throw new SonarException("You must install a plugin that supports the language '" + project.getLanguageKey() + + "'. Supported language keys are: " + languageList); + } + String profileName = StringUtils.defaultIfBlank( settings.getString("sonar.profile"), settings.getString("sonar.profile." + project.getLanguageKey())); - if (StringUtils.isBlank(profileName)) { - // This means that the current language is not supported by any installed plugin, otherwise at least a - // "Default <Language Name>" profile would have been created by ActivateDefaultProfiles class. - throw new SonarException("You must install a plugin that supports the language '" + project.getLanguageKey() + "'"); - } - RulesProfile profile = dao.getProfile(project.getLanguageKey(), profileName); if (profile == null) { throw new SonarException("Quality profile not found : " + profileName + ", language " + project.getLanguageKey()); |