From 4bf488cb987b66a7a7c371bb052f41ec6309dc17 Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Fri, 30 Jun 2017 16:37:12 -0700 Subject: [PATCH] Relax CF target cache limit so it works better with multipe active targets. --- .../commons/cloudfoundry/client/cftarget/CFTarget.java | 2 +- .../commons/cloudfoundry/client/cftarget/CFTargetCache.java | 6 +++++- .../ide/vscode/manifest/yaml/ManifestYmlSchema.java | 1 - 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/headless-services/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFTarget.java b/headless-services/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFTarget.java index e86e7bde2..54bca7a0a 100644 --- a/headless-services/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFTarget.java +++ b/headless-services/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFTarget.java @@ -65,7 +65,7 @@ public class CFTarget { } }; this.stacksCache = CacheBuilder.newBuilder() - .expireAfterAccess(CFTargetCache.SERVICES_EXPIRATION.toMillis(), TimeUnit.MILLISECONDS).build(stacksLoader); + .expireAfterAccess(CFTargetCache.TARGET_EXPIRATION.toMillis(), TimeUnit.MILLISECONDS).build(stacksLoader); CacheLoader> servicesLoader = new CacheLoader>() { diff --git a/headless-services/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFTargetCache.java b/headless-services/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFTargetCache.java index 21991f993..8d6991118 100644 --- a/headless-services/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFTargetCache.java +++ b/headless-services/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFTargetCache.java @@ -43,6 +43,10 @@ public class CFTargetCache { this.cfClientConfig = cfClientConfig; this.clientFactory = clientFactory; this.timeouts = timeouts; + //TODO: I suspect that addClientParamsProviderChangedListener below is not necessary. + // I think it results in unnessary refreshes of the cache, any time the providers are + // changed. The cached results doesn't really depend on the providers, only on the targets. So I think, + // it shouldn't need to refresh when the providers are changed. cfClientConfig.addClientParamsProviderChangedListener((newProvider, oldProvider) -> initCache()); initCache(); } @@ -56,7 +60,7 @@ public class CFTargetCache { } }; - cache = CacheBuilder.newBuilder().maximumSize(1).expireAfterAccess(TARGET_EXPIRATION.toMillis(), TimeUnit.MILLISECONDS) + cache = CacheBuilder.newBuilder()./*maximumSize(1).*/expireAfterAccess(TARGET_EXPIRATION.toMillis(), TimeUnit.MILLISECONDS) .build(loader); this.cacheCallableContext = new CFCallableContext(cfClientConfig.getClientParamsProvider().getMessages()); } diff --git a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYmlSchema.java b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYmlSchema.java index 2dca078bd..3d6fa9bc6 100644 --- a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYmlSchema.java +++ b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYmlSchema.java @@ -16,7 +16,6 @@ import java.util.concurrent.Callable; import org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector; import org.springframework.ide.vscode.commons.util.IntegerRange; -import org.springframework.ide.vscode.commons.util.Log; import org.springframework.ide.vscode.commons.util.Renderable; import org.springframework.ide.vscode.commons.util.Renderables; import org.springframework.ide.vscode.commons.util.ValueParsers;