aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-scanner-engine
diff options
context:
space:
mode:
authorMatteo Mara <matteo.mara@sonarsource.com>2023-12-18 17:25:34 +0100
committersonartech <sonartech@sonarsource.com>2024-01-04 20:02:48 +0000
commit7839d6e3c8fd4045efca1b4cb76db0709189965f (patch)
tree76f20c06bcce14f9f57200995d788f5f5dad79e6 /sonar-scanner-engine
parentdab9f39a5046d1dfe31e685509085f4079487d52 (diff)
downloadsonarqube-7839d6e3c8fd4045efca1b4cb76db0709189965f.tar.gz
sonarqube-7839d6e3c8fd4045efca1b4cb76db0709189965f.zip
SONAR-21197 add a property to enable the download of the required plugins only
Diffstat (limited to 'sonar-scanner-engine')
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginRepository.java11
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginRepositoryTest.java6
2 files changed, 9 insertions, 8 deletions
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginRepository.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginRepository.java
index 6b875da7620..fb2834604f6 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginRepository.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/bootstrap/ScannerPluginRepository.java
@@ -40,6 +40,7 @@ import org.sonar.scanner.mediumtest.LocalPlugin;
import static java.util.stream.Collectors.toMap;
import static org.sonar.api.utils.Preconditions.checkState;
+import static org.sonar.core.config.ScannerProperties.PLUGIN_LOADING_OPTIMIZATION_KEY;
/**
* Orchestrates the installation and loading of plugins
@@ -56,7 +57,7 @@ public class ScannerPluginRepository implements PluginRepository, Startable {
private Map<String, Plugin> pluginInstancesByKeys;
private Map<String, ScannerPlugin> pluginsByKeys;
private Map<ClassLoader, String> keysByClassLoader;
- private boolean shouldLoadAllPluginsOnStart;
+ private boolean shouldLoadOnlyRequiredPluginsOnStart;
public ScannerPluginRepository(PluginInstaller installer, PluginJarExploder pluginJarExploder, PluginClassLoader loader, Configuration properties) {
this.installer = installer;
@@ -67,9 +68,9 @@ public class ScannerPluginRepository implements PluginRepository, Startable {
@Override
public void start() {
- shouldLoadAllPluginsOnStart = properties.getBoolean("sonar.plugins.loadAll").orElse(false);
- if (shouldLoadAllPluginsOnStart) {
- LOG.warn("sonar.plugins.loadAll is true, so ALL available plugins will be downloaded");
+ shouldLoadOnlyRequiredPluginsOnStart = properties.getBoolean(PLUGIN_LOADING_OPTIMIZATION_KEY).orElse(true);
+ if (!shouldLoadOnlyRequiredPluginsOnStart) {
+ LOG.warn("{} is false, so ALL available plugins will be downloaded", PLUGIN_LOADING_OPTIMIZATION_KEY);
pluginsByKeys = new HashMap<>(installer.installAllPlugins());
} else {
pluginsByKeys = new HashMap<>(installer.installRequiredPlugins());
@@ -96,7 +97,7 @@ public class ScannerPluginRepository implements PluginRepository, Startable {
}
public Collection<PluginInfo> installPluginsForLanguages(Set<String> languageKeys) {
- if (shouldLoadAllPluginsOnStart) {
+ if (!shouldLoadOnlyRequiredPluginsOnStart) {
return Collections.emptySet();
}
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginRepositoryTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginRepositoryTest.java
index 2fa2343f2e1..0c3f7c14a30 100644
--- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginRepositoryTest.java
+++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginRepositoryTest.java
@@ -47,6 +47,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static org.sonar.core.config.ScannerProperties.PLUGIN_LOADING_OPTIMIZATION_KEY;
public class ScannerPluginRepositoryTest {
@@ -90,9 +91,8 @@ public class ScannerPluginRepositoryTest {
}
@Test
- public void should_install_all_plugins_when_loadall_flag_is_set() {
- when(properties.getBoolean("sonar.plugins.loadAll")).thenReturn(Optional.of(true));
-
+ public void should_install_all_plugins_when_downloadOnlyRequired_flag_is_false() {
+ when(properties.getBoolean(PLUGIN_LOADING_OPTIMIZATION_KEY)).thenReturn(Optional.of(false));
underTest.start();
verify(installer).installAllPlugins();