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..40670c2059 --- /dev/null +++ b/src/main/resources/META-INF/rewrite/bouncycastle-jdk15to18.yml @@ -0,0 +1,62 @@ +# +# 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 Bouncy Castle from `jdk15on` to `jdk15to18` for Java < 8
+description: >-
+ 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:
+ - 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/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml b/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml
index 2b3a17aa91..d07be0a142 100644
--- a/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml
+++ b/src/main/resources/META-INF/rewrite/bouncycastle-jdk18on.yml
@@ -17,12 +17,13 @@
---
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 to -jdk18on.
+ This recipe will upgrade Bouncy Castle 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/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; }"
diff --git a/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java b/src/test/java/org/openrewrite/java/migrate/BouncyCastleTest.java
index ea504b57f9..aaa4180c52 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,28 +33,26 @@
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