aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2015-09-30 15:16:18 +0200
committerDuarte Meneses <duarte.meneses@sonarsource.com>2015-10-01 14:34:34 +0200
commit3badd476071ad30333b9a1a4080531e84953b6e4 (patch)
tree5c26f4a9dd2aeaa764c8f461ee45c63968580069
parent8c21482c0f7164e03e70c05833c1bee162408831 (diff)
downloadsonarqube-3badd476071ad30333b9a1a4080531e84953b6e4.tar.gz
sonarqube-3badd476071ad30333b9a1a4080531e84953b6e4.zip
Change global cache strategy
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/bootstrap/GlobalContainer.java24
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/bootstrapper/Batch.java4
2 files changed, 19 insertions, 9 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/GlobalContainer.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/GlobalContainer.java
index 30b54799632..ebcc795c9e5 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/GlobalContainer.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/GlobalContainer.java
@@ -52,16 +52,16 @@ import org.sonar.core.util.UuidFactoryImpl;
public class GlobalContainer extends ComponentContainer {
private final Map<String, String> bootstrapProperties;
- private boolean forceSync;
+ private boolean preferCache;
- private GlobalContainer(Map<String, String> bootstrapProperties, boolean forceSync) {
+ private GlobalContainer(Map<String, String> bootstrapProperties, boolean preferCache) {
super();
this.bootstrapProperties = bootstrapProperties;
- this.forceSync = forceSync;
+ this.preferCache = preferCache;
}
- public static GlobalContainer create(Map<String, String> bootstrapProperties, List<?> extensions, boolean forceSync) {
- GlobalContainer container = new GlobalContainer(bootstrapProperties, forceSync);
+ public static GlobalContainer create(Map<String, String> bootstrapProperties, List<?> extensions, boolean preferCache) {
+ GlobalContainer container = new GlobalContainer(bootstrapProperties, preferCache);
container.add(extensions);
return container;
}
@@ -69,12 +69,23 @@ public class GlobalContainer extends ComponentContainer {
@Override
protected void doBeforeStart() {
GlobalProperties bootstrapProps = new GlobalProperties(bootstrapProperties);
- StrategyWSLoaderProvider wsLoaderProvider = forceSync ? new StrategyWSLoaderProvider(LoadStrategy.SERVER_ONLY) : new StrategyWSLoaderProvider(LoadStrategy.SERVER_FIRST);
+ GlobalMode globalMode = new GlobalMode(bootstrapProps);
+ LoadStrategy strategy = getDataLoadingStrategy(globalMode, preferCache);
+ StrategyWSLoaderProvider wsLoaderProvider = new StrategyWSLoaderProvider(strategy);
add(wsLoaderProvider);
add(bootstrapProps);
+ add(globalMode);
addBootstrapComponents();
}
+ private static LoadStrategy getDataLoadingStrategy(GlobalMode mode, boolean preferCache) {
+ if (!mode.isIssues()) {
+ return LoadStrategy.SERVER_ONLY;
+ }
+
+ return preferCache ? LoadStrategy.CACHE_FIRST : LoadStrategy.SERVER_FIRST;
+ }
+
private void addBootstrapComponents() {
add(
// plugins
@@ -86,7 +97,6 @@ public class GlobalContainer extends ComponentContainer {
ExtensionInstaller.class,
CachesManager.class,
- GlobalMode.class,
GlobalSettings.class,
new RulesProvider(),
ServerClient.class,
diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrapper/Batch.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrapper/Batch.java
index e98e6366f7a..116272c6a20 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/bootstrapper/Batch.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrapper/Batch.java
@@ -89,13 +89,13 @@ public final class Batch {
return start(false);
}
- public synchronized Batch start(boolean forceSync) {
+ public synchronized Batch start(boolean preferCache) {
if (started) {
throw new IllegalStateException("Batch is already started");
}
configureLogging();
- bootstrapContainer = GlobalContainer.create(bootstrapProperties, components, forceSync);
+ bootstrapContainer = GlobalContainer.create(bootstrapProperties, components, preferCache);
bootstrapContainer.startComponents();
this.started = true;