Java Reconcilers as beans

This commit is contained in:
aboyko
2023-01-25 20:01:27 -05:00
parent 28966bdcb1
commit 914a038910
4 changed files with 21 additions and 18 deletions

View File

@@ -48,6 +48,7 @@ import org.springframework.ide.vscode.boot.java.links.SourceLinkFactory;
import org.springframework.ide.vscode.boot.java.links.SourceLinks;
import org.springframework.ide.vscode.boot.java.livehover.v2.SpringProcessConnectorRemote;
import org.springframework.ide.vscode.boot.java.livehover.v2.SpringProcessConnectorRemote.RemoteBootAppData;
import org.springframework.ide.vscode.boot.java.reconcilers.JdtReconciler;
import org.springframework.ide.vscode.boot.java.livehover.v2.SpringProcessConnectorService;
import org.springframework.ide.vscode.boot.java.livehover.v2.SpringProcessLiveDataProvider;
import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache;
@@ -221,6 +222,10 @@ public class BootLanguageServerBootApp {
@Bean CompilationUnitCache cuCache(SimpleLanguageServer server, BootLanguageServerParams params) {
return new CompilationUnitCache(params.projectFinder, server, params.projectObserver);
}
@Bean JdtReconciler jdtReconciler(CompilationUnitCache cuCache, BootJavaConfig config) {
return new JdtReconciler(cuCache, config);
}
@Bean SpringXMLCompletionEngine xmlCompletionEngine(SimpleLanguageServer server, JavaProjectFinder projectFinder, SpringSymbolIndex symbolIndex, BootJavaConfig config) {
return new SpringXMLCompletionEngine(server, projectFinder, symbolIndex, config);

View File

@@ -17,6 +17,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.ide.vscode.boot.java.rewrite.RewriteCodeActionHandler;
import org.springframework.ide.vscode.boot.java.rewrite.RewriteCompilationUnitCache;
import org.springframework.ide.vscode.boot.java.rewrite.RewriteRecipeRepository;
import org.springframework.ide.vscode.boot.java.rewrite.RewriteReconciler;
import org.springframework.ide.vscode.boot.java.rewrite.RewriteRefactorings;
import org.springframework.ide.vscode.boot.java.rewrite.SpringBootUpgrade;
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
@@ -50,4 +51,14 @@ public class RewriteConfig {
return new SpringBootUpgrade(server, recipeRepo, projectFinder);
}
@ConditionalOnBean(RewriteRecipeRepository.class)
@Bean RewriteReconciler rewriteJavaReconciler(RewriteRecipeRepository recipeRepo, RewriteCompilationUnitCache cuCache, SimpleLanguageServer server, BootJavaConfig config) {
return new RewriteReconciler(
recipeRepo,
cuCache,
server.getQuickfixRegistry(),
config
);
}
}

View File

@@ -188,24 +188,12 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent
highlightsEngine = createDocumentHighlightEngine(indexer);
documents.onDocumentHighlight(highlightsEngine);
List<JavaReconciler> javaReconcilers = new ArrayList<>();
JdtReconciler jdtReconciler = new JdtReconciler(cuCache, config);
javaReconcilers.add(jdtReconciler);
Map<String, RewriteCompilationUnitCache> rewriteCuCacheBeans = appContext.getBeansOfType(RewriteCompilationUnitCache.class);
RewriteCompilationUnitCache orCompilationUnitCache = rewriteCuCacheBeans.isEmpty() ? null : rewriteCuCacheBeans.values().iterator().next();
Map<String, RewriteRecipeRepository> recipeRepoBeans = appContext.getBeansOfType(RewriteRecipeRepository.class);
RewriteRecipeRepository recipeRepo = recipeRepoBeans.isEmpty() ? null : recipeRepoBeans.values().iterator().next();
if (recipeRepo != null && orCompilationUnitCache != null) {
javaReconcilers.add(new RewriteReconciler(
recipeRepo,
orCompilationUnitCache,
server.getQuickfixRegistry(),
config
));
}
reconcileEngine = new BootJavaReconcileEngine(projectFinder, javaReconcilers.toArray(new JavaReconciler[javaReconcilers.size()]), server, config, projectObserver, recipeRepo);
reconcileEngine = new BootJavaReconcileEngine(projectFinder,
appContext.getBeansOfType(JavaReconciler.class).values().toArray(new JavaReconciler[0]),
server, config, projectObserver, recipeRepo);
codeActionProvider = new BootJavaCodeActionProvider(
projectFinder,
@@ -230,8 +218,6 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent
liveChangeDetectionWatchdog.disableHighlights();
}
jdtReconciler.setSpelExpressionSyntaxValidationEnabled(config.isSpelExpressionValidationEnabled());
log.info("update live process tracker settings - done");
});

View File

@@ -60,7 +60,8 @@ public class JdtReconciler implements JavaReconciler {
public JdtReconciler(CompilationUnitCache compilationUnitCache, BootJavaConfig config) {
this.compilationUnitCache = compilationUnitCache;
this.config = config;
this.config = config;
config.addListener(evt -> setSpelExpressionSyntaxValidationEnabled(config.isSpelExpressionValidationEnabled()));
this.spelExpressionReconciler = new SpelExpressionReconciler();
this.reconcilers = new AnnotationReconciler[] {