From 851decf19847460339224506013e32b5dd5b5e78 Mon Sep 17 00:00:00 2001 From: Pierre Delagrave Date: Tue, 8 Jul 2025 12:07:32 -0400 Subject: [PATCH 1/7] add bouncycastle upgrade recipe for java < 8 --- .../rewrite/bouncycastle-jdk15to18.yml | 60 +++++++++++++++++++ .../java/migrate/BouncyCastleTest.java | 44 ++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml diff --git a/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml b/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml new file mode 100644 index 0000000000..7933fbbc41 --- /dev/null +++ b/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml @@ -0,0 +1,60 @@ +# +# 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. +# + +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18 +displayName: Migrate BouncyCastle from jdk15on to jdk15to18 for Java < 8 +description: >- + This recipe replaces the Bouncycastle artifacts from jdk15on to jdk15to18. jdk15on isn't maintained anymore and jdk18on is only for Java 8 and above. The jdk15to18 artifact is the up-to-date replacement of the unmaintained jdk15on for java < 8. +tags: + - bouncycastle +recipeList: + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcprov-jdk15on + newArtifactId: bcprov-jdk15to18 + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcutil-jdk15on + newArtifactId: bcutil-jdk15to18 + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcpkix-jdk15on + newArtifactId: bcpkix-jdk15to18 + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcmail-jdk15on + newArtifactId: bcmail-jdk15to18 + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcjmail-jdk15on + newArtifactId: bcjmail-jdk15to18 + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcpg-jdk15on + newArtifactId: bcpg-jdk15to18 + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bctls-jdk15on + newArtifactId: bctls-jdk15to18 + newVersion: latest.release diff --git a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java index ea504b57f9..27da8d5762 100644 --- a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java +++ b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java @@ -125,4 +125,48 @@ void updateBouncyCastle(String value) { ) ); } + + @ParameterizedTest + @ValueSource(strings = {"bcprov", "bcutil", "bcpkix", "bcmail", "bcjmail", "bcpg", "bctls"}) + void updateBouncyCastleForJavaLessThan8(String value) { + rewriteRun( + recipeSpec -> + recipeSpec.recipeFromResource( + "/META-INF/rewrite/bouncycastle-jdk15to18.yml", + "org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18") + , + mavenProject("project", + //language=xml + pomXml( + """ + + 4.0.0 + + com.mycompany.app + my-app + 1 + + + + org.bouncycastle + %s-jdk15on + 1.70 + + + + """.formatted(value), + spec -> spec + .after(identity()) + .afterRecipe(doc -> assertThat(doc.getMarkers().findFirst(MavenResolutionResult.class) + .get().getDependencies().get(Scope.Compile)) + .filteredOn(rd -> rd.getDepth() == 0) + .singleElement() + .satisfies(rd -> { + assertThat(rd.getGroupId()).isEqualTo("org.bouncycastle"); + assertThat(rd.getArtifactId()).isEqualTo(value + "-jdk15to18"); + })) + ) + ) + ); + } } From 5a9f1f4b4c7dfd80813e1711a0fd3a17833ff0f9 Mon Sep 17 00:00:00 2001 From: Pierre Delagrave Date: Tue, 8 Jul 2025 13:23:12 -0400 Subject: [PATCH 2/7] include in UpgradeToJava7 --- src/main/resources/META-INF/rewrite/java-version-7.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/rewrite/java-version-7.yml b/src/main/resources/META-INF/rewrite/java-version-7.yml index 2edceffe7d..1c75bfd50b 100644 --- a/src/main/resources/META-INF/rewrite/java-version-7.yml +++ b/src/main/resources/META-INF/rewrite/java-version-7.yml @@ -28,6 +28,7 @@ recipeList: - org.openrewrite.java.migrate.JREJdbcInterfaceNewMethods - org.openrewrite.java.migrate.JREThrowableFinalMethods - org.openrewrite.java.migrate.util.ReplaceMathRandomWithThreadLocalRandomRecipe + - org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18 --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.migrate.JREJdbcInterfaceNewMethods @@ -69,4 +70,4 @@ recipeList: - org.openrewrite.java.migrate.AddMissingMethodImplementation: fullyQualifiedClassName: javax.sql.CommonDataSource methodPattern: "*..* getParentLogger()" - methodTemplateString: "public java.util.logging.Logger getParentLogger() { \n\t// TODO Auto-generated method stub\n return null; }" \ No newline at end of file + methodTemplateString: "public java.util.logging.Logger getParentLogger() { \n\t// TODO Auto-generated method stub\n return null; }" From ae1c69df029b53de05b4777af8448f3b25a0e7f4 Mon Sep 17 00:00:00 2001 From: Pierre Delagrave Date: Tue, 8 Jul 2025 13:58:36 -0400 Subject: [PATCH 3/7] * Add migration from Jdk15to18 -> Jdk18on * Add test for the added migration * Refactor tests --- .../META-INF/rewrite/bouncycastle-jdk18on.yml | 40 ++++++- .../java/migrate/BouncyCastleTest.java | 104 +++++++++--------- 2 files changed, 90 insertions(+), 54 deletions(-) diff --git a/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml b/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml index 2b3a17aa91..b185219a48 100644 --- a/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml +++ b/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml @@ -19,10 +19,11 @@ type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On displayName: Migrate BouncyCastle to jdk18on description: >- - This recipe will upgrade BouncyCastle dependencies from -jdk15on to -jdk18on. + This recipe will upgrade BouncyCastle dependencies from -jdk15on or -jdk15to18 to -jdk18on. tags: - bouncycastle recipeList: + # -jdk15on migration - org.openrewrite.java.dependencies.ChangeDependency: oldGroupId: org.bouncycastle oldArtifactId: bcprov-jdk15on @@ -58,3 +59,40 @@ recipeList: oldArtifactId: bctls-jdk15on newArtifactId: bctls-jdk18on newVersion: latest.release + + # -jdk15to18 migration + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcprov-jdk15to18 + newArtifactId: bcprov-jdk18on + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcutil-jdk15to18 + newArtifactId: bcutil-jdk18on + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcpkix-jdk15to18 + newArtifactId: bcpkix-jdk18on + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcmail-jdk15to18 + newArtifactId: bcmail-jdk18on + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcjmail-jdk15to18 + newArtifactId: bcjmail-jdk18on + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bcpg-jdk15to18 + newArtifactId: bcpg-jdk18on + newVersion: latest.release + - org.openrewrite.java.dependencies.ChangeDependency: + oldGroupId: org.bouncycastle + oldArtifactId: bctls-jdk15to18 + newArtifactId: bctls-jdk18on + newVersion: latest.release diff --git a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java index 27da8d5762..ed19ad4ebe 100644 --- a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java +++ b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java @@ -17,13 +17,15 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; +import org.junit.jupiter.params.provider.MethodSource; import org.openrewrite.DocumentExample; import org.openrewrite.maven.tree.MavenResolutionResult; import org.openrewrite.maven.tree.Scope; -import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; +import java.util.Arrays; +import java.util.List; + import static java.util.function.UnaryOperator.identity; import static org.assertj.core.api.Assertions.assertThat; import static org.openrewrite.java.Assertions.mavenProject; @@ -31,17 +33,17 @@ class BouncyCastleTest implements RewriteTest { - @Override - public void defaults(RecipeSpec spec) { - spec.recipeFromResource( - "/META-INF/rewrite/bouncycastle-jdk18on.yml", - "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On"); + static List artifactBaseNames() { + return Arrays.asList("bcprov", "bcutil", "bcpkix", "bcmail", "bcjmail", "bcpg", "bctls"); } @DocumentExample @Test void document() { rewriteRun( + spec -> spec.recipeFromResource( + "/META-INF/rewrite/bouncycastle-jdk18on.yml", + "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On"), mavenProject("project", //language=xml pomXml( @@ -86,15 +88,19 @@ void document() { ); } - - @ParameterizedTest - @ValueSource(strings = {"bcprov", "bcutil", "bcpkix", "bcmail", "bcjmail", "bcpg", "bctls"}) - void updateBouncyCastle(String value) { + void testBouncyCastleArtifactUpgradeRecipe( + String yamlFile, + String recipe, + String baseArtifactId, + String originalArtifactSuffix, + String expectedArtifactSuffix + ) { rewriteRun( + recipeSpec -> recipeSpec.recipeFromResource(yamlFile, recipe), mavenProject("project", //language=xml pomXml( - """ + """ 4.0.0 @@ -105,12 +111,12 @@ void updateBouncyCastle(String value) { org.bouncycastle - %s-jdk15on + %s-%s 1.70 - """.formatted(value), + """.formatted(baseArtifactId, originalArtifactSuffix), spec -> spec .after(identity()) .afterRecipe(doc -> assertThat(doc.getMarkers().findFirst(MavenResolutionResult.class) @@ -119,7 +125,7 @@ void updateBouncyCastle(String value) { .singleElement() .satisfies(rd -> { assertThat(rd.getGroupId()).isEqualTo("org.bouncycastle"); - assertThat(rd.getArtifactId()).isEqualTo(value + "-jdk18on"); + assertThat(rd.getArtifactId()).isEqualTo(String.format("%s-%s", baseArtifactId, expectedArtifactSuffix)); })) ) ) @@ -127,46 +133,38 @@ void updateBouncyCastle(String value) { } @ParameterizedTest - @ValueSource(strings = {"bcprov", "bcutil", "bcpkix", "bcmail", "bcjmail", "bcpg", "bctls"}) - void updateBouncyCastleForJavaLessThan8(String value) { - rewriteRun( - recipeSpec -> - recipeSpec.recipeFromResource( - "/META-INF/rewrite/bouncycastle-jdk15to18.yml", - "org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18") - , - mavenProject("project", - //language=xml - pomXml( - """ - - 4.0.0 + @MethodSource("artifactBaseNames") + void testJdk15onToJdk18on(String artifactBaseName) { + testBouncyCastleArtifactUpgradeRecipe( + "/META-INF/rewrite/bouncycastle-jdk18on.yml", + "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On", + artifactBaseName, + "jdk15on", + "jdk18on" + ); + } - com.mycompany.app - my-app - 1 + @ParameterizedTest + @MethodSource("artifactBaseNames") + void testJdk15to18ToJdk18on(String artifactBaseName) { + testBouncyCastleArtifactUpgradeRecipe( + "/META-INF/rewrite/bouncycastle-jdk18on.yml", + "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On", + artifactBaseName, + "jdk15to18", + "jdk18on" + ); + } - - - org.bouncycastle - %s-jdk15on - 1.70 - - - - """.formatted(value), - spec -> spec - .after(identity()) - .afterRecipe(doc -> assertThat(doc.getMarkers().findFirst(MavenResolutionResult.class) - .get().getDependencies().get(Scope.Compile)) - .filteredOn(rd -> rd.getDepth() == 0) - .singleElement() - .satisfies(rd -> { - assertThat(rd.getGroupId()).isEqualTo("org.bouncycastle"); - assertThat(rd.getArtifactId()).isEqualTo(value + "-jdk15to18"); - })) - ) - ) + @ParameterizedTest + @MethodSource("artifactBaseNames") + void testJdk15onToJdk15To18(String artifactBaseName) { + testBouncyCastleArtifactUpgradeRecipe( + "/META-INF/rewrite/bouncycastle-jdk15to18.yml", + "org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18", + artifactBaseName, + "jdk15on", + "jdk15to18" ); } } From 8d1e43bf806734f9e4a7ca4bd0f81cecf04f5d99 Mon Sep 17 00:00:00 2001 From: Pierre Delagrave Date: Tue, 8 Jul 2025 14:07:29 -0400 Subject: [PATCH 4/7] readability --- src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml b/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml index 7933fbbc41..36f3c743d0 100644 --- a/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml +++ b/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml @@ -19,7 +19,7 @@ type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18 displayName: Migrate BouncyCastle from jdk15on to jdk15to18 for Java < 8 description: >- - This recipe replaces the Bouncycastle artifacts from jdk15on to jdk15to18. jdk15on isn't maintained anymore and jdk18on is only for Java 8 and above. The jdk15to18 artifact is the up-to-date replacement of the unmaintained jdk15on for java < 8. + This recipe replaces the Bouncycastle artifacts from `jdk15on` to `jdk15to18`. `jdk15on` isn't maintained anymore and `jdk18on` is only for Java 8 and above. The `jdk15to18` artifact is the up-to-date replacement of the unmaintained `jdk15on` for java < 8. tags: - bouncycastle recipeList: From c71b2254dd4cf3102ae91dd49ef8b09847d100bd Mon Sep 17 00:00:00 2001 From: Pierre Delagrave Date: Tue, 8 Jul 2025 14:08:08 -0400 Subject: [PATCH 5/7] fix test names --- .../java/org/openrewrite/java/migrate/BouncyCastleTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java index ed19ad4ebe..996addea15 100644 --- a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java +++ b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java @@ -134,7 +134,7 @@ void testBouncyCastleArtifactUpgradeRecipe( @ParameterizedTest @MethodSource("artifactBaseNames") - void testJdk15onToJdk18on(String artifactBaseName) { + void jdk15onToJdk18on(String artifactBaseName) { testBouncyCastleArtifactUpgradeRecipe( "/META-INF/rewrite/bouncycastle-jdk18on.yml", "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On", @@ -146,7 +146,7 @@ void testJdk15onToJdk18on(String artifactBaseName) { @ParameterizedTest @MethodSource("artifactBaseNames") - void testJdk15to18ToJdk18on(String artifactBaseName) { + void jdk15to18ToJdk18on(String artifactBaseName) { testBouncyCastleArtifactUpgradeRecipe( "/META-INF/rewrite/bouncycastle-jdk18on.yml", "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On", @@ -158,7 +158,7 @@ void testJdk15to18ToJdk18on(String artifactBaseName) { @ParameterizedTest @MethodSource("artifactBaseNames") - void testJdk15onToJdk15To18(String artifactBaseName) { + void jdk15onToJdk15To18(String artifactBaseName) { testBouncyCastleArtifactUpgradeRecipe( "/META-INF/rewrite/bouncycastle-jdk15to18.yml", "org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18", From 83dbf62f1f59d38acc4a7d341592bedbcf47fd01 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Tue, 8 Jul 2025 23:15:58 +0200 Subject: [PATCH 6/7] Slight polish --- .../rewrite/bouncycastle-jdk15to18.yml | 6 +- .../META-INF/rewrite/bouncycastle-jdk18on.yml | 4 +- .../java/migrate/BouncyCastleTest.java | 89 +++++++++---------- 3 files changed, 48 insertions(+), 51 deletions(-) diff --git a/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml b/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml index 36f3c743d0..40670c2059 100644 --- a/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml +++ b/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml @@ -17,9 +17,11 @@ --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18 -displayName: Migrate BouncyCastle from jdk15on to jdk15to18 for Java < 8 +displayName: Migrate Bouncy Castle from `jdk15on` to `jdk15to18` for Java < 8 description: >- - This recipe replaces the Bouncycastle artifacts from `jdk15on` to `jdk15to18`. `jdk15on` isn't maintained anymore and `jdk18on` is only for Java 8 and above. The `jdk15to18` artifact is the up-to-date replacement of the unmaintained `jdk15on` for java < 8. + This recipe replaces the Bouncy Castle artifacts from `jdk15on` to `jdk15to18`. + `jdk15on` isn't maintained anymore and `jdk18on` is only for Java 8 and above. + The `jdk15to18` artifact is the up-to-date replacement of the unmaintained `jdk15on` for Java < 8. tags: - bouncycastle recipeList: diff --git a/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml b/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml index b185219a48..d07be0a142 100644 --- a/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml +++ b/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml @@ -17,9 +17,9 @@ --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On -displayName: Migrate BouncyCastle to jdk18on +displayName: Migrate Bouncy Castle to `jdk18on` description: >- - This recipe will upgrade BouncyCastle dependencies from -jdk15on or -jdk15to18 to -jdk18on. + This recipe will upgrade Bouncy Castle dependencies from `-jdk15on` or `-jdk15to18` to `-jdk18on`. tags: - bouncycastle recipeList: diff --git a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java index 996addea15..33a3452fe7 100644 --- a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java +++ b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java @@ -33,10 +33,6 @@ class BouncyCastleTest implements RewriteTest { - static List artifactBaseNames() { - return Arrays.asList("bcprov", "bcutil", "bcpkix", "bcmail", "bcjmail", "bcpg", "bctls"); - } - @DocumentExample @Test void document() { @@ -50,11 +46,9 @@ void document() { """ 4.0.0 - com.mycompany.app my-app 1 - org.bouncycastle @@ -88,13 +82,52 @@ void document() { ); } - void testBouncyCastleArtifactUpgradeRecipe( + static List artifactBaseNames() { + return Arrays.asList("bcprov", "bcutil", "bcpkix", "bcmail", "bcjmail", "bcpg", "bctls"); + } + + @ParameterizedTest + @MethodSource("artifactBaseNames") + void jdk15onToJdk18on(String artifactBaseName) { + runBouncyCastleArtifactUpgradeRecipe( + "/META-INF/rewrite/bouncycastle-jdk18on.yml", + "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On", + artifactBaseName, + "jdk15on", + "jdk18on" + ); + } + + @ParameterizedTest + @MethodSource("artifactBaseNames") + void jdk15to18ToJdk18on(String artifactBaseName) { + runBouncyCastleArtifactUpgradeRecipe( + "/META-INF/rewrite/bouncycastle-jdk18on.yml", + "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On", + artifactBaseName, + "jdk15to18", + "jdk18on" + ); + } + + @ParameterizedTest + @MethodSource("artifactBaseNames") + void jdk15onToJdk15To18(String artifactBaseName) { + runBouncyCastleArtifactUpgradeRecipe( + "/META-INF/rewrite/bouncycastle-jdk15to18.yml", + "org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18", + artifactBaseName, + "jdk15on", + "jdk15to18" + ); + } + + void runBouncyCastleArtifactUpgradeRecipe( String yamlFile, String recipe, String baseArtifactId, String originalArtifactSuffix, - String expectedArtifactSuffix - ) { + String expectedArtifactSuffix) { rewriteRun( recipeSpec -> recipeSpec.recipeFromResource(yamlFile, recipe), mavenProject("project", @@ -103,11 +136,9 @@ void testBouncyCastleArtifactUpgradeRecipe( """ 4.0.0 - com.mycompany.app my-app 1 - org.bouncycastle @@ -131,40 +162,4 @@ void testBouncyCastleArtifactUpgradeRecipe( ) ); } - - @ParameterizedTest - @MethodSource("artifactBaseNames") - void jdk15onToJdk18on(String artifactBaseName) { - testBouncyCastleArtifactUpgradeRecipe( - "/META-INF/rewrite/bouncycastle-jdk18on.yml", - "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On", - artifactBaseName, - "jdk15on", - "jdk18on" - ); - } - - @ParameterizedTest - @MethodSource("artifactBaseNames") - void jdk15to18ToJdk18on(String artifactBaseName) { - testBouncyCastleArtifactUpgradeRecipe( - "/META-INF/rewrite/bouncycastle-jdk18on.yml", - "org.openrewrite.java.migrate.BounceCastleFromJdk15OntoJdk18On", - artifactBaseName, - "jdk15to18", - "jdk18on" - ); - } - - @ParameterizedTest - @MethodSource("artifactBaseNames") - void jdk15onToJdk15To18(String artifactBaseName) { - testBouncyCastleArtifactUpgradeRecipe( - "/META-INF/rewrite/bouncycastle-jdk15to18.yml", - "org.openrewrite.java.migrate.BouncyCastleFromJdk15OnToJdk15to18", - artifactBaseName, - "jdk15on", - "jdk15to18" - ); - } } From fe4ebfbc69aa69c94c71620559a8d77bc81405b3 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Tue, 8 Jul 2025 23:24:22 +0200 Subject: [PATCH 7/7] Move static method to the top --- .../org/openrewrite/java/migrate/BouncyCastleTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java index 33a3452fe7..aaa4180c52 100644 --- a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java +++ b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java @@ -33,6 +33,10 @@ class BouncyCastleTest implements RewriteTest { + static List artifactBaseNames() { + return Arrays.asList("bcprov", "bcutil", "bcpkix", "bcmail", "bcjmail", "bcpg", "bctls"); + } + @DocumentExample @Test void document() { @@ -82,10 +86,6 @@ void document() { ); } - static List artifactBaseNames() { - return Arrays.asList("bcprov", "bcutil", "bcpkix", "bcmail", "bcjmail", "bcpg", "bctls"); - } - @ParameterizedTest @MethodSource("artifactBaseNames") void jdk15onToJdk18on(String artifactBaseName) {