More robust rewrite recipe ids for code actions

This commit is contained in:
aboyko
2023-06-15 16:05:07 -04:00
parent b981c63817
commit d15433e1c3
14 changed files with 26 additions and 13 deletions

View File

@@ -148,6 +148,9 @@ public class RewriteRefactorings implements CodeActionResolver, QuickfixHandler
if (project.isPresent()) {
boolean projectWide = data.getRecipeScope() == RecipeScope.PROJECT;
Recipe r = createRecipe(data);
if (r == null) {
log.warn("Code Action failed to resolve. Could not create recipe created with id '" + data.getRecipeId() + "'.");
}
List<CompilationUnit> cus = Collections.emptyList();
if (projectWide) {
JavaParser jp = ORAstUtils.createJavaParserBuilder(project.get()).dependsOn(data.getTypeStubs()).build();

View File

@@ -34,7 +34,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class AddConfigurationIfBeansPresentCodeAction implements RecipeCodeActionDescriptor {
private static final String ID = "org.openrewrite.java.spring.boot2.AddConfigurationAnnotationIfBeansPresent";
private static final String ID = AddConfigurationAnnotationIfBeansPresent.class.getName();
private static final String PROBLEM_LABEL = "'@Configuration' is missing on a class defining Spring Beans";

View File

@@ -17,6 +17,7 @@ import org.openrewrite.SourceFile;
import org.openrewrite.Tree;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.MethodMatcher;
import org.openrewrite.java.spring.boot2.AuthorizeHttpRequests;
import org.openrewrite.java.tree.J.MethodInvocation;
import org.openrewrite.java.tree.J.VariableDeclarations;
import org.openrewrite.java.tree.JavaType.FullyQualified;
@@ -34,7 +35,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class AuthorizeHttpRequestsCodeAction implements RecipeCodeActionDescriptor {
private static final String ID = "org.openrewrite.java.spring.boot2.AuthorizeHttpRequests";
private static final String ID = AuthorizeHttpRequests.class.getName();
private static final MethodMatcher MATCH_AUTHORIZE_REQUESTS = new MethodMatcher(
"org.springframework.security.config.annotation.web.builders.HttpSecurity authorizeRequests(..)");

View File

@@ -39,6 +39,7 @@ import org.springframework.ide.vscode.commons.rewrite.config.MarkerVisitorContex
import org.springframework.ide.vscode.commons.rewrite.config.RecipeCodeActionDescriptor;
import org.springframework.ide.vscode.commons.rewrite.config.RecipeScope;
import org.springframework.ide.vscode.commons.rewrite.java.AnnotationHierarchies;
import org.springframework.ide.vscode.commons.rewrite.java.ConvertAutowiredFieldIntoConstructorParameter;
import org.springframework.ide.vscode.commons.rewrite.java.FixAssistMarker;
import org.springframework.ide.vscode.commons.rewrite.java.FixDescriptor;
import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
@@ -48,7 +49,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.ProjectParser;
public class AutowiredFieldIntoConstructorParameterCodeAction implements RecipeCodeActionDescriptor {
private static final String LABEL = "Convert @Autowired field into Constructor Parameter";
private static final String ID = "org.springframework.ide.vscode.commons.rewrite.java.ConvertAutowiredFieldIntoConstructorParameter";
private static final String ID = ConvertAutowiredFieldIntoConstructorParameter.class.getName();
private static final String AUTOWIRED = "org.springframework.beans.factory.annotation.Autowired";
@Override

View File

@@ -18,6 +18,7 @@ import org.openrewrite.Tree;
import org.openrewrite.internal.ListUtils;
import org.openrewrite.java.AnnotationMatcher;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.spring.BeanMethodsNotPublic;
import org.openrewrite.java.tree.J;
import org.openrewrite.java.tree.TypeUtils;
import org.openrewrite.marker.Range;
@@ -33,7 +34,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class BeanMethodNotPublicProblem implements RecipeCodeActionDescriptor {
private static final String ID = "org.openrewrite.java.spring.BeanMethodsNotPublic";
private static final String ID = BeanMethodsNotPublic.class.getName();
private static final String LABEL = "Remove 'public' from @Bean method";

View File

@@ -35,7 +35,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class BeanPostProcessingIgnoreInAotProblem implements RecipeCodeActionDescriptor {
private static final String RECIPE_ID = "org.springframework.ide.vscode.commons.rewrite.java.BeanPostProcessingIgnoreInAot";
private static final String RECIPE_ID = BeanPostProcessingIgnoreInAot.class.getName();
private static final String LABEL = "Add method 'isBeanExcludedFromAotProcessing' that returns 'false'";
@Override

View File

@@ -28,7 +28,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.FixAssistMarker;
public class EntityIdForRepoProblem implements RecipeCodeActionDescriptor {
private static final String ID = "org.openrewrite.java.spring.boot2.search.EntityIdForRepositoryVisitor";
private static final String ID = EntityIdForRepositoryVisitor.class.getName();
@Override
public JavaVisitor<ExecutionContext> getMarkerVisitor(MarkerVisitorContext context) {

View File

@@ -20,6 +20,7 @@ import org.openrewrite.Tree;
import org.openrewrite.internal.ListUtils;
import org.openrewrite.java.AnnotationMatcher;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.spring.NoAutowiredOnConstructor;
import org.openrewrite.java.tree.J;
import org.openrewrite.java.tree.J.ClassDeclaration;
import org.openrewrite.java.tree.J.MethodDeclaration;
@@ -41,7 +42,7 @@ public class NoAutowiredOnConstructorProblem implements RecipeCodeActionDescript
private static final AnnotationMatcher BOOT_TEST_ANNOTATION_MATCHER = new AnnotationMatcher(
"@org.springframework.boot.test.context.SpringBootTest", true);
private static final String ID = "org.openrewrite.java.spring.NoAutowiredOnConstructor";
private static final String ID = NoAutowiredOnConstructor.class.getName();
private static final String LABEL = "Remove Unnecessary @Autowired";
@Override

View File

@@ -19,6 +19,7 @@ import org.openrewrite.SourceFile;
import org.openrewrite.Tree;
import org.openrewrite.internal.ListUtils;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.spring.NoRepoAnnotationOnRepoInterface;
import org.openrewrite.java.tree.J;
import org.openrewrite.java.tree.J.ClassDeclaration;
import org.openrewrite.java.tree.JavaType;
@@ -36,7 +37,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class NoRepoAnnotationProblem implements RecipeCodeActionDescriptor {
private static final String ID = "org.openrewrite.java.spring.NoRepoAnnotationOnRepoInterface";
private static final String ID = NoRepoAnnotationOnRepoInterface.class.getName();
private static final String LABEL = "Remove Unnecessary @Repository";
private static final String INTERFACE_REPOSITORY = "org.springframework.data.repository.Repository";
private static final String ANNOTATION_REPOSITORY = Annotations.REPOSITORY;

View File

@@ -19,6 +19,7 @@ import org.openrewrite.SourceFile;
import org.openrewrite.Tree;
import org.openrewrite.java.AnnotationMatcher;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.spring.NoRequestMappingAnnotation;
import org.openrewrite.java.tree.J;
import org.openrewrite.marker.Range;
import org.springframework.ide.vscode.boot.java.Boot2JavaProblemType;
@@ -34,7 +35,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class NoRequestMappingAnnotationCodeAction implements RecipeCodeActionDescriptor {
private static final String LABEL = "Replace @RequestMapping with specific @GetMapping, @PostMapping etc.";
private static final String ID = "org.openrewrite.java.spring.NoRequestMappingAnnotation";
private static final String ID = NoRequestMappingAnnotation.class.getName();
private static final AnnotationMatcher REQUEST_MAPPING_ANNOTATION_MATCHER = new AnnotationMatcher("@org.springframework.web.bind.annotation.RequestMapping");
@Override

View File

@@ -39,6 +39,7 @@ import org.springframework.ide.vscode.commons.languageserver.reconcile.ProblemTy
import org.springframework.ide.vscode.commons.rewrite.config.MarkerVisitorContext;
import org.springframework.ide.vscode.commons.rewrite.config.RecipeCodeActionDescriptor;
import org.springframework.ide.vscode.commons.rewrite.config.RecipeScope;
import org.springframework.ide.vscode.commons.rewrite.java.DefineMethod;
import org.springframework.ide.vscode.commons.rewrite.java.FixAssistMarker;
import org.springframework.ide.vscode.commons.rewrite.java.FixDescriptor;
import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
@@ -49,7 +50,7 @@ import com.google.common.collect.ImmutableSet;
public class NotRegisteredBeansProblem implements RecipeCodeActionDescriptor {
private static final String DEFINE_METHOD_RECIPE = "org.springframework.ide.vscode.commons.rewrite.java.DefineMethod";
private static final String DEFINE_METHOD_RECIPE = DefineMethod.class.getName();
private static final List<String> AOT_BEANS = List.of(
"org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor",

View File

@@ -19,6 +19,7 @@ import org.openrewrite.ExecutionContext;
import org.openrewrite.SourceFile;
import org.openrewrite.Tree;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.spring.boot3.PreciseBeanType;
import org.openrewrite.java.tree.J;
import org.openrewrite.java.tree.J.Return;
import org.openrewrite.java.tree.JavaType;
@@ -35,7 +36,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class PreciseBeanTypeProblem implements RecipeCodeActionDescriptor {
private static final String RECIPE_ID = "org.openrewrite.java.spring.boot3.PreciseBeanType";
private static final String RECIPE_ID = PreciseBeanType.class.getName();
private static final String LABEL = "Ensure concrete bean type";

View File

@@ -21,6 +21,7 @@ import org.openrewrite.Tree;
import org.openrewrite.internal.ListUtils;
import org.openrewrite.java.AnnotationMatcher;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.spring.boot2.UnnecessarySpringExtension;
import org.openrewrite.java.tree.J.ClassDeclaration;
import org.openrewrite.java.tree.JavaType.FullyQualified;
import org.openrewrite.java.tree.TypeUtils;
@@ -36,7 +37,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class UnnecessarySpringExtensionProblem implements RecipeCodeActionDescriptor {
private static final String LABEL = "Remove unnecessary @SpringExtension";
private static final String ID = "org.openrewrite.java.spring.boot2.UnnecessarySpringExtension";
private static final String ID = UnnecessarySpringExtension.class.getName();
private static final List<String> SPRING_BOOT_TEST_ANNOTATIONS = Arrays.asList(
"org.springframework.boot.test.context.SpringBootTest",
"org.springframework.boot.test.autoconfigure.jdbc.JdbcTest",

View File

@@ -17,6 +17,7 @@ import org.openrewrite.ExecutionContext;
import org.openrewrite.SourceFile;
import org.openrewrite.Tree;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.spring.security5.WebSecurityConfigurerAdapter;
import org.openrewrite.java.tree.J;
import org.openrewrite.java.tree.J.ClassDeclaration;
import org.openrewrite.java.tree.JavaType;
@@ -37,7 +38,7 @@ import org.springframework.ide.vscode.commons.rewrite.java.JavaMarkerVisitor;
public class WebSecurityConfigurerAdapterCodeAction implements RecipeCodeActionDescriptor {
private static final String ID = "org.openrewrite.java.spring.boot2.WebSecurityConfigurerAdapter";
private static final String ID = WebSecurityConfigurerAdapter.class.getName();
private static final String FQN_WEB_SECURITY_CONFIGURER_ADAPTER = "org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter";