From a7d8d379cfcd65693dde5be6ef9ad19ed79e3dd8 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Fri, 10 Jan 2025 10:18:52 -0800 Subject: [PATCH 01/10] Update README.md --- README.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 698a442269..8250e37d9a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,25 @@ -![Logo](https://github.com/openrewrite/rewrite/raw/main/doc/logo-oss.png) - -### Migrate to later Java versions. Automatically. - +

+ + + + + OpenRewrite Logo + + +

+ +
+

rewrite-migrate-java

+
+ +
+ + [![ci](https://github.com/openrewrite/rewrite-migrate-java/actions/workflows/ci.yml/badge.svg)](https://github.com/openrewrite/rewrite-migrate-java/actions/workflows/ci.yml) [![Maven Central](https://img.shields.io/maven-central/v/org.openrewrite.recipe/rewrite-migrate-java.svg)](https://mvnrepository.com/artifact/org.openrewrite.recipe/rewrite-migrate-java) [![Revved up by Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A)](https://ge.openrewrite.org/scans) +[![Contributing Guide](https://img.shields.io/badge/Contributing-Guide-informational)](https://github.com/openrewrite/.github/blob/main/CONTRIBUTING.md) +
### What is this? From 8f4253e6ed38979a85457a1b07532bb565dec4f5 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sun, 12 Jan 2025 22:49:17 +0100 Subject: [PATCH 02/10] Add LombokBestPractices Fixes #658 --- .../resources/META-INF/rewrite/lombok.yml | 21 ++++- .../lombok/LombokBestPracticesTest.java | 93 +++++++++++++++++++ 2 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/openrewrite/java/migrate/lombok/LombokBestPracticesTest.java diff --git a/src/main/resources/META-INF/rewrite/lombok.yml b/src/main/resources/META-INF/rewrite/lombok.yml index 4dd3207b52..9c13f664aa 100644 --- a/src/main/resources/META-INF/rewrite/lombok.yml +++ b/src/main/resources/META-INF/rewrite/lombok.yml @@ -13,7 +13,26 @@ # See the License for the specific language governing permissions and # limitations under the License. # - +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.java.migrate.lombok.LombokBestPractices +displayName: Lombok Best Practices +description: >- + Applies all recipes that enforce best practices for using Lombok. +recipeList: + - org.openrewrite.java.migrate.lombok.UpdateLombokToJava11 + - org.openrewrite.java.migrate.lombok.log.UseLombokLogAnnotations + - org.openrewrite.java.migrate.lombok.UseLombokGetter + - org.openrewrite.java.migrate.lombok.UseLombokSetter + - org.openrewrite.java.migrate.lombok.UseNoArgsConstructor + - org.openrewrite.maven.ChangeDependencyScope: + groupId: org.projectlombok + artifactId: lombok + newScope: provided + - org.openrewrite.maven.ChangeDependencyScope: + groupId: org.projectlombok + artifactId: lombok-mapstruct-binding + newScope: provided --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.migrate.lombok.UpdateLombokToJava11 diff --git a/src/test/java/org/openrewrite/java/migrate/lombok/LombokBestPracticesTest.java b/src/test/java/org/openrewrite/java/migrate/lombok/LombokBestPracticesTest.java new file mode 100644 index 0000000000..61769c575f --- /dev/null +++ b/src/test/java/org/openrewrite/java/migrate/lombok/LombokBestPracticesTest.java @@ -0,0 +1,93 @@ +/* + * 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. + */ +package org.openrewrite.java.migrate.lombok; + +import org.junit.jupiter.api.Test; +import org.openrewrite.DocumentExample; +import org.openrewrite.test.RecipeSpec; +import org.openrewrite.test.RewriteTest; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.openrewrite.maven.Assertions.pomXml; + +class LombokBestPracticesTest implements RewriteTest { + + @Override + public void defaults(RecipeSpec spec) { + spec.recipeFromResource("/META-INF/rewrite/lombok.yml", + "org.openrewrite.java.migrate.lombok.LombokBestPractices"); + } + + @DocumentExample + @Test + void providedScope() { + rewriteRun( + pomXml( + //language=xml + """ + + 4.0.0 + com.example + example + 1.0.0 + + + org.projectlombok + lombok + 1.18.6 + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + + + + """, + spec -> spec.after(pom -> { + Matcher version = Pattern.compile("1.[1-9]\\d+(.\\d+)?").matcher(pom); + assertThat(version.find()).isTrue(); + //language=xml + return """ + + 4.0.0 + com.example + example + 1.0.0 + + + org.projectlombok + lombok + %s + provided + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + provided + + + + """.formatted(version.group(0)); + }) + ) + ); + } +} From e4e2ecd60ed8f9e013b43b0168f5497471bd59a3 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sun, 12 Jan 2025 23:00:38 +0100 Subject: [PATCH 03/10] Exclude Lombok when it comes in transitively Fixes #659 --- .../resources/META-INF/rewrite/lombok.yml | 3 + .../lombok/LombokBestPracticesTest.java | 95 +++++++++++++++++++ 2 files changed, 98 insertions(+) diff --git a/src/main/resources/META-INF/rewrite/lombok.yml b/src/main/resources/META-INF/rewrite/lombok.yml index 9c13f664aa..9e384f14bf 100644 --- a/src/main/resources/META-INF/rewrite/lombok.yml +++ b/src/main/resources/META-INF/rewrite/lombok.yml @@ -33,6 +33,9 @@ recipeList: groupId: org.projectlombok artifactId: lombok-mapstruct-binding newScope: provided + - org.openrewrite.maven.ExcludeDependency: + groupId: org.projectlombok + artifactId: lombok --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.migrate.lombok.UpdateLombokToJava11 diff --git a/src/test/java/org/openrewrite/java/migrate/lombok/LombokBestPracticesTest.java b/src/test/java/org/openrewrite/java/migrate/lombok/LombokBestPracticesTest.java index 61769c575f..72a1dad87b 100644 --- a/src/test/java/org/openrewrite/java/migrate/lombok/LombokBestPracticesTest.java +++ b/src/test/java/org/openrewrite/java/migrate/lombok/LombokBestPracticesTest.java @@ -19,11 +19,13 @@ import org.openrewrite.DocumentExample; import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; +import org.openrewrite.test.SourceSpec; import java.util.regex.Matcher; import java.util.regex.Pattern; import static org.assertj.core.api.Assertions.assertThat; +import static org.openrewrite.java.Assertions.mavenProject; import static org.openrewrite.maven.Assertions.pomXml; class LombokBestPracticesTest implements RewriteTest { @@ -90,4 +92,97 @@ void providedScope() { ) ); } + + @Test + void excludeTransitiveLombok() { + //language=xml + rewriteRun( + mavenProject( + "parent", + pomXml( + """ + + 4.0.0 + com.example + parent + 1.0.0 + + library + project + + + """ + ), + mavenProject("library", + pomXml( + """ + + 4.0.0 + + com.example + parent + 1.0.0 + + library + + + org.projectlombok + lombok + 1.18.6 + + + + """, + SourceSpec::skip // Keep as is, such that we trigger exclude below + ) + ), + mavenProject("project", + pomXml( + """ + + 4.0.0 + + com.example + parent + 1.0.0 + + project + + + com.example + library + 1.0.0 + + + + """, + """ + + 4.0.0 + + com.example + parent + 1.0.0 + + project + + + com.example + library + 1.0.0 + + + org.projectlombok + lombok + + + + + + """ + ) + ) + ) + ); + } } From 0777785cd40bfd2f2fa986a0fffc7dc959ceb8e0 Mon Sep 17 00:00:00 2001 From: "team-moderne[bot]" Date: Mon, 13 Jan 2025 10:15:00 +0000 Subject: [PATCH 04/10] [Auto] SDKMAN! Java candidates as of 2025-01-13T1015 --- src/main/resources/sdkman-java.csv | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/resources/sdkman-java.csv b/src/main/resources/sdkman-java.csv index 38ce134697..332f5dcd5d 100644 --- a/src/main/resources/sdkman-java.csv +++ b/src/main/resources/sdkman-java.csv @@ -78,15 +78,21 @@ 24.ea.25-graal 24.ea.26-graal 24.ea.26-open +24.ea.27-graal 24.ea.27-open 24.ea.28-open 24.ea.29-open +24.ea.30-open +24.ea.31-open 25.ea.1-graal 25.ea.1-open 25.ea.2-graal 25.ea.2-open 25.ea.3-graal 25.ea.3-open +25.ea.4-graal +25.ea.4-open +25.ea.5-open 6.0.119-zulu 7.0.352-zulu 8.0.282-trava From ef63ef1a3a4c178e07b8a4f1e1ee5c5fef02c60a Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Wed, 15 Jan 2025 11:59:59 +0100 Subject: [PATCH 05/10] Fix compilation after addition of argument --- .../org/openrewrite/java/migrate/javax/AddColumnAnnotation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openrewrite/java/migrate/javax/AddColumnAnnotation.java b/src/main/java/org/openrewrite/java/migrate/javax/AddColumnAnnotation.java index ee0b329465..aa614b3ecc 100644 --- a/src/main/java/org/openrewrite/java/migrate/javax/AddColumnAnnotation.java +++ b/src/main/java/org/openrewrite/java/migrate/javax/AddColumnAnnotation.java @@ -90,7 +90,7 @@ public J.VariableDeclarations visitVariableDeclarations(J.VariableDeclarations m // Update existing @Column annotation J.VariableDeclarations updatedVariable = (J.VariableDeclarations) new AddOrUpdateAnnotationAttribute( - "javax.persistence.Column", "name", "element", true, null) + "javax.persistence.Column", "name", "element", null, true, null) .getVisitor().visit(multiVariable, ctx, getCursor().getParentTreeCursor()); return super.visitVariableDeclarations(updatedVariable, ctx); } From e65836d361e6b1567fc1713a4d7b90d074b15033 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Thu, 16 Jan 2025 21:05:57 +0100 Subject: [PATCH 06/10] Create a LICENSE folder (#660) --- LICENSE/apache-license-v2.txt | 202 ++++++++++++++++++ .../moderne-source-available-license.md | 0 2 files changed, 202 insertions(+) create mode 100644 LICENSE/apache-license-v2.txt rename LICENSE.md => LICENSE/moderne-source-available-license.md (100%) diff --git a/LICENSE/apache-license-v2.txt b/LICENSE/apache-license-v2.txt new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/LICENSE/apache-license-v2.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + 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. diff --git a/LICENSE.md b/LICENSE/moderne-source-available-license.md similarity index 100% rename from LICENSE.md rename to LICENSE/moderne-source-available-license.md From d7cd15568c8e112a25cd7d0648d0312e39989009 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Thu, 16 Jan 2025 22:12:36 +0100 Subject: [PATCH 07/10] Drop unused rewrite-github-actions --- build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 8fbf549af1..f0746d9241 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,7 +23,6 @@ dependencies { implementation("org.openrewrite:rewrite-java") implementation("org.openrewrite:rewrite-maven") implementation("org.openrewrite:rewrite-gradle") - implementation("org.openrewrite.recipe:rewrite-github-actions:$rewriteVersion") implementation("org.openrewrite.recipe:rewrite-java-dependencies:$rewriteVersion") implementation("org.openrewrite.recipe:rewrite-static-analysis:$rewriteVersion") implementation("org.openrewrite.recipe:rewrite-jenkins:$rewriteVersion") From 96956babe4bce4be395db08ce4a88eb5337e4c33 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Thu, 16 Jan 2025 22:14:01 +0100 Subject: [PATCH 08/10] Drop references to GitHub `SetupJavaUpgradeJavaVersion` --- src/main/resources/META-INF/rewrite/java-version-11.yml | 2 -- src/main/resources/META-INF/rewrite/java-version-17.yml | 2 -- src/main/resources/META-INF/rewrite/java-version-21.yml | 1 - 3 files changed, 5 deletions(-) diff --git a/src/main/resources/META-INF/rewrite/java-version-11.yml b/src/main/resources/META-INF/rewrite/java-version-11.yml index 5ad5aa2657..a07b19a2a9 100644 --- a/src/main/resources/META-INF/rewrite/java-version-11.yml +++ b/src/main/resources/META-INF/rewrite/java-version-11.yml @@ -99,8 +99,6 @@ recipeList: groupId: org.apache.maven.plugins artifactId: maven-compiler-plugin newVersion: 3.6.2 - - org.openrewrite.github.SetupJavaUpgradeJavaVersion: - minimumJavaMajorVersion: 11 - org.openrewrite.maven.UpgradePluginVersion: groupId: ro.isdc.wro4j artifactId: wro4j-maven-plugin diff --git a/src/main/resources/META-INF/rewrite/java-version-17.yml b/src/main/resources/META-INF/rewrite/java-version-17.yml index 4eb233dcd9..1ab8dfb5e8 100644 --- a/src/main/resources/META-INF/rewrite/java-version-17.yml +++ b/src/main/resources/META-INF/rewrite/java-version-17.yml @@ -78,8 +78,6 @@ description: Updates plugins to version compatible with Java 17. tags: - java17 recipeList: - - org.openrewrite.github.SetupJavaUpgradeJavaVersion: - minimumJavaMajorVersion: 17 - org.openrewrite.gradle.UpdateGradleWrapper: version: 7.3 addIfMissing: false diff --git a/src/main/resources/META-INF/rewrite/java-version-21.yml b/src/main/resources/META-INF/rewrite/java-version-21.yml index f8907448c4..cea0cb6281 100644 --- a/src/main/resources/META-INF/rewrite/java-version-21.yml +++ b/src/main/resources/META-INF/rewrite/java-version-21.yml @@ -33,7 +33,6 @@ recipeList: - org.openrewrite.java.migrate.util.SequencedCollection - org.openrewrite.java.migrate.util.UseLocaleOf - org.openrewrite.staticanalysis.ReplaceDeprecatedRuntimeExecMethods - - org.openrewrite.github.SetupJavaUpgradeJavaVersion - org.openrewrite.java.migrate.UpgradePluginsForJava21 - org.openrewrite.java.migrate.DeleteDeprecatedFinalize - org.openrewrite.java.migrate.RemovedSubjectMethods From e0a9a982664cd97b1edff4ab4bc5b1815f59dd30 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Thu, 16 Jan 2025 22:37:06 +0100 Subject: [PATCH 09/10] Restore GitHub Actions recipes --- build.gradle.kts | 1 + src/main/resources/META-INF/rewrite/java-version-11.yml | 2 ++ src/main/resources/META-INF/rewrite/java-version-17.yml | 2 ++ src/main/resources/META-INF/rewrite/java-version-21.yml | 1 + 4 files changed, 6 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index f0746d9241..8fbf549af1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { implementation("org.openrewrite:rewrite-java") implementation("org.openrewrite:rewrite-maven") implementation("org.openrewrite:rewrite-gradle") + implementation("org.openrewrite.recipe:rewrite-github-actions:$rewriteVersion") implementation("org.openrewrite.recipe:rewrite-java-dependencies:$rewriteVersion") implementation("org.openrewrite.recipe:rewrite-static-analysis:$rewriteVersion") implementation("org.openrewrite.recipe:rewrite-jenkins:$rewriteVersion") diff --git a/src/main/resources/META-INF/rewrite/java-version-11.yml b/src/main/resources/META-INF/rewrite/java-version-11.yml index a07b19a2a9..5ad5aa2657 100644 --- a/src/main/resources/META-INF/rewrite/java-version-11.yml +++ b/src/main/resources/META-INF/rewrite/java-version-11.yml @@ -99,6 +99,8 @@ recipeList: groupId: org.apache.maven.plugins artifactId: maven-compiler-plugin newVersion: 3.6.2 + - org.openrewrite.github.SetupJavaUpgradeJavaVersion: + minimumJavaMajorVersion: 11 - org.openrewrite.maven.UpgradePluginVersion: groupId: ro.isdc.wro4j artifactId: wro4j-maven-plugin diff --git a/src/main/resources/META-INF/rewrite/java-version-17.yml b/src/main/resources/META-INF/rewrite/java-version-17.yml index 1ab8dfb5e8..4eb233dcd9 100644 --- a/src/main/resources/META-INF/rewrite/java-version-17.yml +++ b/src/main/resources/META-INF/rewrite/java-version-17.yml @@ -78,6 +78,8 @@ description: Updates plugins to version compatible with Java 17. tags: - java17 recipeList: + - org.openrewrite.github.SetupJavaUpgradeJavaVersion: + minimumJavaMajorVersion: 17 - org.openrewrite.gradle.UpdateGradleWrapper: version: 7.3 addIfMissing: false diff --git a/src/main/resources/META-INF/rewrite/java-version-21.yml b/src/main/resources/META-INF/rewrite/java-version-21.yml index cea0cb6281..f8907448c4 100644 --- a/src/main/resources/META-INF/rewrite/java-version-21.yml +++ b/src/main/resources/META-INF/rewrite/java-version-21.yml @@ -33,6 +33,7 @@ recipeList: - org.openrewrite.java.migrate.util.SequencedCollection - org.openrewrite.java.migrate.util.UseLocaleOf - org.openrewrite.staticanalysis.ReplaceDeprecatedRuntimeExecMethods + - org.openrewrite.github.SetupJavaUpgradeJavaVersion - org.openrewrite.java.migrate.UpgradePluginsForJava21 - org.openrewrite.java.migrate.DeleteDeprecatedFinalize - org.openrewrite.java.migrate.RemovedSubjectMethods From 6d7ba9f6f26657ec383b74b46485a20d435386d3 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Fri, 17 Jan 2025 15:28:58 +0100 Subject: [PATCH 10/10] Use recipes moved to openrewrite/rewrite (#662) * Use recipes moved to openrewrite/rewrite * Update references to moved recipes * Also move `UpdateMavenProjectPropertyJavaVersion` * Clean up imports --- .../ChangeMethodInvocationReturnType.java | 77 ++---------- .../migrate/ReplaceStringLiteralValue.java | 29 ++--- .../java/migrate/UpgradeJavaVersion.java | 10 +- ...UpdateMavenProjectPropertyJavaVersion.java | 114 +++--------------- ...venCompilerPluginReleaseConfiguration.java | 74 ++---------- .../resources/META-INF/rewrite/ibm-java.yml | 4 +- .../META-INF/rewrite/java-version-17.yml | 4 +- .../ChangeMethodInvocationReturnTypeTest.java | 1 + ...teMavenProjectPropertyJavaVersionTest.java | 1 + ...ompilerPluginReleaseConfigurationTest.java | 81 +++++++------ 10 files changed, 96 insertions(+), 299 deletions(-) diff --git a/src/main/java/org/openrewrite/java/migrate/ChangeMethodInvocationReturnType.java b/src/main/java/org/openrewrite/java/migrate/ChangeMethodInvocationReturnType.java index d1a42a989b..6bc4f71226 100644 --- a/src/main/java/org/openrewrite/java/migrate/ChangeMethodInvocationReturnType.java +++ b/src/main/java/org/openrewrite/java/migrate/ChangeMethodInvocationReturnType.java @@ -17,22 +17,19 @@ import lombok.EqualsAndHashCode; import lombok.Value; -import org.openrewrite.ExecutionContext; import org.openrewrite.Option; import org.openrewrite.Recipe; -import org.openrewrite.TreeVisitor; -import org.openrewrite.internal.ListUtils; -import org.openrewrite.java.JavaIsoVisitor; -import org.openrewrite.java.MethodMatcher; -import org.openrewrite.java.tree.J; -import org.openrewrite.java.tree.JavaType; -import org.openrewrite.java.tree.TypeUtils; -import org.openrewrite.marker.Markers; -import static java.util.Collections.emptyList; +import java.util.List; +import static java.util.Collections.singletonList; + +/** + * @deprecated in favor of {@link org.openrewrite.java.ChangeMethodInvocationReturnType}. + */ @Value @EqualsAndHashCode(callSuper = false) +@Deprecated public class ChangeMethodInvocationReturnType extends Recipe { @Option(displayName = "Method pattern", @@ -56,63 +53,7 @@ public String getDescription() { } @Override - public TreeVisitor getVisitor() { - return new JavaIsoVisitor() { - private final MethodMatcher methodMatcher = new MethodMatcher(methodPattern, false); - - private boolean methodUpdated; - - @Override - public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) { - J.MethodInvocation m = super.visitMethodInvocation(method, ctx); - JavaType.Method type = m.getMethodType(); - if (methodMatcher.matches(method) && type != null && !newReturnType.equals(type.getReturnType().toString())) { - type = type.withReturnType(JavaType.buildType(newReturnType)); - m = m.withMethodType(type); - if (m.getName().getType() != null) { - m = m.withName(m.getName().withType(type)); - } - methodUpdated = true; - } - return m; - } - - @Override - public J.VariableDeclarations visitVariableDeclarations(J.VariableDeclarations multiVariable, ExecutionContext ctx) { - methodUpdated = false; - JavaType.FullyQualified originalType = multiVariable.getTypeAsFullyQualified(); - J.VariableDeclarations mv = super.visitVariableDeclarations(multiVariable, ctx); - - if (methodUpdated) { - JavaType newType = JavaType.buildType(newReturnType); - JavaType.FullyQualified newFieldType = TypeUtils.asFullyQualified(newType); - - maybeAddImport(newFieldType); - maybeRemoveImport(originalType); - - mv = mv.withTypeExpression(mv.getTypeExpression() == null ? - null : - new J.Identifier(mv.getTypeExpression().getId(), - mv.getTypeExpression().getPrefix(), - Markers.EMPTY, - emptyList(), - newReturnType.substring(newReturnType.lastIndexOf('.') + 1), - newType, - null - ) - ); - - mv = mv.withVariables(ListUtils.map(mv.getVariables(), var -> { - JavaType.FullyQualified varType = TypeUtils.asFullyQualified(var.getType()); - if (varType != null && !varType.equals(newType)) { - return var.withType(newType).withName(var.getName().withType(newType)); - } - return var; - })); - } - - return mv; - } - }; + public List getRecipeList() { + return singletonList(new org.openrewrite.java.ChangeMethodInvocationReturnType(methodPattern, newReturnType)); } } diff --git a/src/main/java/org/openrewrite/java/migrate/ReplaceStringLiteralValue.java b/src/main/java/org/openrewrite/java/migrate/ReplaceStringLiteralValue.java index 5addb03b5b..3aa093bff1 100644 --- a/src/main/java/org/openrewrite/java/migrate/ReplaceStringLiteralValue.java +++ b/src/main/java/org/openrewrite/java/migrate/ReplaceStringLiteralValue.java @@ -20,16 +20,19 @@ import lombok.EqualsAndHashCode; import lombok.Value; import org.jspecify.annotations.NonNull; -import org.openrewrite.ExecutionContext; import org.openrewrite.Option; import org.openrewrite.Recipe; -import org.openrewrite.TreeVisitor; -import org.openrewrite.java.JavaIsoVisitor; -import org.openrewrite.java.tree.J; -import org.openrewrite.java.tree.JavaType; +import java.util.List; + +import static java.util.Collections.singletonList; + +/** + * @deprecated in favor of {@link org.openrewrite.java.ReplaceStringLiteralValue}. + */ @Value @EqualsAndHashCode(callSuper = false) +@Deprecated public class ReplaceStringLiteralValue extends Recipe { @Option(displayName = "Old literal `String` value", @@ -61,19 +64,7 @@ public String getDescription() { } @Override - public TreeVisitor getVisitor() { - return new JavaIsoVisitor() { - @Override - public J.Literal visitLiteral(J.Literal literal, ExecutionContext ctx) { - J.Literal l = super.visitLiteral(literal, ctx); - if (l.getType() != JavaType.Primitive.String || !oldLiteralValue.equals(literal.getValue())) { - return l; - } - return literal - .withValue(newLiteralValue) - .withValueSource('"' + newLiteralValue + '"'); - } - }; + public List getRecipeList() { + return singletonList(new org.openrewrite.java.ReplaceStringLiteralValue(oldLiteralValue, newLiteralValue)); } - } diff --git a/src/main/java/org/openrewrite/java/migrate/UpgradeJavaVersion.java b/src/main/java/org/openrewrite/java/migrate/UpgradeJavaVersion.java index 72f461897a..c3997d6d6f 100644 --- a/src/main/java/org/openrewrite/java/migrate/UpgradeJavaVersion.java +++ b/src/main/java/org/openrewrite/java/migrate/UpgradeJavaVersion.java @@ -24,9 +24,9 @@ import org.openrewrite.gradle.UpdateJavaCompatibility; import org.openrewrite.java.JavaIsoVisitor; import org.openrewrite.java.marker.JavaVersion; -import org.openrewrite.java.migrate.maven.UpdateMavenProjectPropertyJavaVersion; -import org.openrewrite.java.migrate.maven.UseMavenCompilerPluginReleaseConfiguration; import org.openrewrite.java.tree.J; +import org.openrewrite.maven.UpdateMavenProjectPropertyJavaVersion; +import org.openrewrite.maven.UseMavenCompilerPluginReleaseConfiguration; import java.time.Duration; import java.util.*; @@ -48,9 +48,9 @@ public String getDisplayName() { @Override public String getDescription() { return "Upgrade build plugin configuration to use the specified Java version. " + - "This recipe changes `java.toolchain.languageVersion` in `build.gradle(.kts)` of gradle projects, " + - "or maven-compiler-plugin target version and related settings. " + - "Will not downgrade if the version is newer than the specified version."; + "This recipe changes `java.toolchain.languageVersion` in `build.gradle(.kts)` of gradle projects, " + + "or maven-compiler-plugin target version and related settings. " + + "Will not downgrade if the version is newer than the specified version."; } @Override diff --git a/src/main/java/org/openrewrite/java/migrate/maven/UpdateMavenProjectPropertyJavaVersion.java b/src/main/java/org/openrewrite/java/migrate/maven/UpdateMavenProjectPropertyJavaVersion.java index 04f154724b..171ca3e875 100644 --- a/src/main/java/org/openrewrite/java/migrate/maven/UpdateMavenProjectPropertyJavaVersion.java +++ b/src/main/java/org/openrewrite/java/migrate/maven/UpdateMavenProjectPropertyJavaVersion.java @@ -17,41 +17,21 @@ import lombok.EqualsAndHashCode; import lombok.Value; -import org.openrewrite.ExecutionContext; import org.openrewrite.Option; import org.openrewrite.Recipe; -import org.openrewrite.TreeVisitor; -import org.openrewrite.maven.AddProperty; -import org.openrewrite.maven.MavenIsoVisitor; -import org.openrewrite.xml.XPathMatcher; -import org.openrewrite.xml.tree.Xml; -import java.util.Arrays; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; +import static java.util.Collections.singletonList; + +/** + * @deprecated in favor of {@link org.openrewrite.maven.UpdateMavenProjectPropertyJavaVersion} + */ @Value @EqualsAndHashCode(callSuper = false) +@Deprecated public class UpdateMavenProjectPropertyJavaVersion extends Recipe { - private static final List JAVA_VERSION_PROPERTIES = Arrays.asList( - "java.version", - "jdk.version", - "javaVersion", - "jdkVersion", - "maven.compiler.source", - "maven.compiler.target", - "maven.compiler.release", - "release.version"); - - private static final List JAVA_VERSION_XPATH_MATCHERS = - JAVA_VERSION_PROPERTIES.stream() - .map(property -> "/project/properties/" + property) - .map(XPathMatcher::new).collect(Collectors.toList()); - - private static final XPathMatcher PLUGINS_MATCHER = new XPathMatcher("/project/build//plugins"); - @Option(displayName = "Java version", description = "The Java version to upgrade to.", example = "11") @@ -66,79 +46,19 @@ public String getDisplayName() { public String getDescription() { //language=markdown return "The Java version is determined by several project properties, including:\n\n" + - " * `java.version`\n" + - " * `jdk.version`\n" + - " * `javaVersion`\n" + - " * `jdkVersion`\n" + - " * `maven.compiler.source`\n" + - " * `maven.compiler.target`\n" + - " * `maven.compiler.release`\n" + - " * `release.version`\n\n" + - "If none of these properties are in use and the maven compiler plugin is not otherwise configured, adds the `maven.compiler.release` property."; + " * `java.version`\n" + + " * `jdk.version`\n" + + " * `javaVersion`\n" + + " * `jdkVersion`\n" + + " * `maven.compiler.source`\n" + + " * `maven.compiler.target`\n" + + " * `maven.compiler.release`\n" + + " * `release.version`\n\n" + + "If none of these properties are in use and the maven compiler plugin is not otherwise configured, adds the `maven.compiler.release` property."; } @Override - public TreeVisitor getVisitor() { - return new MavenIsoVisitor() { - boolean compilerPluginConfiguredExplicitly; - - @Override - public Xml.Document visitDocument(Xml.Document document, ExecutionContext ctx) { - // Update properties already defined in the current pom - Xml.Document d = super.visitDocument(document, ctx); - - // Return early if the parent appears to be within the current repository, as properties defined there will be updated - if (getResolutionResult().parentPomIsProjectPom()) { - return d; - } - - // Otherwise override remote parent's properties locally - Map currentProperties = getResolutionResult().getPom().getProperties(); - boolean foundProperty = false; - for (String property : JAVA_VERSION_PROPERTIES) { - String propertyValue = currentProperties.get(property); - if (propertyValue != null) { - foundProperty = true; - try { - if (Float.parseFloat(propertyValue) < version) { - d = (Xml.Document) new AddProperty(property, String.valueOf(version), null, false) - .getVisitor() - .visitNonNull(d, ctx); - maybeUpdateModel(); - } - } catch (NumberFormatException ex) { - // either an expression or something else, don't touch - } - } - } - - // When none of the relevant properties are explicitly configured Maven defaults to Java 8 - // The release option was added in 9 - // If no properties have yet been updated then set release explicitly - if (!foundProperty && version >= 9 && !compilerPluginConfiguredExplicitly) { - d = (Xml.Document) new AddProperty("maven.compiler.release", String.valueOf(version), null, false) - .getVisitor() - .visitNonNull(d, ctx); - maybeUpdateModel(); - } - - return d; - } - - @Override - public Xml.Tag visitTag(Xml.Tag tag, ExecutionContext ctx) { - Xml.Tag t = super.visitTag(tag, ctx); - if (isPluginTag("org.apache.maven.plugins", "maven-compiler-plugin")) { - t.getChild("configuration").ifPresent(compilerPluginConfig -> { - if (compilerPluginConfig.getChildValue("source").isPresent() || - compilerPluginConfig.getChildValue("target").isPresent() || - compilerPluginConfig.getChildValue("release").isPresent()) { - compilerPluginConfiguredExplicitly = true; - } - }); - } - return t; - } - }; + public List getRecipeList() { + return singletonList(new org.openrewrite.maven.UpdateMavenProjectPropertyJavaVersion(version)); } } diff --git a/src/main/java/org/openrewrite/java/migrate/maven/UseMavenCompilerPluginReleaseConfiguration.java b/src/main/java/org/openrewrite/java/migrate/maven/UseMavenCompilerPluginReleaseConfiguration.java index d44bb2478b..a4a68f8826 100644 --- a/src/main/java/org/openrewrite/java/migrate/maven/UseMavenCompilerPluginReleaseConfiguration.java +++ b/src/main/java/org/openrewrite/java/migrate/maven/UseMavenCompilerPluginReleaseConfiguration.java @@ -17,22 +17,20 @@ import lombok.EqualsAndHashCode; import lombok.Value; -import org.openrewrite.ExecutionContext; import org.openrewrite.Option; import org.openrewrite.Recipe; -import org.openrewrite.TreeVisitor; -import org.openrewrite.maven.MavenIsoVisitor; -import org.openrewrite.maven.tree.MavenResolutionResult; import org.openrewrite.xml.XPathMatcher; -import org.openrewrite.xml.tree.Xml; -import java.util.Optional; +import java.util.List; -import static org.openrewrite.xml.AddOrUpdateChild.addOrUpdateChild; -import static org.openrewrite.xml.FilterTagChildrenVisitor.filterTagChildren; +import static java.util.Collections.singletonList; +/** + * @deprecated Use {@link org.openrewrite.maven.UseMavenCompilerPluginReleaseConfiguration} instead. + */ @Value @EqualsAndHashCode(callSuper = false) +@Deprecated public class UseMavenCompilerPluginReleaseConfiguration extends Recipe { private static final XPathMatcher PLUGINS_MATCHER = new XPathMatcher("/project/build//plugins"); @@ -55,63 +53,7 @@ public String getDescription() { } @Override - public TreeVisitor getVisitor() { - return new MavenIsoVisitor() { - @Override - public Xml.Tag visitTag(Xml.Tag tag, ExecutionContext ctx) { - Xml.Tag t = super.visitTag(tag, ctx); - if (!PLUGINS_MATCHER.matches(getCursor())) { - return t; - } - Optional maybeCompilerPlugin = t.getChildren().stream() - .filter(plugin -> - "plugin".equals(plugin.getName()) && - "org.apache.maven.plugins".equals(plugin.getChildValue("groupId").orElse("org.apache.maven.plugins")) && - "maven-compiler-plugin".equals(plugin.getChildValue("artifactId").orElse(null))) - .findAny(); - Optional maybeCompilerPluginConfig = maybeCompilerPlugin - .flatMap(it -> it.getChild("configuration")); - if (!maybeCompilerPluginConfig.isPresent()) { - return t; - } - Xml.Tag compilerPluginConfig = maybeCompilerPluginConfig.get(); - Optional source = compilerPluginConfig.getChildValue("source"); - Optional target = compilerPluginConfig.getChildValue("target"); - Optional release = compilerPluginConfig.getChildValue("release"); - if (!source.isPresent() && - !target.isPresent() && - !release.isPresent() || - currentNewerThanProposed(release)) { - return t; - } - Xml.Tag updated = filterTagChildren(t, compilerPluginConfig, - child -> !("source".equals(child.getName()) || "target".equals(child.getName()))); - String releaseVersionValue = hasJavaVersionProperty(getCursor().firstEnclosingOrThrow(Xml.Document.class)) ? - "${java.version}" : releaseVersion.toString(); - updated = addOrUpdateChild(updated, compilerPluginConfig, - Xml.Tag.build("" + releaseVersionValue + ""), getCursor().getParentOrThrow()); - return updated; - } - - }; - } - - private boolean currentNewerThanProposed(@SuppressWarnings("OptionalUsedAsFieldOrParameterType") Optional maybeRelease) { - if (!maybeRelease.isPresent()) { - return false; - } - try { - float currentVersion = Float.parseFloat(maybeRelease.get()); - float proposedVersion = Float.parseFloat(releaseVersion.toString()); - return proposedVersion < currentVersion; - } catch (NumberFormatException e) { - return false; - } - } - - private boolean hasJavaVersionProperty(Xml.Document xml) { - return xml.getMarkers().findFirst(MavenResolutionResult.class) - .map(r -> r.getPom().getProperties().get("java.version") != null) - .orElse(false); + public List getRecipeList() { + return singletonList(new org.openrewrite.maven.UseMavenCompilerPluginReleaseConfiguration(releaseVersion)); } } diff --git a/src/main/resources/META-INF/rewrite/ibm-java.yml b/src/main/resources/META-INF/rewrite/ibm-java.yml index 83b8f5aba8..3f69f670b5 100644 --- a/src/main/resources/META-INF/rewrite/ibm-java.yml +++ b/src/main/resources/META-INF/rewrite/ibm-java.yml @@ -63,7 +63,7 @@ description: Do not use the `com.sun.net.ssl.internal.www.protocol` package. tags: - java11 recipeList: - - org.openrewrite.java.migrate.ReplaceStringLiteralValue: + - org.openrewrite.java.ReplaceStringLiteralValue: oldLiteralValue: com.sun.net.ssl.internal.www.protocol newLiteralValue: com.ibm.net.ssl.www2.protocol --- @@ -143,4 +143,4 @@ recipeList: artifactId: jaxb-api - org.openrewrite.java.dependencies.RemoveDependency: groupId: javax.activation - artifactId: activation \ No newline at end of file + artifactId: activation diff --git a/src/main/resources/META-INF/rewrite/java-version-17.yml b/src/main/resources/META-INF/rewrite/java-version-17.yml index 4eb233dcd9..35ba237f18 100644 --- a/src/main/resources/META-INF/rewrite/java-version-17.yml +++ b/src/main/resources/META-INF/rewrite/java-version-17.yml @@ -122,7 +122,7 @@ description: The `com.sun.net.ssl.internal.ssl.Provider` provider name was remov tags: - java17 recipeList: - - org.openrewrite.java.migrate.ReplaceStringLiteralValue: + - org.openrewrite.java.ReplaceStringLiteralValue: oldLiteralValue: com.sun.net.ssl.internal.ssl.Provider newLiteralValue: SunJSSE --- @@ -136,7 +136,7 @@ recipeList: - org.openrewrite.java.ChangeMethodName: methodPattern: java.util.logging.LogRecord getThreadID() newMethodName: getLongThreadID - - org.openrewrite.java.migrate.ChangeMethodInvocationReturnType: + - org.openrewrite.java.ChangeMethodInvocationReturnType: methodPattern: java.util.logging.LogRecord getLongThreadID() newReturnType: long - org.openrewrite.java.ChangeMethodName: diff --git a/src/test/java/org/openrewrite/java/migrate/ChangeMethodInvocationReturnTypeTest.java b/src/test/java/org/openrewrite/java/migrate/ChangeMethodInvocationReturnTypeTest.java index 0305834c9a..84d6281d94 100644 --- a/src/test/java/org/openrewrite/java/migrate/ChangeMethodInvocationReturnTypeTest.java +++ b/src/test/java/org/openrewrite/java/migrate/ChangeMethodInvocationReturnTypeTest.java @@ -23,6 +23,7 @@ import static org.openrewrite.java.Assertions.java; +@Deprecated(forRemoval = true) class ChangeMethodInvocationReturnTypeTest implements RewriteTest { @Override diff --git a/src/test/java/org/openrewrite/java/migrate/maven/UpdateMavenProjectPropertyJavaVersionTest.java b/src/test/java/org/openrewrite/java/migrate/maven/UpdateMavenProjectPropertyJavaVersionTest.java index 20bd375037..e400cac9a8 100644 --- a/src/test/java/org/openrewrite/java/migrate/maven/UpdateMavenProjectPropertyJavaVersionTest.java +++ b/src/test/java/org/openrewrite/java/migrate/maven/UpdateMavenProjectPropertyJavaVersionTest.java @@ -24,6 +24,7 @@ import static org.openrewrite.java.Assertions.mavenProject; import static org.openrewrite.maven.Assertions.pomXml; +@Deprecated(forRemoval = true) class UpdateMavenProjectPropertyJavaVersionTest implements RewriteTest { @Override diff --git a/src/test/java/org/openrewrite/java/migrate/maven/UseMavenCompilerPluginReleaseConfigurationTest.java b/src/test/java/org/openrewrite/java/migrate/maven/UseMavenCompilerPluginReleaseConfigurationTest.java index 2c3bf39938..75207ba0a8 100644 --- a/src/test/java/org/openrewrite/java/migrate/maven/UseMavenCompilerPluginReleaseConfigurationTest.java +++ b/src/test/java/org/openrewrite/java/migrate/maven/UseMavenCompilerPluginReleaseConfigurationTest.java @@ -24,6 +24,7 @@ import static org.openrewrite.java.Assertions.mavenProject; import static org.openrewrite.maven.Assertions.pomXml; +@Deprecated(forRemoval = true) class UseMavenCompilerPluginReleaseConfigurationTest implements RewriteTest { @Override public void defaults(RecipeSpec spec) { @@ -43,7 +44,7 @@ void replacesSourceAndTargetConfig() { org.sample sample 1.0.0 - + @@ -57,7 +58,7 @@ void replacesSourceAndTargetConfig() { - + """, """ @@ -67,7 +68,7 @@ void replacesSourceAndTargetConfig() { org.sample sample 1.0.0 - + @@ -80,7 +81,7 @@ void replacesSourceAndTargetConfig() { - + """ ) @@ -100,7 +101,7 @@ void replaceSourceAndTargetConfigIfDefault() { org.sample sample 1.0.0 - + @@ -115,7 +116,7 @@ void replaceSourceAndTargetConfigIfDefault() { - + """, """ @@ -125,7 +126,7 @@ void replaceSourceAndTargetConfigIfDefault() { org.sample sample 1.0.0 - + @@ -139,7 +140,7 @@ void replaceSourceAndTargetConfigIfDefault() { - + """ ) @@ -158,11 +159,11 @@ void reusesJavaVersionVariableIfAvailable() { org.sample sample 1.0.0 - + 11 - + @@ -175,7 +176,7 @@ void reusesJavaVersionVariableIfAvailable() { - + """, """ @@ -185,11 +186,11 @@ void reusesJavaVersionVariableIfAvailable() { org.sample sample 1.0.0 - + 11 - + @@ -201,7 +202,7 @@ void reusesJavaVersionVariableIfAvailable() { - + """ ) @@ -220,7 +221,7 @@ void upgradesExistingReleaseConfig() { org.sample sample 1.0.0 - + @@ -233,7 +234,7 @@ void upgradesExistingReleaseConfig() { - + """, """ @@ -243,7 +244,7 @@ void upgradesExistingReleaseConfig() { org.sample sample 1.0.0 - + @@ -256,7 +257,7 @@ void upgradesExistingReleaseConfig() { - + """ ) @@ -275,11 +276,11 @@ void prefersJavaVersionIfAvailable() { org.sample sample 1.0.0 - + 11 - + @@ -292,7 +293,7 @@ void prefersJavaVersionIfAvailable() { - + """, """ @@ -302,11 +303,11 @@ void prefersJavaVersionIfAvailable() { org.sample sample 1.0.0 - + 11 - + @@ -319,7 +320,7 @@ void prefersJavaVersionIfAvailable() { - + """ ) @@ -338,11 +339,11 @@ void notMisledByUnrelatedProperty() { org.sample sample 1.0.0 - + 11 - + @@ -356,7 +357,7 @@ void notMisledByUnrelatedProperty() { - + """, """ @@ -366,11 +367,11 @@ void notMisledByUnrelatedProperty() { org.sample sample 1.0.0 - + 11 - + @@ -384,7 +385,7 @@ void notMisledByUnrelatedProperty() { - + """ ) @@ -404,7 +405,7 @@ void noVersionDowngrade() { org.sample sample 1.0.0 - + @@ -417,7 +418,7 @@ void noVersionDowngrade() { - + """) ); @@ -435,11 +436,11 @@ void reusesJavaVersionVariableIfDefinedInParentPom() { org.sample parent 1.0.0 - + 11 - + pom """), @@ -450,16 +451,16 @@ void reusesJavaVersionVariableIfDefinedInParentPom() { 4.0.0 - + org.sample parent 1.0.0 - + sample 1.0.0 - + @@ -478,16 +479,16 @@ void reusesJavaVersionVariableIfDefinedInParentPom() { 4.0.0 - + org.sample parent 1.0.0 - + sample 1.0.0 - +