aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileEventsSensor.java2
-rw-r--r--plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileSensor.java2
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java2
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java16
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java10
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java4
-rw-r--r--plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java20
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java4
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/RulesProfileWrapper.java11
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java2
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java8
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/language/DefaultModuleLanguages.java7
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/ModuleLanguages.java4
13 files changed, 43 insertions, 49 deletions
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileEventsSensor.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileEventsSensor.java
index 3fd3d0a9ed7..5771b1a9327 100644
--- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileEventsSensor.java
+++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileEventsSensor.java
@@ -53,7 +53,7 @@ public class ProfileEventsSensor implements Sensor {
public void analyse(Project project, SensorContext context) {
RulesProfileWrapper profileWrapper = (RulesProfileWrapper) profile;
- for (String languageKey : moduleLanguages.getModuleLanguageKeys()) {
+ for (String languageKey : moduleLanguages.keys()) {
RulesProfile realProfile = profileWrapper.getProfileByLanguage(languageKey);
Measure pastProfileMeasure = getPreviousMeasure(project, CoreMetrics.PROFILE);
if (pastProfileMeasure == null) {
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileSensor.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileSensor.java
index e507f27ec9a..ffff3ae321d 100644
--- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileSensor.java
+++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ProfileSensor.java
@@ -48,7 +48,7 @@ public class ProfileSensor implements Sensor {
public void analyse(Project project, SensorContext context) {
RulesProfileWrapper wrapper = (RulesProfileWrapper) profile;
- for (String languageKey : languages.getModuleLanguageKeys()) {
+ for (String languageKey : languages.keys()) {
RulesProfile realProfile = wrapper.getProfileByLanguage(languageKey);
Measure measure = new Measure(CoreMetrics.PROFILE, profile.getName());
Measure measureVersion = new Measure(CoreMetrics.PROFILE_VERSION, Integer.valueOf(profile.getVersion()).doubleValue());
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java
index 0c336491884..3e221e1978c 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdEngine.java
@@ -27,7 +27,7 @@ import org.sonar.api.resources.Project;
public abstract class CpdEngine implements BatchExtension {
- abstract boolean isLanguageSupported(Language language);
+ abstract boolean isLanguageSupported(String language);
abstract void analyse(Project project, SensorContext context);
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java
index f9346aaffc3..f55f1215fef 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java
@@ -27,7 +27,6 @@ import org.sonar.api.batch.ModuleLanguages;
import org.sonar.api.batch.Sensor;
import org.sonar.api.batch.SensorContext;
import org.sonar.api.config.Settings;
-import org.sonar.api.resources.Language;
import org.sonar.api.resources.Project;
public class CpdSensor implements Sensor {
@@ -51,17 +50,16 @@ public class CpdSensor implements Sensor {
}
@VisibleForTesting
- CpdEngine getEngine(Language language) {
+ CpdEngine getEngine(String language) {
if (sonarEngine.isLanguageSupported(language)) {
return sonarEngine;
- } else {
- return sonarBridgeEngine;
}
+ return sonarBridgeEngine;
}
@VisibleForTesting
- boolean isSkipped(Language language) {
- String key = "sonar.cpd." + language.getKey() + ".skip";
+ boolean isSkipped(String language) {
+ String key = "sonar.cpd." + language + ".skip";
if (settings.hasKey(key)) {
return settings.getBoolean(key);
}
@@ -69,15 +67,15 @@ public class CpdSensor implements Sensor {
}
public void analyse(Project project, SensorContext context) {
- for (Language language : moduleLanguages.getModuleLanguages()) {
+ for (String language : moduleLanguages.keys()) {
if (isSkipped(language)) {
- LOG.info("Detection of duplicated code is skipped for {}.", language);
+ LOG.info("Detection of duplicated code is skipped for {}", language);
continue;
}
CpdEngine engine = getEngine(language);
if (!engine.isLanguageSupported(language)) {
- LOG.debug("Detection of duplicated code is not supported for {}.", language);
+ LOG.debug("Detection of duplicated code is not supported for {}", language);
continue;
}
LOG.info("{} is used for {}", engine, language);
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
index aa4bf2b4da6..9750b2fa206 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarBridgeEngine.java
@@ -42,6 +42,7 @@ import org.sonar.duplications.internal.pmd.TokenizerBridge;
import org.sonar.plugins.cpd.index.IndexFactory;
import org.sonar.plugins.cpd.index.SonarDuplicationsIndex;
+import javax.annotation.CheckForNull;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -76,7 +77,7 @@ public class SonarBridgeEngine extends CpdEngine {
}
@Override
- public boolean isLanguageSupported(Language language) {
+ public boolean isLanguageSupported(String language) {
return getMapping(language) != null;
}
@@ -90,7 +91,7 @@ public class SonarBridgeEngine extends CpdEngine {
return;
}
- CpdMapping mapping = getMapping(project.getLanguage());
+ CpdMapping mapping = getMapping(project.getLanguage().getKey());
// Create index
SonarDuplicationsIndex index = indexFactory.create(project);
@@ -167,10 +168,11 @@ public class SonarBridgeEngine extends CpdEngine {
return minimumTokens;
}
- private CpdMapping getMapping(Language language) {
+ @CheckForNull
+ private CpdMapping getMapping(String language) {
if (mappings != null) {
for (CpdMapping cpdMapping : mappings) {
- if (cpdMapping.getLanguage().equals(language)) {
+ if (cpdMapping.getLanguage().getKey().equals(language)) {
return cpdMapping;
}
}
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
index d82132e8d15..832b4e7ab82 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java
@@ -92,8 +92,8 @@ public class SonarEngine extends CpdEngine {
}
@Override
- public boolean isLanguageSupported(Language language) {
- return Java.KEY.equals(language.getKey());
+ public boolean isLanguageSupported(String language) {
+ return Java.KEY.equals(language);
}
@Override
diff --git a/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java b/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java
index 185bb6d6013..5fb30de0227 100644
--- a/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java
+++ b/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java
@@ -39,7 +39,6 @@ public class CpdSensorTest {
SonarBridgeEngine sonarBridgeEngine;
CpdSensor sensor;
Settings settings;
- private Language phpLanguage;
@Before
public void setUp() {
@@ -47,25 +46,18 @@ public class CpdSensorTest {
sonarEngine = new SonarEngine(indexFactory, null, null);
sonarBridgeEngine = new SonarBridgeEngine(indexFactory, null, null);
settings = new Settings(new PropertyDefinitions(CpdPlugin.class));
- phpLanguage = new AbstractLanguage("php", "PHP") {
-
- @Override
- public String[] getFileSuffixes() {
- return null;
- }
- };
sensor = new CpdSensor(sonarEngine, sonarBridgeEngine, settings, new DefaultModuleLanguages(settings, new Languages()));
}
@Test
public void test_global_skip() {
settings.setProperty("sonar.cpd.skip", true);
- assertThat(sensor.isSkipped(Java.INSTANCE)).isTrue();
+ assertThat(sensor.isSkipped(Java.KEY)).isTrue();
}
@Test
public void should_not_skip_by_default() {
- assertThat(sensor.isSkipped(Java.INSTANCE)).isFalse();
+ assertThat(sensor.isSkipped(Java.KEY)).isFalse();
}
@Test
@@ -73,14 +65,14 @@ public class CpdSensorTest {
settings.setProperty("sonar.cpd.skip", false);
settings.setProperty("sonar.cpd.php.skip", true);
- assertThat(sensor.isSkipped(phpLanguage)).isTrue();
- assertThat(sensor.isSkipped(Java.INSTANCE)).isFalse();
+ assertThat(sensor.isSkipped("php")).isTrue();
+ assertThat(sensor.isSkipped(Java.KEY)).isFalse();
}
@Test
public void test_engine() {
- assertThat(sensor.getEngine(Java.INSTANCE)).isSameAs(sonarEngine);
- assertThat(sensor.getEngine(phpLanguage)).isSameAs(sonarBridgeEngine);
+ assertThat(sensor.getEngine(Java.KEY)).isSameAs(sonarEngine);
+ assertThat(sensor.getEngine("PHP")).isSameAs(sonarBridgeEngine);
}
}
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 d9a59f93e54..78d625983c8 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/DefaultProfileLoader.java
@@ -51,7 +51,7 @@ public class DefaultProfileLoader implements ProfileLoader {
public RulesProfile load(Project module, Settings settings) {
- if (!moduleLanguages.getModuleLanguageKeys().isEmpty()) {
+ if (!moduleLanguages.keys().isEmpty()) {
return loadSingleProfile(settings);
}
@@ -89,7 +89,7 @@ public class DefaultProfileLoader implements ProfileLoader {
Map<String, RulesProfile> profilesPerLanguageKey = new HashMap<String, RulesProfile>();
// Single language is forced, load a single quality profile
- String languageKey = moduleLanguages.getModuleLanguageKeys().iterator().next();
+ String languageKey = moduleLanguages.keys().iterator().next();
String profileName = StringUtils.defaultIfBlank(
settings.getString("sonar.profile"),
diff --git a/sonar-batch/src/main/java/org/sonar/batch/RulesProfileWrapper.java b/sonar-batch/src/main/java/org/sonar/batch/RulesProfileWrapper.java
index 7f7c97714f0..416d2af87f5 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/RulesProfileWrapper.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/RulesProfileWrapper.java
@@ -33,7 +33,8 @@ import java.util.List;
import java.util.Map;
/**
- * This wrapper is used to try to preserver backward compatibility for plugins that used to depends on {@link RulesProfile}
+ * This wrapper is used to try to preserve backward compatibility for plugins that used to
+ * depends on {@link RulesProfile}
* @since 4.2
*/
public class RulesProfileWrapper extends RulesProfile {
@@ -54,10 +55,10 @@ public class RulesProfileWrapper extends RulesProfile {
}
private RulesProfile getSingleProfileOrFail() {
- if (moduleLanguages.getModuleLanguageKeys().size() != 1) {
+ if (moduleLanguages.keys().size() != 1) {
throw new SonarException("Please update your plugin to support multi-language analysis");
}
- return ruleProfilesPerLanguages.get(moduleLanguages.getModuleLanguageKeys().iterator().next());
+ return ruleProfilesPerLanguages.get(moduleLanguages.keys().iterator().next());
}
public RulesProfile getProfileByLanguage(String languageKey) {
@@ -71,12 +72,12 @@ public class RulesProfileWrapper extends RulesProfile {
@Override
public String getLanguage() {
- if (moduleLanguages.getModuleLanguageKeys().size() != 1) {
+ if (moduleLanguages.keys().size() != 1) {
// FIXME This is a hack for CommonChecksDecorator that call this method in its constructor
LOG.debug("Please update your plugin to support multi-language analysis", new SonarException("Please update your plugin to support multi-language analysis"));
return "";
}
- return ruleProfilesPerLanguages.get(moduleLanguages.getModuleLanguageKeys().iterator().next()).getLanguage();
+ return ruleProfilesPerLanguages.get(moduleLanguages.keys().iterator().next()).getLanguage();
}
@Override
diff --git a/sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java b/sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java
index 839777e110e..987a63f5146 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java
@@ -78,7 +78,7 @@ public class SensorsExecutor implements BatchComponent {
// For backward compatibility try to execute Sensor for each language until it is executed once (or never)
String oldLanguageKey = module.getLanguageKey();
Language oldLanguage = module.getLanguage();
- for (Language language : moduleLanguages.getModuleLanguages()) {
+ for (Language language : moduleLanguages.languages()) {
module.setLanguage(language);
module.getConfiguration().setProperty(CoreProperties.PROJECT_LANGUAGE_PROPERTY, language.getKey());
if (sensor.shouldExecuteOnProject(module)) {
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java
index 5751636f8dd..c1e97a05f56 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java
@@ -107,10 +107,10 @@ public class ComponentIndexer implements BatchComponent {
private void updateModuleLanguage() {
if (module.getId() != null) {
ResourceDto dto = resourceDao.getResource(module.getId());
- if (moduleLanguages.getModuleLanguageKeys().size() == 1) {
- dto.setLanguage(moduleLanguages.getModuleLanguageKeys().iterator().next());
- } else if (moduleLanguages.getModuleLanguageKeys().size() > 1) {
- dto.setLanguage(StringUtils.join(moduleLanguages.getModuleLanguageKeys(), ","));
+ if (moduleLanguages.keys().size() == 1) {
+ dto.setLanguage(moduleLanguages.keys().iterator().next());
+ } else if (moduleLanguages.keys().size() > 1) {
+ dto.setLanguage(StringUtils.join(moduleLanguages.keys(), ","));
} else {
dto.setLanguage("none");
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/language/DefaultModuleLanguages.java b/sonar-batch/src/main/java/org/sonar/batch/scan/language/DefaultModuleLanguages.java
index 638d1f4e63d..fecede739bb 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/language/DefaultModuleLanguages.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/language/DefaultModuleLanguages.java
@@ -26,6 +26,7 @@ import org.sonar.api.batch.ModuleLanguages;
import org.sonar.api.config.Settings;
import org.sonar.api.resources.Language;
import org.sonar.api.resources.Languages;
+import org.sonar.api.utils.MessageException;
import org.sonar.api.utils.SonarException;
import java.util.Collection;
@@ -51,7 +52,7 @@ public class DefaultModuleLanguages implements ModuleLanguages {
LOG.info("Language is forced to {}", languageKey);
Language language = languages.get(languageKey);
if (language == null) {
- throw new SonarException("You must install a plugin that supports the language key '" + languageKey + "'");
+ throw MessageException.of("You must install a plugin that supports the language key '" + languageKey + "'");
}
addLanguage(languageKey);
}
@@ -65,11 +66,11 @@ public class DefaultModuleLanguages implements ModuleLanguages {
moduleLanguages.put(languageKey, language);
}
- public Collection<String> getModuleLanguageKeys() {
+ public Collection<String> keys() {
return moduleLanguages.keySet();
}
- public Collection<Language> getModuleLanguages() {
+ public Collection<Language> languages() {
return moduleLanguages.values();
}
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/ModuleLanguages.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/ModuleLanguages.java
index 740eadfe83e..739e59a2e92 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/ModuleLanguages.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/ModuleLanguages.java
@@ -31,8 +31,8 @@ import java.util.Collection;
*/
public interface ModuleLanguages extends BatchExtension {
- Collection<String> getModuleLanguageKeys();
+ Collection<String> keys();
- Collection<Language> getModuleLanguages();
+ Collection<Language> languages();
}