Upgrade to Java 21 and Spring Boot 3.5.5 #76
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.
Upgrade to Java 21 and Spring Boot 3.5.5
Summary
Major upgrade of the Spring Boot RealWorld Example Application from Java 11 to Java 21, including Spring Boot 2.6.3 → 3.5.5, complete namespace migration from
javax.*tojakarta.*, replacement of deprecated Joda-Time withjava.timeAPI, and modernization of Spring Security configuration.Key Changes
javax.*imports tojakarta.*(servlet, validation, crypto) across 21 filesDateTimeusage withjava.time.Instantacross 16 files, including:InstantHandler(MyBatis TypeHandler)InstantCursorfor paginationDateTimeFormatter.ISO_INSTANTWebSecurityConfigurerAdaptertoSecurityFilterChainbean pattern with lambda-based configurationgraphql-dgs-spring-graphql-starter)Review & Testing Checklist for Human
High-risk areas requiring thorough testing:
jakarta.cryptoand new Spring Security configurationDateTimetojava.time.Instant). Both should use UTC but serialization format may differ.requestMatchersinstead ofantMatchersRecommended Test Plan
/graphqland/graphiqlNotes
graphql-dgs-spring-graphql-starterinstead ofgraphql-dgs-spring-boot-starterDateTimetojava.time.Instant. Both use UTC but Instant is the modern Java standardDateTimeHandlerwithInstantHandlerfor database timestamp mappingLink to Devin run: https://app.devin.ai/sessions/50e07b749c944f39ad967a8399b45034
Requested by: @abhay-codeium