aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2013-08-01 09:16:06 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2013-08-01 09:16:06 +0200
commit102fcaa285b796f70f1c422267360118dec3dd05 (patch)
treedab45e49d9a1acd942873d5b18c476d6952e95f9
parent75406c2a365e04d3be42b61c329c48b3d13bc82d (diff)
downloadsonarqube-102fcaa285b796f70f1c422267360118dec3dd05.tar.gz
sonarqube-102fcaa285b796f70f1c422267360118dec3dd05.zip
SONAR-4515 Fix IoC dependency on Languages
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java6
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/ProfileLoader.java4
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/ProfileProvider.java5
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/DefaultProfileLoaderTest.java6
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/ProfileProviderTest.java10
5 files changed, 17 insertions, 14 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 2e6e064c4be..6554b60c029 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java
@@ -31,14 +31,12 @@ import org.sonar.jpa.dao.ProfilesDao;
public class DefaultProfileLoader implements ProfileLoader {
private ProfilesDao dao;
- private Languages languages;
- public DefaultProfileLoader(ProfilesDao dao, Languages languages) {
+ public DefaultProfileLoader(ProfilesDao dao) {
this.dao = dao;
- this.languages = languages;
}
- public RulesProfile load(Project project, Settings settings) {
+ public RulesProfile load(Project project, Settings settings, Languages languages) {
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() +
diff --git a/sonar-batch/src/main/java/org/sonar/batch/ProfileLoader.java b/sonar-batch/src/main/java/org/sonar/batch/ProfileLoader.java
index c844cef918f..10479d7d21c 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/ProfileLoader.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/ProfileLoader.java
@@ -21,13 +21,15 @@ package org.sonar.batch;
import org.sonar.api.config.Settings;
import org.sonar.api.profiles.RulesProfile;
+import org.sonar.api.resources.Languages;
import org.sonar.api.resources.Project;
public interface ProfileLoader {
/**
* Loads quality profile for specified project.
+ * @param languages remove this parameter when Languages is no more in scope ModuleScanContainer
*/
- RulesProfile load(Project project, Settings settings);
+ RulesProfile load(Project project, Settings settings, Languages languages);
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/ProfileProvider.java b/sonar-batch/src/main/java/org/sonar/batch/ProfileProvider.java
index cc34e85c299..e93a61b100c 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/ProfileProvider.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/ProfileProvider.java
@@ -24,6 +24,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.config.Settings;
import org.sonar.api.profiles.RulesProfile;
+import org.sonar.api.resources.Languages;
import org.sonar.api.resources.Project;
public class ProfileProvider extends ProviderAdapter {
@@ -32,9 +33,9 @@ public class ProfileProvider extends ProviderAdapter {
private RulesProfile profile;
- public RulesProfile provide(Project project, ProfileLoader profileLoader, Settings settings) {
+ public RulesProfile provide(Project project, ProfileLoader profileLoader, Settings settings, Languages languages) {
if (profile == null) {
- profile = profileLoader.load(project, settings);
+ profile = profileLoader.load(project, settings, languages);
LOG.info("Quality profile : {}", profile);
}
return profile;
diff --git a/sonar-batch/src/test/java/org/sonar/batch/DefaultProfileLoaderTest.java b/sonar-batch/src/test/java/org/sonar/batch/DefaultProfileLoaderTest.java
index 80e8bb1aff3..836effb1b03 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/DefaultProfileLoaderTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/DefaultProfileLoaderTest.java
@@ -69,7 +69,7 @@ public class DefaultProfileLoaderTest {
settings.setProperty("sonar.profile.java", "legacy profile");
when(dao.getProfile(Java.KEY, "legacy profile")).thenReturn(RulesProfile.create("legacy profile", "java"));
- RulesProfile profile = new DefaultProfileLoader(dao, languages).load(javaProject, settings);
+ RulesProfile profile = new DefaultProfileLoader(dao).load(javaProject, settings, languages);
assertThat(profile.getName()).isEqualTo("legacy profile");
}
@@ -81,7 +81,7 @@ public class DefaultProfileLoaderTest {
thrown.expect(SonarException.class);
thrown.expectMessage("Quality profile not found : unknown, language java");
- new DefaultProfileLoader(dao, languages).load(javaProject, settings);
+ new DefaultProfileLoader(dao).load(javaProject, settings, languages);
}
/**
@@ -93,7 +93,7 @@ public class DefaultProfileLoaderTest {
thrown.expect(SonarException.class);
thrown.expectMessage("You must install a plugin that supports the language 'cobol'. Supported language keys are: java, js");
- new DefaultProfileLoader(dao, languages).load(cobolProject, new Settings());
+ new DefaultProfileLoader(dao).load(cobolProject, new Settings(), languages);
}
private Project newProject(String language) {
diff --git a/sonar-batch/src/test/java/org/sonar/batch/ProfileProviderTest.java b/sonar-batch/src/test/java/org/sonar/batch/ProfileProviderTest.java
index 0a3f17cc0c8..7cc8ecddf80 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/ProfileProviderTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/ProfileProviderTest.java
@@ -22,6 +22,7 @@ package org.sonar.batch;
import org.junit.Test;
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 static org.hamcrest.Matchers.is;
@@ -40,11 +41,12 @@ public class ProfileProviderTest {
ProfileLoader loader = mock(ProfileLoader.class);
Project project = new Project("project");
RulesProfile profile = RulesProfile.create();
- when(loader.load(eq(project), any(Settings.class))).thenReturn(profile);
+ Languages languages = mock(Languages.class);
+ when(loader.load(eq(project), any(Settings.class), eq(languages))).thenReturn(profile);
- assertThat(provider.provide(project, loader, new Settings()), is(profile));
- assertThat(provider.provide(project, loader, new Settings()), is(profile));
- verify(loader).load(eq(project), any(Settings.class));
+ assertThat(provider.provide(project, loader, new Settings(), languages), is(profile));
+ assertThat(provider.provide(project, loader, new Settings(), languages), is(profile));
+ verify(loader).load(eq(project), any(Settings.class), eq(languages));
verifyNoMoreInteractions(loader);
}
}