Skip to content

Conversation

@devin-ai-integration
Copy link

Upgrade Spring Boot 2.6.3 to 3.3.6 and Java 11 to 17

Summary

This PR upgrades the project from Spring Boot 2.6.3 to 3.3.6 and Java 11 to 17 to enable full Java 17 support as requested. The upgrade includes:

Core Upgrades:

  • Spring Boot: 2.6.33.3.6
  • Spring Dependency Management Plugin: 1.0.11.RELEASE1.1.7
  • Java source/target compatibility: 1117
  • Gradle wrapper: 7.48.5 (required for Spring Boot 3.x)

Netflix DGS (GraphQL) Upgrades:

  • DGS Spring Boot Starter: 4.9.219.2.2 (compatible with Spring Boot 3.x)
  • DGS Codegen: 5.0.68.1.1

CI/CD:

  • GitHub Actions workflow updated to use JDK 17

Review & Testing Checklist for Human

⚠️ CRITICAL - This PR could not be tested locally due to disk space issues on the dev environment. All verification must happen via CI and manual testing.

  • Verify CI tests pass completely - Build success is not enough; all tests must pass
  • Check for javax.* imports in source code - Spring Boot 3.x uses Jakarta EE (jakarta.*), so any javax.* imports will break. Search the codebase for import javax. and update to import jakarta. if found
  • Verify MyBatis compatibility - The MyBatis starter (v2.2.2) was not updated. Confirm it works with Spring Boot 3.x or upgrade to a 3.x-compatible version (likely 3.0.x)
  • Test GraphQL functionality end-to-end - DGS upgraded from 4.x to 9.x, which is a major version jump. Test all GraphQL queries/mutations
  • Runtime testing - Deploy to a test environment and verify the application starts correctly and all features work

Test Plan Recommendation

  1. Run the application locally or in a test environment
  2. Execute sample GraphQL queries to verify DGS integration works
  3. Test authentication/authorization flows
  4. Verify database migrations work (Flyway + MyBatis)
  5. Check application logs for any deprecation warnings or errors

Notes

  • Spring Boot 3.x is a major upgrade that includes the Jakarta EE migration. This is a breaking change for any code using javax.* packages.
  • Gradle wrapper had to be upgraded from 7.4 to 8.5 because Spring Boot 3.x requires Gradle 7.5+
  • Netflix DGS version 10.x was not available in Maven Central yet, so used 9.2.2 which is the latest stable version compatible with Spring Boot 3.3.6

Devin Session: https://app.devin.ai/sessions/3ca237469aac43b7b86cd578980b63f8
Requested by: @alexjpeng

- Upgrade Spring Boot from 2.6.3 to 3.3.6 for Java 17 support
- Upgrade Spring dependency management plugin from 1.0.11.RELEASE to 1.1.7
- Upgrade Netflix DGS Spring Boot Starter from 4.9.21 to 9.2.2 (compatible with Spring Boot 3.x)
- Upgrade Netflix DGS Codegen from 5.0.6 to 8.1.1
- Upgrade Gradle wrapper from 7.4 to 8.5 (required for Spring Boot 3.x)
- Update Java sourceCompatibility and targetCompatibility from 11 to 17
- Update GitHub Actions workflow to use JDK 17

These changes enable full Java 17 support and bring the project up to date with the latest stable Spring Boot 3.x release.

Co-Authored-By: Alex Peng <alexander.j.peng@gmail.com>
@devin-ai-integration
Copy link
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

devin-ai-integration bot and others added 3 commits October 23, 2025 14:52
- Update actions/checkout from v2 to v4
- Update actions/setup-java from v2 to v4
- Update actions/cache from v2 to v4

This fixes the CI failure caused by GitHub automatically failing workflows using deprecated v2 actions.

Co-Authored-By: Alex Peng <alexander.j.peng@gmail.com>
- Replace all javax.validation.* imports with jakarta.validation.*
- Replace all javax.servlet.* imports with jakarta.servlet.*
- Replace all javax.annotation.* imports with jakarta.annotation.*
- Upgrade MyBatis Spring Boot Starter from 2.2.2 to 3.0.3 for jakarta.* support

This resolves the 84 compilation errors caused by the Spring Boot 3.x migration requirement to use Jakarta EE namespace (javax → jakarta).

Files updated: 20 Java files across api, application, and graphql packages

Verified: No remaining javax.* imports found in src/
Co-Authored-By: Alex Peng <alexander.j.peng@gmail.com>
- CustomizeExceptionHandler.java: javax.validation → jakarta.validation
- JwtTokenFilter.java: javax.servlet → jakarta.servlet

This completes the javax → jakarta namespace migration for all 20 Java files.

Co-Authored-By: Alex Peng <alexander.j.peng@gmail.com>
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