diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2011-10-10 15:18:04 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2011-10-10 15:18:32 +0200 |
commit | 29f7a1461d3c7e0c3f8d55d631825a63dc2848eb (patch) | |
tree | 9fb56c386dd79e210475fa8f05f56d0ee7529201 /sonar-batch/src/main/java | |
parent | a6dbac5f7371f918f826da69a3add4acddbd6206 (diff) | |
download | sonarqube-29f7a1461d3c7e0c3f8d55d631825a63dc2848eb.tar.gz sonarqube-29f7a1461d3c7e0c3f8d55d631825a63dc2848eb.zip |
SONAR-2861 fix loading of the property sonar.core.codeCoveragePlugin
Diffstat (limited to 'sonar-batch/src/main/java')
4 files changed, 20 insertions, 14 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java index ce6985b8c2e..28cb581735b 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java @@ -75,7 +75,6 @@ public class BootstrapModule extends Module { addCoreSingleton(BatchPluginRepository.class); addCoreSingleton(BatchExtensionInstaller.class); - addCoreSingleton(ProjectExtensionInstaller.class); addCoreSingleton(BatchSettingsEnhancer.class); } diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectExtensionInstaller.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectExtensionInstaller.java index 145d971387e..f92163255d2 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectExtensionInstaller.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectExtensionInstaller.java @@ -28,9 +28,11 @@ import org.sonar.api.Plugin; import org.sonar.api.batch.AbstractCoverageExtension; import org.sonar.api.batch.CoverageExtension; import org.sonar.api.batch.InstantiationStrategy; +import org.sonar.api.config.Settings; import org.sonar.api.resources.Java; import org.sonar.api.resources.Project; import org.sonar.batch.bootstrapper.EnvironmentInformation; +import org.sonar.batch.config.ProjectSettings; import java.util.List; import java.util.Map; @@ -40,42 +42,46 @@ public final class ProjectExtensionInstaller implements BatchComponent { private BatchPluginRepository pluginRepository; private EnvironmentInformation environment; private DryRun dryRun; + private Project project; + private ProjectSettings settings; - public ProjectExtensionInstaller(BatchPluginRepository pluginRepository, EnvironmentInformation environment, DryRun dryRun) { + public ProjectExtensionInstaller(BatchPluginRepository pluginRepository, EnvironmentInformation environment, DryRun dryRun, Project project, ProjectSettings settings) { this.pluginRepository = pluginRepository; this.environment = environment; this.dryRun = dryRun; + this.project = project; + this.settings = settings; } - public void install(Module module, Project project) { + public void install(Module module) { for (Map.Entry<String, Plugin> entry : pluginRepository.getPluginsByKey().entrySet()) { for (Object extension : entry.getValue().getExtensions()) { - installExtension(module, extension, project, entry.getKey()); + installExtension(module, extension, entry.getKey()); } } - installExtensionProviders(module, project); + installExtensionProviders(module); } - void installExtensionProviders(Module module, Project project) { + void installExtensionProviders(Module module) { List<ExtensionProvider> providers = module.getComponents(ExtensionProvider.class); for (ExtensionProvider provider : providers) { Object obj = provider.provide(); if (obj instanceof Iterable) { for (Object extension : (Iterable) obj) { - installExtension(module, extension, project, ""); + installExtension(module, extension, ""); } } else { - installExtension(module, obj, project, ""); + installExtension(module, obj, ""); } } } - private Object installExtension(Module module, Object extension, Project project, String pluginKey) { + private Object installExtension(Module module, Object extension, String pluginKey) { if (ExtensionUtils.isBatchExtension(extension) && ExtensionUtils.isSupportedEnvironment(extension, environment) && ExtensionUtils.isInstantiationStrategy(extension, InstantiationStrategy.PER_PROJECT) && ExtensionUtils.checkDryRun(extension, dryRun.isEnabled()) && - !isDeactivatedCoverageExtension(extension, project, pluginKey) && + !isDeactivatedCoverageExtension(extension, pluginKey, project, settings) && !isMavenExtensionOnEmulatedMavenProject(extension, project)) { module.addCoreSingleton(extension); return extension; @@ -95,7 +101,7 @@ public final class ProjectExtensionInstaller implements BatchComponent { /** * TODO this code is specific to Java projects and should be moved somewhere else */ - static boolean isDeactivatedCoverageExtension(Object extension, Project project, String pluginKey) { + static boolean isDeactivatedCoverageExtension(Object extension, String pluginKey, Project project, Settings settings) { if (!ExtensionUtils.isType(extension, CoverageExtension.class)) { return false; } @@ -106,7 +112,7 @@ public final class ProjectExtensionInstaller implements BatchComponent { } if (StringUtils.equals(project.getLanguageKey(), Java.KEY)) { - String[] selectedPluginKeys = project.getConfiguration().getStringArray(CoreProperties.CORE_COVERAGE_PLUGIN_PROPERTY); + String[] selectedPluginKeys = settings.getStringArray(CoreProperties.CORE_COVERAGE_PLUGIN_PROPERTY); if (ArrayUtils.isEmpty(selectedPluginKeys)) { selectedPluginKeys = new String[]{AbstractCoverageExtension.DEFAULT_PLUGIN}; } diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectModule.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectModule.java index 5381fc093ed..04bf35c3d45 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectModule.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/ProjectModule.java @@ -112,8 +112,9 @@ public class ProjectModule extends Module { } private void addProjectPluginExtensions() { + addCoreSingleton(ProjectExtensionInstaller.class); ProjectExtensionInstaller installer = getComponentByType(ProjectExtensionInstaller.class); - installer.install(this, project); + installer.install(this); } diff --git a/sonar-batch/src/main/java/org/sonar/batch/config/ProjectSettings.java b/sonar-batch/src/main/java/org/sonar/batch/config/ProjectSettings.java index ca5e52ff96d..b8fc2a60b84 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/config/ProjectSettings.java +++ b/sonar-batch/src/main/java/org/sonar/batch/config/ProjectSettings.java @@ -49,7 +49,7 @@ public class ProjectSettings extends Settings { public ProjectSettings load() { clear(); - + // order is important -> bottom-up. The last one overrides all the others. loadDatabaseGlobalSettings(); loadDatabaseProjectSettings(projectDefinition); |