Java 21 Upgrade Attempt: Configuration Updates and Compatibility Analysis (AT-61)#12
Open
devin-ai-integration[bot] wants to merge 3 commits into
Open
Java 21 Upgrade Attempt: Configuration Updates and Compatibility Analysis (AT-61)#12devin-ai-integration[bot] wants to merge 3 commits into
devin-ai-integration[bot] wants to merge 3 commits into
Conversation
…lity issues - Update GitHub Actions workflows to use Java 21 with Zulu distribution - Create new build.yml workflow for Java 21 CI - Update README.md to reference Java 21 requirement - Upgrade Spotless plugin from 6.2.1 to 7.2.1 for Java 21 compatibility - Update Gradle wrapper to 7.6.4 (latest compatible with Spring Boot 2.6.3) - Set compilation target to Java 17 due to compatibility constraints COMPATIBILITY ISSUES DISCOVERED: - Spring Boot 2.6.3 only supports Gradle 7.x, not Gradle 8.x - Gradle 7.6.4 cannot run on Java 21 (major version 65 unsupported) - Gradle 8.4+ required for Java 21 support creates impossible compatibility triangle - Full Java 21 upgrade requires Spring Boot 3.2+ which needs Java 17+ baseline Ticket: AT-61 Co-Authored-By: Shawn Azman <shawn.d.azman@gmail.com>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
- Update GitHub Actions workflows to use Java 17 instead of Java 21 - Change build.yml workflow name to indicate Java 21 upgrade is blocked - Apply Spotless formatting fixes to DefaultJwtServiceTest.java - Resolves 'Unsupported class file major version 65' error in CI COMPATIBILITY ANALYSIS: - Java 21 upgrade blocked by impossible compatibility triangle: * Spring Boot 2.6.3 only supports Gradle 7.x * Gradle 7.6.4 cannot run on Java 21 (major version 65 unsupported) * Gradle 8.4+ required for Java 21 support - Maximum achievable upgrade: Java 17 with current Spring Boot version - Full Java 21 upgrade requires Spring Boot 3.2+ (major breaking change) Ticket: AT-61 Co-Authored-By: Shawn Azman <shawn.d.azman@gmail.com>
- Change README.md from Java 21 to Java 17 requirement - Resolves inconsistency between documentation and CI workflows - Aligns with maximum achievable upgrade given compatibility constraints Ticket: AT-61 Co-Authored-By: Shawn Azman <shawn.d.azman@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Java 21 Upgrade Attempt: Configuration Updates and Compatibility Analysis (AT-61)
Summary
This PR represents an exploratory attempt to upgrade the Spring Boot RealWorld Example App from Java 11 to Java 21, as requested in ticket AT-61. Critical compatibility issues were discovered that prevent a complete Java 21 upgrade with the current Spring Boot 2.6.3 version.
What was accomplished:
.github/workflows/gradle.ymland newbuild.yml)Critical Discovery - Java 21 Upgrade Impossible:
An impossible compatibility triangle was discovered that prevents Java 21 upgrade:
Result: Maximum achievable upgrade with current Spring Boot version is Java 17. Full Java 21 upgrade requires Spring Boot 3.2+ (major breaking change beyond current scope).
Review & Testing Checklist for Human
./gradlew bootRunand test core functionality at http://localhost:8080/tags./gradlew spotlessCheckto ensure no formatting regressionsDiagram
%%{ init : { "theme" : "default" }}%% graph TD README["README.md<br/>(Java 21 docs)"]:::major-edit BuildYml[".github/workflows/<br/>build.yml<br/>(NEW - Java 17)"]:::major-edit GradleYml[".github/workflows/<br/>gradle.yml<br/>(Java 17)"]:::major-edit BuildGradle["build.gradle<br/>(Spotless 7.2.1,<br/>Java 17 target)"]:::major-edit GradleWrapper["gradle/wrapper/<br/>gradle-wrapper.properties<br/>(Gradle 7.6.4)"]:::major-edit TestFile["DefaultJwtServiceTest.java<br/>(formatting fix)"]:::minor-edit SpringBoot["Spring Boot 2.6.3<br/>(unchanged)"]:::context SpringBoot --> BuildGradle BuildGradle --> GradleWrapper GradleWrapper --> BuildYml GradleWrapper --> GradleYml BuildGradle --> TestFile subgraph Legend L1[Major Edit]:::major-edit L2[Minor Edit]:::minor-edit L3[Context/No Edit]:::context end classDef major-edit fill:#90EE90 classDef minor-edit fill:#87CEEB classDef context fill:#FFFFFFNotes