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 @@ + + + + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 0de89b3..8030964 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,9 @@ description = "A rewrite module automating best practices and major version migr recipeDependencies { parserClasspath("org.openrewrite:rewrite-core:latest.release") + parserClasspath("org.openrewrite:rewrite-gradle:latest.release") parserClasspath("org.openrewrite:rewrite-java:latest.release") + parserClasspath("org.openrewrite:rewrite-maven:latest.release") } val rewriteVersion = rewriteRecipe.rewriteVersion.get() diff --git a/src/main/resources/META-INF/rewrite/classpath.tsv.gz b/src/main/resources/META-INF/rewrite/classpath.tsv.gz new file mode 100644 index 0000000..367dc72 Binary files /dev/null and b/src/main/resources/META-INF/rewrite/classpath.tsv.gz differ diff --git a/src/main/resources/META-INF/rewrite/classpath.tsv.zip b/src/main/resources/META-INF/rewrite/classpath.tsv.zip deleted file mode 100644 index baa0969..0000000 Binary files a/src/main/resources/META-INF/rewrite/classpath.tsv.zip and /dev/null differ diff --git a/src/main/resources/META-INF/rewrite/inline-rewrite-methods.yml b/src/main/resources/META-INF/rewrite/inline-rewrite-methods.yml new file mode 100644 index 0000000..23c1d00 --- /dev/null +++ b/src/main/resources/META-INF/rewrite/inline-rewrite-methods.yml @@ -0,0 +1,127 @@ +# Copyright 2025 the original author or authors. +#

+# 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