Skip to content

Upgrade Spring Boot and dependency versions for Java 17 compatibility#557

Open
devin-ai-integration[bot] wants to merge 1 commit intomasterfrom
devin/1776281973-upgrade-dependencies
Open

Upgrade Spring Boot and dependency versions for Java 17 compatibility#557
devin-ai-integration[bot] wants to merge 1 commit intomasterfrom
devin/1776281973-upgrade-dependencies

Conversation

@devin-ai-integration
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot commented Apr 15, 2026

Summary

Upgrades Spring Boot from 2.6.3 → 2.7.18 and all major dependencies to Java 17-compatible versions, staying on Spring Boot 2.7.x to avoid the javax→jakarta migration required by 3.x.

Dependency upgrades:

Dependency Old New
Spring Boot 2.6.3 2.7.18
spring dependency-management 1.0.11.RELEASE 1.1.4
DGS codegen plugin 5.0.6 5.6.7
DGS framework 4.9.21 5.5.1
MyBatis starter (+test) 2.2.2 2.3.2
jjwt (api/impl/jackson) 0.11.2 0.11.5
sqlite-jdbc 3.36.0.3 3.42.0.0
rest-assured (all 4) 4.5.1 5.3.2
spotless 6.2.1 6.22.0
joda-time 2.10.13 2.12.5

Code changes required by DGS upgrade:

  • ArticleDatafetcher.java and CommentDatafetcher.java: Migrated from graphql.relay.DefaultPageInfo / graphql.relay.PageInfo to DGS-codegen-generated io.spring.graphql.types.PageInfo, using its builder API (startCursor, endCursor, hasPreviousPage, hasNextPage).

Infrastructure:

  • Added settings.gradle with pluginManagement block to resolve DGS codegen plugin dependencies from Maven Central (required because the codegen core artifact is not hosted on the Gradle Plugin Portal).

Build status: Compilation and spotless checks pass. Tests have 37 failures due to NoSuchMethodError in Federation.java:194 (DGS framework runtime incompatibility), which is expected per task spec.

Review & Testing Checklist for Human

  • DGS codegen plugin version: Task specified 5.6.8 but that version's core artifact is missing from Maven Central (jumps 5.6.7 → 5.6.9). This PR uses 5.6.7 — verify this is acceptable or if 5.6.9 is preferred.
  • PageInfo builder field mapping: Verify the generated io.spring.graphql.types.PageInfo type has hasPreviousPage/hasNextPage fields (not hasPrevious/hasNext). Incorrect mapping would compile but produce wrong GraphQL responses.
  • Test failures (37/68): All failures are NoSuchMethodError at Federation.java:194, indicating a DGS 5.5.1 runtime incompatibility. Confirm this is expected to be addressed separately, or whether a different DGS framework version (e.g., 5.5.0 or 4.x latest) would avoid this.
  • settings.gradle addition: This file did not previously exist. Verify rootProject.name = 'spring-boot-realworld-example-app' matches expectations and that the pluginManagement block doesn't interfere with other build configurations.

Recommended test plan: Run ./gradlew compileJava compileTestJava spotlessCheck to confirm compilation. Run ./gradlew test and verify failures are limited to the known DGS Federation issue. Boot the app with ./gradlew bootRun and confirm it starts without errors.

Notes

  • sourceCompatibility/targetCompatibility and the Gradle wrapper version are intentionally not changed — handled by separate sessions.
  • The DefaultJwtServiceTest.java change is a spotless auto-format (line wrapping), no logic change.

Link to Devin session: https://app.devin.ai/sessions/17f55f06fe54418082f66fc31b983f8d
Requested by: @shayanshafii


Open with Devin

- Spring Boot: 2.6.3 → 2.7.18
- io.spring.dependency-management: 1.0.11.RELEASE → 1.1.4
- Netflix DGS codegen plugin: 5.0.6 → 5.6.7
- Netflix DGS framework: 4.9.21 → 5.5.1
- MyBatis Spring Boot starter: 2.2.2 → 2.3.2
- jjwt (api/impl/jackson): 0.11.2 → 0.11.5
- sqlite-jdbc: 3.36.0.3 → 3.42.0.0
- rest-assured: 4.5.1 → 5.3.2
- spotless: 6.2.1 → 6.22.0
- joda-time: 2.10.13 → 2.12.5
- Add settings.gradle with pluginManagement for Maven Central resolution
- Fix PageInfo type incompatibility caused by DGS upgrade
- Apply spotless formatting fixes

Co-Authored-By: shayan <shayan@cognition.ai>
@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

Copy link
Copy Markdown
Author

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

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.

1 participant