diff --git a/.run/InlineMethodCallsRecipeGenerator.run.xml b/.run/InlineMethodCallsRecipeGenerator.run.xml
new file mode 100644
index 0000000..ec00d38
--- /dev/null
+++ b/.run/InlineMethodCallsRecipeGenerator.run.xml
@@ -0,0 +1,10 @@
+
+# Licensed under the Moderne Source Available License (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +#
+# https://docs.moderne.io/licensing/moderne-source-available-license +#
+# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Generated InlineMe recipes from TypeTable +# + +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.recipes.rewrite.InlineMethods +displayName: Inline methods annotated with `@InlineMe` +description: >- + Automatically generated recipes to inline method calls based on `@InlineMe` annotations + discovered in the type table. +recipeList: + + # From org.openrewrite:rewrite-maven:8.62.3 + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.maven.trait.Traits mavenDependency()' + replacement: 'new MavenDependency.Matcher()' + imports: + - 'org.openrewrite.maven.MavenDependency' + classpathFromResources: + - 'rewrite-maven-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.maven.trait.Traits mavenPlugin()' + replacement: 'new MavenPlugin.Matcher()' + imports: + - 'org.openrewrite.maven.MavenPlugin' + classpathFromResources: + - 'rewrite-maven-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.maven.ChangeParentPom ChangeParentPom(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean)' + replacement: 'this(oldGroupId, newGroupId, oldArtifactId, newArtifactId, newVersion, oldRelativePath, newRelativePath, versionPattern, allowVersionDowngrades, null)' + classpathFromResources: + - 'rewrite-maven-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.maven.ChangeDependencyGroupIdAndArtifactId ChangeDependencyGroupIdAndArtifactId(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)' + replacement: 'this(oldGroupId, oldArtifactId, newGroupId, newArtifactId, newVersion, versionPattern, false, true)' + classpathFromResources: + - 'rewrite-maven-8.62.3' + + # From org.openrewrite:rewrite-gradle:8.62.3 + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.gradle.ChangeDependency ChangeDependency(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean)' + replacement: 'this(oldGroupId, oldArtifactId, newGroupId, newArtifactId, newVersion, versionPattern, overrideManagedVersion, true)' + classpathFromResources: + - 'rewrite-gradle-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.gradle.trait.Traits gradleDependency()' + replacement: 'new GradleDependency.Matcher()' + imports: + - 'org.openrewrite.gradle.GradleDependency' + classpathFromResources: + - 'rewrite-gradle-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.gradle.trait.Traits jvmTestSuite()' + replacement: 'new JvmTestSuite.Matcher()' + imports: + - 'org.openrewrite.gradle.JvmTestSuite' + classpathFromResources: + - 'rewrite-gradle-8.62.3' + + # From org.openrewrite:rewrite-java:8.62.3 + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.java.ChangeMethodTargetToStatic ChangeMethodTargetToStatic(java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean)' + replacement: 'this(methodPattern, fullyQualifiedTargetTypeName, returnType, matchOverrides, false)' + classpathFromResources: + - 'rewrite-java-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.java.trait.Traits literal()' + replacement: 'new Literal.Matcher()' + imports: + - 'org.openrewrite.java.Literal' + classpathFromResources: + - 'rewrite-java-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.java.trait.Traits variableAccess()' + replacement: 'new VariableAccess.Matcher()' + imports: + - 'org.openrewrite.java.VariableAccess' + classpathFromResources: + - 'rewrite-java-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.java.trait.Traits methodAccess(org.openrewrite.java.MethodMatcher)' + replacement: 'new MethodAccess.Matcher()' + imports: + - 'org.openrewrite.java.MethodAccess' + classpathFromResources: + - 'rewrite-java-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.java.trait.Traits methodAccess(java.lang.String)' + replacement: 'new MethodAccess.Matcher(signature)' + imports: + - 'org.openrewrite.java.MethodAccess' + classpathFromResources: + - 'rewrite-java-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.java.trait.Traits annotated(org.openrewrite.java.AnnotationMatcher)' + replacement: 'new MethodAccess.Matcher(declaringType, methodName, args)' + imports: + - 'org.openrewrite.java.MethodAccess' + classpathFromResources: + - 'rewrite-java-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.java.trait.Traits annotated(java.lang.String)' + replacement: 'new Annotated.Matcher(signature)' + imports: + - 'org.openrewrite.java.Annotated' + classpathFromResources: + - 'rewrite-java-8.62.3' + - org.openrewrite.java.InlineMethodCalls: + methodPattern: 'org.openrewrite.java.trait.Traits annotated(java.lang.Class)' + replacement: 'new Annotated.Matcher(annotationType)' + imports: + - 'org.openrewrite.java.Annotated' + classpathFromResources: + - 'rewrite-java-8.62.3' diff --git a/src/main/resources/META-INF/rewrite/recipebestpractice.yml b/src/main/resources/META-INF/rewrite/recipebestpractice.yml index ab71cc7..b39b696 100644 --- a/src/main/resources/META-INF/rewrite/recipebestpractice.yml +++ b/src/main/resources/META-INF/rewrite/recipebestpractice.yml @@ -20,7 +20,7 @@ name: org.openrewrite.recipes.rewrite.OpenRewriteRecipeBestPractices displayName: OpenRewrite recipe best practices description: Best practices for OpenRewrite recipe development. recipeList: - - org.openrewrite.java.InlineMethodCalls + - org.openrewrite.recipes.rewrite.InlineMethods - org.openrewrite.java.recipes.JavaRecipeBestPractices - org.openrewrite.java.recipes.RecipeTestingBestPractices - org.openrewrite.java.recipes.RecipeNullabilityBestPractices diff --git a/src/test/java/org/openrewrite/java/recipes/migrate/RemoveTraitsUsageTest.java b/src/test/java/org/openrewrite/java/recipes/migrate/RemoveTraitsUsageTest.java index 74d0b29..f5e3883 100644 --- a/src/test/java/org/openrewrite/java/recipes/migrate/RemoveTraitsUsageTest.java +++ b/src/test/java/org/openrewrite/java/recipes/migrate/RemoveTraitsUsageTest.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.Test; import org.openrewrite.DocumentExample; -import org.openrewrite.java.InlineMethodCalls; import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; @@ -27,7 +26,9 @@ class RemoveTraitsUsageTest implements RewriteTest { @Override public void defaults(RecipeSpec spec) { - spec.recipe(new InlineMethodCalls()); + spec.recipeFromResource( + "/META-INF/rewrite/inline-rewrite-methods.yml", + "org.openrewrite.recipes.rewrite.InlineMethods"); } @DocumentExample