aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src/main/java/org/sonar/batch
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2013-07-31 17:56:41 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2013-07-31 17:57:58 +0200
commit75406c2a365e04d3be42b61c329c48b3d13bc82d (patch)
tree40c3b6495c871abe88769ec5ed4a75f7f4f29dce /sonar-batch/src/main/java/org/sonar/batch
parent7a5ab75342d6c49feca5621d75035e9d136a2df0 (diff)
downloadsonarqube-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.java18
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());