Update CLI to use Highest version possible between 3.5.x -> 3.6.x to support J21+J11
Task: Upgrade Quarkus Version for Compatibility with Java 21
Objective: Upgrade Quarkus to at least version 3.5, with a target to upgrade to the latest 3.6.x version, ensuring compatibility with Java 21 and maintaining functionality with Java 11 as long as possible.
Background
To support Java 21, Quarkus must be upgraded to at least version 3.5. However, Quarkus 3.7 and higher do not support Java 11. Therefore, the plan is to upgrade to the highest possible Quarkus version compatible with Java 11 before transitioning to Java 21.
Initial tests with Quarkus 3.5 have identified necessary changes, particularly migrating javax imports to jakarta equivalents. Further upgrades to the latest 3.6.x version should be explored, given minimal additional changes are required.
Steps
-
Merge Changes from Test Branch
- Take the test branch that includes changes for CLI required to run Quarkus 3.5 without upgrading to Java 21: issue-28622-test-java-21-and-identify-next-steps-after-illegal.
- Merge these changes into the main branch or the branch designated for this upgrade.
-
Ensure Correct GraalVM Version
- Verify and update the build to use the appropriate GraalVM version compatible with the targeted Quarkus version.
-
Upgrade Quarkus to Latest 3.6.x Version
- Utilize the Quarkus CLI to assist in upgrading the codebase to subsequent Quarkus versions.
- Address any conflicts arising from global Openrewrite settings that may interfere with the CLI upgrade process.
-
Update Import References
- Update all
javaximports to theirjakartaequivalents as required by the new Quarkus versions.
- Update all
-
Testing and Validation
- Thoroughly test the upgraded application running on both Java 11 and Java 21.
- Ensure that the application builds and runs correctly with the updated Quarkus version.
- Validate that all functionalities are intact and no regressions are introduced.
Checklist
- [ ] Merge changes from the test branch for Quarkus 3.5 upgrade.
- [ ] Verify and update the GraalVM version to match the Quarkus version.
- [ ] Utilize Quarkus CLI to upgrade to the latest 3.6.x version.
- [ ] Resolve conflicts with Openrewrite settings during the upgrade process.
- [ ] Update
javaximports tojakartaequivalents. - [ ] Test the application on Java 11 and Java 21.
- [ ] Validate application functionality and ensure no regressions.
Additional Notes
- Document the changes made during the upgrade process for future reference.
- Provide clear instructions on how to handle potential conflicts with Openrewrite settings.