Skip to content

Task 2: Upgrade Spring Boot 2.7.18 and Java 17#201

Open
devin-ai-integration[bot] wants to merge 2 commits intomasterfrom
devin/task2-upgrade-spring-boot-java
Open

Task 2: Upgrade Spring Boot 2.7.18 and Java 17#201
devin-ai-integration[bot] wants to merge 2 commits intomasterfrom
devin/task2-upgrade-spring-boot-java

Conversation

@devin-ai-integration
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot commented May 1, 2026

Summary

Upgrades the FTGO monolith from Spring Boot 2.0.3 → 2.7.18 (last 2.x release with security patches) and Java 1.8 → Java 17, along with the necessary Gradle infrastructure and compatibility changes.

Changes

File Change
gradle.properties springBootVersion 2.0.3.RELEASE → 2.7.18, springDependencyManagementPluginVersion 1.0.3.RELEASE → 1.1.4, micrometerVersion 1.0.4 → 1.9.17
build.gradle (root) sourceCompatibility/targetCompatibility 1.8 → 17, java plugin → java-library
gradle/wrapper/gradle-wrapper.properties Gradle 4.10.2 → 7.6.4 (Spring Boot 2.7.x requires Gradle ≥ 6.8)
buildSrc/build.gradle compileimplementation
buildSrc/.../IntegrationTestsPlugin.groovy Migrate deprecated Gradle APIs (testCompiletestImplementation, testClassesDirtestClassesDirs, reports.html.destinationoutputLocation)
All 15 subproject build.gradle files compileapi, testCompiletestImplementation, runtimeruntimeOnly
ftgo-application/.../application.properties Add spring.mvc.pathmatch.matching-strategy=ant_path_matcher for Springfox 2.8.0 compatibility

Why these extra changes were needed

  • Gradle 7.6.4: Spring Boot 2.7.x plugin requires Gradle ≥ 6.8; the project was on 4.10.2.
  • java-library + api: Gradle 7 removed the compile configuration. Using api (from java-library plugin) preserves the original transitive dependency behavior.
  • IntegrationTestsPlugin: Several APIs used by this plugin were removed or changed in Gradle 7.
  • Springfox compatibility: Spring Boot 2.6+ changed the default MVC path matching strategy to PathPatternParser, which breaks Springfox 2.x. Added ant_path_matcher workaround.
  • Micrometer version: Updated from 1.0.4 to 1.9.17 to match Spring Boot 2.7.18's managed micrometer-core version.

Build verification

./gradlew clean compileJava passes for all modules except ftgo-end-to-end-tests-common, which has a pre-existing dependency resolution failure (io.eventuate.util:eventuate-util-test is unavailable — the eventuate Maven repo was already commented out before this PR).

Review & Testing Checklist for Human

  • Verify ./gradlew clean compileJava compiles successfully (excluding end-to-end test modules which have a pre-existing dependency issue)
  • Confirm CI/CD pipeline runs with JDK 17
  • Spot-check that the application starts up correctly with the new Spring Boot version
  • Verify Swagger UI loads at /swagger-ui.html (Springfox with ant_path_matcher workaround)

Notes

  • This is intentionally Spring Boot 2.7.18 (not 3.x) to minimize disruption as requested.
  • The JAXB runtime dependencies in ftgo-common are retained since they're needed for Java 17 (JAXB was removed from the JDK in Java 11+).
  • Deprecation warnings about Gradle 8.0 compatibility are expected with Gradle 7.6.4 and can be addressed in a future upgrade.
  • A future PR could migrate from Springfox to SpringDoc OpenAPI (the maintained successor) to remove the ant_path_matcher workaround.

Link to Devin session: https://app.devin.ai/sessions/83edc95fe1da47d3992cb0cbe643793e
Requested by: @WesternConcrete


Devin Review

Status Commit
⚪ Not started

Run Devin Review

💡 Connect your GitHub account to enable automatic code reviews.

Open in Devin Review (Staging)
Open in Devin Review

- Update springBootVersion from 2.0.3.RELEASE to 2.7.18
- Update springDependencyManagementPluginVersion from 1.0.3.RELEASE to 1.1.4
- Update sourceCompatibility/targetCompatibility from 1.8 to 17
- Upgrade Gradle wrapper from 4.10.2 to 7.6.4 (required by Spring Boot 2.7.x)
- Migrate deprecated Gradle configurations:
  - compile -> api (java-library plugin)
  - testCompile -> testImplementation
  - runtime -> runtimeOnly
- Update IntegrationTestsPlugin for Gradle 7 API changes

Co-Authored-By: Wes Convery <2wconvery@gmail.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

devin-ai-integration[bot]

This comment was marked as resolved.

- Add spring.mvc.pathmatch.matching-strategy=ant_path_matcher to fix
  Springfox 2.8.0 incompatibility with Spring Boot 2.6+ path matching
- Update micrometerVersion from 1.0.4 to 1.9.17 to match Spring Boot
  2.7.18's managed micrometer-core version

Co-Authored-By: Wes Convery <2wconvery@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.

1 participant