Java Reconcilers as beans
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
});
|
||||
|
||||
|
||||
@@ -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[] {
|
||||
|
||||
Reference in New Issue
Block a user