Upgrade to Spring Boot 3.3.13 and Spring Cloud 2023.0.6#15
Open
devin-ai-integration[bot] wants to merge 1 commit into
Open
Upgrade to Spring Boot 3.3.13 and Spring Cloud 2023.0.6#15devin-ai-integration[bot] wants to merge 1 commit into
devin-ai-integration[bot] wants to merge 1 commit into
Conversation
Major version upgrade from Spring Boot 2.7.x to 3.3.13 across all 7 microservices: Version Updates: - Spring Boot: 2.7.14/2.7.15 → 3.3.13 - Spring Cloud: 2021.0.8 → 2023.0.6 - Keycloak admin client: 21.0.1 → 26.0.7 Breaking Changes Addressed: - Migrated javax.persistence to jakarta.persistence in all entity classes (6 files) - Migrated javax.transaction to jakarta.transaction in UserServiceImpl - Updated GlobalExceptionHandler method signatures for Spring Framework 6.x (HttpStatus → HttpStatusCode) in User-Service, Account-Service, and Fund-Transfer - Updated Spring Security configuration for Spring Security 6.x (lambda-based DSL) in API-Gateway - Removed deprecated @EnableEurekaClient annotations from API-Gateway, User-Service, and Transaction-Service Dependency Changes: - Added explicit commons-io 2.11.0 dependency to Account-Service, Fund-Transfer, Transaction-Service, and User-Service (previously transitive in Spring Boot 2.x) All services compile successfully and tests pass for Service-Registry, Sequence-Generator, and API-Gateway. Co-Authored-By: Sam Fertig <sam.fertig@codeium.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:
|
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.
Upgrade to Spring Boot 3.3.13 and Spring Cloud 2023.0.6
Summary
This PR upgrades all 7 microservices in the BankingMicroservices repository from Spring Boot 2.7.x to Spring Boot 3.3.13 and Spring Cloud 2021.0.8 to 2023.0.6. This is a major version upgrade that addresses all critical breaking changes required for Spring Boot 3.x compatibility.
Version Changes:
Breaking Changes Addressed:
javax.persistence→jakarta.persistenceimports (6 entity classes)javax.transaction→jakarta.transactionin UserServiceImplHttpStatus→HttpStatusCode) in User-Service, Account-Service, and Fund-Transfer@EnableEurekaClientannotations from API-Gateway, User-Service, and Transaction-Service (Spring Cloud 2022.x+ auto-enables discovery clients)commons-io2.11.0 dependency to 4 services (no longer transitively provided in Spring Boot 3.x)Compilation & Testing Status:
Review & Testing Checklist for Human
Critical items to verify (5):
End-to-End Integration Testing: Start all 7 services with MySQL and Keycloak running. Verify they can register with Service Registry, communicate via Feign clients, and handle database operations correctly. The jakarta.persistence migration and Hibernate 6.x (bundled with Spring Boot 3.x) might have subtle behavior changes.
OAuth2 Authentication Flow: Test the API Gateway's OAuth2 configuration thoroughly. I migrated from the old
.and()chaining to Spring Security 6.x lambda-based DSL usingCustomizer.withDefaults(). Verify that login flows, JWT validation, and the/api/users/registerpublic endpoint work correctly.Keycloak Admin Client Integration: Test User-Service's Keycloak integration. The keycloak-admin-client was upgraded from 21.0.1 to 26.0.7 (5 major versions). Verify user registration, authentication, and any other Keycloak operations work as expected.
Database Operations: Verify all JPA operations (CRUD, transactions, relationships) work correctly with the jakarta.persistence namespace. Test entity persistence, querying, and any custom JPA configurations.
Feign Client Error Handling: Verify that FeignClientErrorDecoder classes in all 4 services handle errors correctly. I added explicit commons-io dependency for
IOUtils.toString()which was previously transitive.Test Plan Recommendation
Notes
Session Info: