Skip to content

Upgrade Spring Boot 3 Maven parents to 3.5 in the Java 25 migration - #1254

Merged
jkschneider merged 1 commit into
java25/setup-java-temurinfrom
java25/spring-boot-parent
Oct 3, 2026
Merged

jkschneider merged 1 commit into
java25/setup-java-temurinfrom
java25/spring-boot-parent

Conversation

@jkschneider

Copy link
Copy Markdown
Member

Spring Boot 3.0 to 3.3 bundle a Spring Framework whose repackaged ASM cannot read Java 25 class files: after UpgradeToJava25 the application compiles, and its context tests fail with Unsupported class file major version 69. Three of the eight repositories in the run hit this. New composite UpgradeSpringBootParentForJava25, part of UpgradeToJava25: when the Maven parent is spring-boot-starter-parent 3.x, upgrade it to 3.5.x with UpgradeParentVersion. It stays within Boot 3 (Boot 2 needs the Jakarta migration first) and never touches Boot 4. Gradle plugin and BOM imports are not covered here.

Found by a team of coding agents reviewing a Moderne run of org.openrewrite.java.migrate.UpgradeToJava25 over eight open-source repositories (run 20261003103223-WtyA8). The issue is spring-boot-java25-bytecode in the run's io.moderne.RecipeIssues data table, and the fix was discussed and reviewed on the run's message board. A row from the table, as a generalized example:

The migration retains Spring Boot 3.0.1 whose Spring ASM cannot read Java 25 bytecode. (fhsinchy/movieist, pom.xml)

Before:

<project><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.1</version></parent><properties><java.version>17</java.version></properties></project>

What the recipe produced:

<project><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.1</version></parent><properties><java.version>25</java.version></properties></project>

Expected:

<project><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.16</version></parent><properties><java.version>25</java.version></properties></project>

Stacked on #1253 (5 of 9); merge that one first.

@jkschneider
jkschneider force-pushed the java25/spring-boot-parent branch from 8d704d4 to ecc8e31 Compare October 3, 2026 15:51
@jkschneider
jkschneider merged commit e9dfe08 into main Oct 3, 2026
1 check passed
@jkschneider
jkschneider deleted the java25/spring-boot-parent branch October 3, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant