Skip to content

Upgrade to Spring Boot 3.4.0 and Spring Cloud 2024.0.0#30

Open
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1764794001-spring-boot-3-upgrade
Open

Upgrade to Spring Boot 3.4.0 and Spring Cloud 2024.0.0#30
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1764794001-spring-boot-3-upgrade

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Dec 3, 2025

Copy link
Copy Markdown

Upgrade to Spring Boot 3.4.0 and Spring Cloud 2024.0.0

Summary

This PR upgrades the entire BankingMicroservices application from Spring Boot 2.7.x to Spring Boot 3.4.0, along with all necessary dependency and code changes for compatibility.

Changes across all 7 services:

  • Spring Boot: 2.7.14/2.7.15 → 3.4.0
  • Spring Cloud: 2021.0.8 → 2024.0.0
  • Keycloak admin client (User-Service): 21.0.1 → 26.0.0

Code migrations:

  • javax.persistence.*jakarta.persistence.* (all entity classes)
  • javax.transaction.Transactionaljakarta.transaction.Transactional
  • Removed deprecated @EnableEurekaClient annotations (auto-configured in Spring Cloud 2022.0+)
  • Updated GlobalExceptionHandler.handleMethodArgumentNotValid() signature: HttpStatusHttpStatusCode

All services compile successfully and existing tests pass.

Local Testing

Service Registry and API Gateway start successfully with Spring Boot 3.4.0. API Gateway registers with Eureka correctly:

Eureka Dashboard showing API-GATEWAY registered

Note: Services requiring MySQL (Sequence-Generator, Account-Service, etc.) fail to start without database - this is expected behavior.

Review & Testing Checklist for Human

This is a major version upgrade with significant breaking changes. CI passing is necessary but insufficient for confidence.

  • Test Keycloak integration - The Keycloak admin client jumped 5 major versions (21→26). Verify user registration and authentication flows work end-to-end
  • Test database operations - The javax→jakarta JPA migration affects all entities. Create/read/update operations should be tested for at least one service (e.g., Account-Service)
  • Test API Gateway routing - Verify requests route correctly through the gateway and OAuth2/JWT validation still works
  • Test inter-service communication - Verify Feign client calls between services work (e.g., Fund Transfer calling Account Service)

Recommended test plan:

  1. Start Service-Registry, then API-Gateway and at least User-Service + Account-Service
  2. Register a new user via POST /api/users/register
  3. Obtain JWT token from Keycloak
  4. Create an account and verify it persists correctly

Notes

  • The codebase has no unit tests for business logic, so runtime testing is essential
  • Spring Boot 3.x requires Java 17 minimum (already satisfied)

Link to Devin run: https://app.devin.ai/sessions/3ac39a08d1954d67ac964cf2c3388e79
Requested by: Sam Fertig (sam.fertig@cognition.ai) / @samfert-codeium

- Update all 7 services to Spring Boot 3.4.0 (from 2.7.x)
- Update Spring Cloud to 2024.0.0 (from 2021.0.8)
- Update Keycloak admin client to 26.0.0 (from 21.0.1)
- Migrate javax.* imports to jakarta.* namespace (JPA, transactions)
- Remove deprecated @EnableEurekaClient annotations
- Update GlobalExceptionHandler method signatures for Spring Boot 3.x API changes (HttpStatus -> HttpStatusCode)

Co-Authored-By: Sam Fertig <sam.fertig@codeium.com>
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@sonarqubecloud

sonarqubecloud Bot commented Dec 3, 2025

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants