turn the base reconciler test to use new AST visitor creators and removed outdated reconcile method from reconciling mechanism

This commit is contained in:
Martin Lippert
2024-05-02 10:43:35 +02:00
parent 129ff45161
commit feb0f77f90
19 changed files with 21 additions and 116 deletions

View File

@@ -33,14 +33,6 @@ public abstract class AbstractSecurityLamdaDslReconciler implements JdtAstReconc
this.registry = registry;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
if (visitor != null) {
cu.accept(visitor);
}
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -73,12 +73,6 @@ public class AddConfigurationIfBeansPresentReconciler implements JdtAstReconcile
this.applicationContext = applicationContext;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {
return new ASTVisitor() {

View File

@@ -86,12 +86,6 @@ public class AnnotationNodeReconciler implements JdtAstReconciler {
return SpelProblemType.JAVA_SPEL_EXPRESSION_SYNTAX;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu,
IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -56,14 +56,6 @@ public class AuthorizeHttpRequestsReconciler implements JdtAstReconciler {
return Boot2JavaProblemType.HTTP_SECURITY_AUTHORIZE_HTTP_REQUESTS;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
if (visitor != null) {
cu.accept(visitor);
}
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -65,14 +65,6 @@ public class AutowiredFieldIntoConstructorParameterReconciler implements JdtAstR
return Boot2JavaProblemType.JAVA_CONSTRUCTOR_PARAMETER_INJECTION;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
if (visitor != null) {
cu.accept(visitor);
}
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -65,12 +65,6 @@ public class BeanMethodNotPublicReconciler implements JdtAstReconciler {
return Boot2JavaProblemType.JAVA_PUBLIC_BEAN_METHOD;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -55,12 +55,6 @@ public class BeanPostProcessingIgnoreInAotReconciler implements JdtAstReconciler
return SpringAotJavaProblemType.JAVA_BEAN_POST_PROCESSOR_IGNORED_IN_AOT;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -44,12 +44,6 @@ public class Boot3NotSupportedTypeReconciler implements JdtAstReconciler {
return Boot3JavaProblemType.JAVA_TYPE_NOT_SUPPORTED;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docURI, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {
return new ASTVisitor() {

View File

@@ -66,14 +66,6 @@ public class EntityIdForRepoReconciler implements JdtAstReconciler {
return Boot2JavaProblemType.DOMAIN_ID_FOR_REPOSITORY;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
if (visitor != null) {
cu.accept(visitor);
}
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docURI, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -20,8 +20,14 @@ import org.springframework.ide.vscode.commons.languageserver.reconcile.ProblemTy
public interface JdtAstReconciler {
void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException;
/**
* This checks whether the reconciler is applicable for the given project.
* The implementation can take project and classpath information into account,
* but should not look into source or output folders.
*
* The result is the implementation might be cached and cache entries will only
* be renewed if the project changes.
*/
boolean isApplicable(IJavaProject project);
ProblemType getProblemType();

View File

@@ -51,14 +51,6 @@ public class ModulithTypeReferenceViolationReconciler implements JdtAstReconcile
this.appContext = applicationContext;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
if (visitor != null) {
cu.accept(visitor);
}
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -54,12 +54,6 @@ public class NoAutowiredOnConstructorReconciler implements JdtAstReconciler {
return Boot2JavaProblemType.JAVA_AUTOWIRED_CONSTRUCTOR;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -53,12 +53,6 @@ public class NoRepoAnnotationReconciler implements JdtAstReconciler {
return Boot2JavaProblemType.JAVA_REPOSITORY;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -68,12 +68,6 @@ public class NoRequestMappingAnnotationReconciler implements JdtAstReconciler {
return Boot2JavaProblemType.JAVA_PRECISE_REQUEST_MAPPING;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -82,12 +82,6 @@ public class NotRegisteredBeansReconciler implements JdtAstReconciler, Applicati
this.applicationContext = applicationContext;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -56,12 +56,6 @@ public class PreciseBeanTypeReconciler implements JdtAstReconciler {
return SpringAotJavaProblemType.JAVA_CONCRETE_BEAN_TYPE;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {

View File

@@ -73,13 +73,6 @@ public class UnnecessarySpringExtensionReconciler implements JdtAstReconciler {
return Boot2JavaProblemType.JAVA_TEST_SPRING_EXTENSION;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector,
boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {
return new ASTVisitor() {

View File

@@ -83,12 +83,6 @@ public class WebSecurityConfigurerAdapterReconciler implements JdtAstReconciler
return Boot2JavaProblemType.WEB_SECURITY_CONFIGURER_ADAPTER;
}
@Override
public void reconcile(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) throws RequiredCompleteAstException {
ASTVisitor visitor = createVisitor(project, docUri, cu, problemCollector, isCompleteAst);
cu.accept(visitor);
}
@Override
public ASTVisitor createVisitor(IJavaProject project, URI docUri, CompilationUnit cu, IProblemCollector problemCollector, boolean isCompleteAst) {
return new ASTVisitor() {

View File

@@ -25,8 +25,10 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;
import java.util.stream.Stream;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jdt.core.dom.FileASTRequestor;
import org.springframework.ide.vscode.boot.java.reconcilers.CompositeASTVisitor;
import org.springframework.ide.vscode.boot.java.reconcilers.JdtAstReconciler;
import org.springframework.ide.vscode.boot.java.reconcilers.RequiredCompleteAstException;
import org.springframework.ide.vscode.boot.java.utils.SpringIndexerJava;
@@ -91,7 +93,17 @@ public abstract class BaseReconcilerTest {
@Override
public void acceptAST(String sourceFilePath, CompilationUnit cu) {
try {
reconcilerFactory.get().reconcile(project, path.toUri(), cu, problemCollector, isCompleteAst);
JdtAstReconciler reconciler = reconcilerFactory.get();
ASTVisitor visitor = reconciler.createVisitor(project, path.toUri(), cu, problemCollector, isCompleteAst);
if (visitor != null) {
// use a composite visitor here to make sure that the tests will fail if there is anything missing in the composite
// visitor for the reconciler AST visitor to work correctly
CompositeASTVisitor compositeASTVisitor = new CompositeASTVisitor();
compositeASTVisitor.add(visitor);
cu.accept(compositeASTVisitor);
}
} catch (RequiredCompleteAstException e) {
requiredCompleteAst.set(true);
}