From df5104a81aa500e1e5859a49bd52bc5df4a3d465 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Mon, 30 Dec 2024 14:32:04 +0100 Subject: [PATCH] GH-1071: enable delta-based cache storage by default --- .../ide/vscode/boot/app/BootLanguageServerBootApp.java | 4 ++-- .../vscode/boot/index/cache/IndexCacheOnDiscDeltaBased.java | 2 ++ .../ide/vscode/boot/java/utils/SpringFactoriesIndexer.java | 2 +- .../ide/vscode/boot/java/utils/SpringIndexerJava.java | 2 +- .../ide/vscode/boot/java/utils/SpringIndexerXML.java | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerBootApp.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerBootApp.java index 759184d76..ad88033b5 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerBootApp.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerBootApp.java @@ -42,7 +42,7 @@ import org.springframework.ide.vscode.boot.common.PropertyCompletionFactory; import org.springframework.ide.vscode.boot.common.RelaxedNameConfig; import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex; import org.springframework.ide.vscode.boot.index.cache.IndexCache; -import org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDisc; +import org.springframework.ide.vscode.boot.index.cache.IndexCacheOnDiscDeltaBased; import org.springframework.ide.vscode.boot.index.cache.IndexCacheVoid; import org.springframework.ide.vscode.boot.java.JavaDefinitionHandler; import org.springframework.ide.vscode.boot.java.beans.DependsOnDefinitionProvider; @@ -150,7 +150,7 @@ public class BootLanguageServerBootApp { @Bean IndexCache symbolCache(BootLsConfigProperties props) { if (props.isSymbolCacheEnabled()) { - return new IndexCacheOnDisc(new File(props.getSymbolCacheDir())); + return new IndexCacheOnDiscDeltaBased(new File(props.getSymbolCacheDir())); } else { return new IndexCacheVoid(); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/index/cache/IndexCacheOnDiscDeltaBased.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/index/cache/IndexCacheOnDiscDeltaBased.java index fb94bc082..12d02ae5c 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/index/cache/IndexCacheOnDiscDeltaBased.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/index/cache/IndexCacheOnDiscDeltaBased.java @@ -292,6 +292,8 @@ public class IndexCacheOnDiscDeltaBased implements IndexCache { private void compact(IndexCacheKey cacheKey, Class type) { if (this.compactingCounter.get(cacheKey) > this.compactingCounterBoundary) { + log.info("compacting..."); + IndexCacheStore compactedData = retrieveStoreFromIncrementalStorage(cacheKey, type).getLeft(); persist(cacheKey, new DeltaSnapshot(compactedData), false); this.compactingCounter.put(cacheKey, 0); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringFactoriesIndexer.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringFactoriesIndexer.java index 0be39ac6e..84118bcf8 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringFactoriesIndexer.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringFactoriesIndexer.java @@ -60,7 +60,7 @@ public class SpringFactoriesIndexer implements SpringIndexer { // whenever the implementation of the indexer changes in a way that the stored data in the cache is no longer valid, // we need to change the generation - this will result in a re-indexing due to no up-to-date cache data being found - private static final String GENERATION = "GEN-6"; + private static final String GENERATION = "GEN-7"; private static final String FILE_PATTERN = "**/META-INF/spring/*.factories"; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java index 3e1aabaa2..07d2c5497 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java @@ -93,7 +93,7 @@ public class SpringIndexerJava implements SpringIndexer { // whenever the implementation of the indexer changes in a way that the stored data in the cache is no longer valid, // we need to change the generation - this will result in a re-indexing due to no up-to-date cache data being found - private static final String GENERATION = "GEN-7"; + private static final String GENERATION = "GEN-8"; private static final String INDEX_FILES_TASK_ID = "index-java-source-files-task-"; private static final String SYMBOL_KEY = "symbols"; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerXML.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerXML.java index 10a4428c6..798dc11c7 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerXML.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerXML.java @@ -54,7 +54,7 @@ public class SpringIndexerXML implements SpringIndexer { // whenever the implementation of the indexer changes in a way that the stored data in the cache is no longer valid, // we need to change the generation - this will result in a re-indexing due to no up-to-date cache data being found - private static final String GENERATION = "GEN-5"; + private static final String GENERATION = "GEN-6"; private static final String SYMBOL_KEY = "symbols"; private static final String BEANS_KEY = "beans";