diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/JdtReconciler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/JdtReconciler.java index a80c4bc6c..9783ad81c 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/JdtReconciler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/reconcilers/JdtReconciler.java @@ -24,6 +24,8 @@ import org.eclipse.jdt.core.dom.ITypeBinding; import org.eclipse.jdt.core.dom.MarkerAnnotation; import org.eclipse.jdt.core.dom.NormalAnnotation; import org.eclipse.jdt.core.dom.SingleMemberAnnotation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.ide.vscode.boot.java.handlers.SpelExpressionReconciler; import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache; import org.springframework.ide.vscode.boot.java.value.Constants; @@ -34,6 +36,9 @@ import org.springframework.ide.vscode.commons.util.text.IDocument; import org.springframework.ide.vscode.commons.util.text.TextDocument; public class JdtReconciler implements JavaReconciler { + + private static final Logger log = LoggerFactory.getLogger(JdtReconciler.class); + // annotations with SpEL expression params public static final String SPRING_CACHEABLE = "org.springframework.cache.annotation.Cacheable"; public static final String SPRING_CACHE_EVICT = "org.springframework.cache.annotation.CacheEvict"; @@ -89,6 +94,10 @@ public class JdtReconciler implements JavaReconciler { @Override public void reconcile(IJavaProject project, final IDocument doc, final IProblemCollector problemCollector) { + + log.info("reconciling (JDT): " + project.getElementName() + " - " + doc.getUri()); + long start = System.currentTimeMillis(); + URI uri = URI.create(doc.getUri()); compilationUnitCache.withCompilationUnit(project, uri, cu -> { if (cu != null) { @@ -96,6 +105,9 @@ public class JdtReconciler implements JavaReconciler { } return null; }); + + long end = System.currentTimeMillis(); + log.info("reconciling (JDT): " + project.getElementName() + " done in " + (end - start) + "ms"); } private void reconcileAST(IJavaProject project, IDocument doc, CompilationUnit cu, IProblemCollector problemCollector) { @@ -147,7 +159,8 @@ public class JdtReconciler implements JavaReconciler { @Override public Map> reconcile(IJavaProject project, List docs, Function problemCollectorFactory) { - // TODO Auto-generated method stub + log.info("reconciling (JDT, multiple docs): " + project.getElementName() + " - " + docs.size()); + return Collections.emptyMap(); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java index 8e066dc4f..17b2eba27 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java @@ -61,11 +61,8 @@ public class RewriteReconciler implements JavaReconciler { private static final Logger log = LoggerFactory.getLogger(RewriteReconciler.class); private RewriteCompilationUnitCache cuCache; - private QuickfixRegistry quickfixRegistry; - private RewriteRecipeRepository recipeRepo; - private BootJavaConfig config; public RewriteReconciler(RewriteRecipeRepository recipeRepo, RewriteCompilationUnitCache cuCache, QuickfixRegistry quickfixRegistry, BootJavaConfig config) { @@ -77,10 +74,14 @@ public class RewriteReconciler implements JavaReconciler { @Override public void reconcile(IJavaProject project, IDocument doc, IProblemCollector problemCollector) { + if (!config.isRewriteReconcileEnabled()) { return; } + log.info("reconciling (OpenRewrite): " + project.getElementName() + " - " + doc.getUri()); + long start = System.currentTimeMillis(); + try { problemCollector.beginCollecting(); @@ -100,7 +101,10 @@ public class RewriteReconciler implements JavaReconciler { } } finally { problemCollector.endCollecting(); - } + } + + long end = System.currentTimeMillis(); + log.info("reconciling (OpenRewrite): " + project.getElementName() + " done in " + (end - start) + "ms"); } private List createProblems(IDocument doc, FixAssistMarker m, J astNode) { @@ -138,7 +142,10 @@ public class RewriteReconciler implements JavaReconciler { @Override public Map> reconcile(IJavaProject project, List docs, Function problemCollectorFactory) { - log.info("Validating project " + project.getElementName()); + + log.info("reconciling (OpenRewrite, multiple docs): " + project.getElementName() + " - " + docs.size()); + long start = System.currentTimeMillis(); + Map> allProblems = new HashMap<>(); List testSourceFolders = IClasspathUtil.getProjectTestJavaSources(project.getClasspath()).map(f -> f.toPath()).collect(Collectors.toList()); List testSources = new ArrayList<>(docs.size()); @@ -156,6 +163,10 @@ public class RewriteReconciler implements JavaReconciler { allProblems.putAll(doReconcile(project, mainSources, problemCollectorFactory, javaParser)); javaParser.setSourceSet(MavenProjectParser.TEST); allProblems.putAll(doReconcile(project, testSources, problemCollectorFactory, javaParser)); + + long end = System.currentTimeMillis(); + log.info("reconciling (OpenRewrite, multiple docs): " + project.getElementName() + " - " + docs.size() + " done in " + (end - start) + "ms"); + return allProblems; } @@ -241,7 +252,7 @@ public class RewriteReconciler implements JavaReconciler { if (!descriptors.isEmpty()) { - for (int i = 0; i < docs.size(); i+=BATCH) { + for (int i = 0; i < docs.size(); i += BATCH) { List batchList = docs.subList(i, Math.min(i + BATCH, docs.size())); List cus = ORAstUtils.parseInputs(javaParser,