From 17d8ecf02e56405f17d0be59a99294f6972d62d4 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Mon, 22 Feb 2021 12:48:44 +0100 Subject: [PATCH] make langauge server symbol cache directory configurable --- .../boot/app/BootLanguagServerBootApp.java | 4 +++- .../boot/app/BootLsConfigProperties.java | 19 ++++++++++++++++++- .../boot/java/utils/SymbolCacheOnDisc.java | 6 +----- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguagServerBootApp.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguagServerBootApp.java index 92aed3db1..c5f2f4db8 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguagServerBootApp.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguagServerBootApp.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.springframework.ide.vscode.boot.app; +import java.io.File; + import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.SpringApplication; @@ -103,7 +105,7 @@ public class BootLanguagServerBootApp { @Bean SymbolCache symbolCache(BootLsConfigProperties props) { if (props.isSymbolCacheEnabled()) { - return new SymbolCacheOnDisc(); + return new SymbolCacheOnDisc(new File(props.getSymbolCacheDir())); } else { return new SymbolCacheVoid(); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLsConfigProperties.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLsConfigProperties.java index 341d59205..1a4090d91 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLsConfigProperties.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLsConfigProperties.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019 Pivotal, Inc. + * Copyright (c) 2019, 2021 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -10,6 +10,8 @@ *******************************************************************************/ package org.springframework.ide.vscode.boot.app; +import java.io.File; + import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties("languageserver.boot") @@ -42,4 +44,19 @@ public class BootLsConfigProperties { public void setSymbolCacheEnabled(boolean symbolCacheEnabled) { this.symbolCacheEnabled = symbolCacheEnabled; } + + /** + * The path to the cache directory where the language server stores + * symbol information + */ + private String symbolCacheDir = System.getProperty("user.home") + File.separatorChar + ".sts4" + File.separatorChar + ".symbolCache"; + + public String getSymbolCacheDir() { + return symbolCacheDir; + } + + public void setSymbolCacheDir(String symbolCacheDir) { + this.symbolCacheDir = symbolCacheDir; + } + } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java index d8b71b7fb..73981129a 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019 2020 Pivotal, Inc. + * Copyright (c) 2019 2021 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -61,10 +61,6 @@ public class SymbolCacheOnDisc implements SymbolCache { private static final Logger log = LoggerFactory.getLogger(SymbolCacheOnDisc.class); - public SymbolCacheOnDisc() { - this(new File(System.getProperty("user.home") + File.separatorChar + ".sts4" + File.separatorChar + ".symbolCache")); - } - public SymbolCacheOnDisc(File cacheDirectory) { this.cacheDirectory = cacheDirectory; this.stores = new ConcurrentHashMap<>();