Skip to content

Comprehensive Dependency and Security Upgrade: Spring Boot 2.7.18, Java 17, and 20+ CVE Fixes#204

Open
devin-ai-integration[bot] wants to merge 17 commits intomasterfrom
devin/1777649990-consolidated-security-upgrades
Open

Comprehensive Dependency and Security Upgrade: Spring Boot 2.7.18, Java 17, and 20+ CVE Fixes#204
devin-ai-integration[bot] wants to merge 17 commits intomasterfrom
devin/1777649990-consolidated-security-upgrades

Conversation

@devin-ai-integration
Copy link
Copy Markdown

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

Summary

Consolidated upgrade of all major dependencies across the ftgo-monolith codebase, addressing 20+ CVEs, replacing deprecated libraries, and modernizing the build infrastructure. This PR merges the work from 8 parallel task branches:

Changes by Task

Task Branch PR Description
1 devin/task1-upgrade-docker-base-images #194 Docker: openjdk:8u171-jre-alpineeclipse-temurin:17-jre-alpine, mysql:5.7.13mysql:8.0
2 devin/task2-upgrade-spring-boot-java #201 Spring Boot 2.0.3.RELEASE2.7.18, Java 1.817, Gradle 4.10.27.6.4
3 devin/task3-upgrade-jackson #195 Jackson 2.9.72.17.1 (fixes CVE-2019-12086, CVE-2019-14379, CVE-2019-14540, CVE-2019-16335, CVE-2019-17531, and 20+ more)
4 devin/task4-replace-springfox #199 Springfox 2.8.0 → springdoc-openapi 1.8.0
5 devin/task5-upgrade-jaxb-commons-el-micrometer #198 JAXB 2.2.112.3.1/2.3.9, commons-lang 2.6 → commons-lang3 3.14.0, javax.el 2.2.53.0.0, Micrometer 1.0.41.13.0
6 devin/task6-upgrade-test-deps #200 JUnit 4.124.13.2 (CVE-2020-15250), REST Assured 2.9.05.4.0, json-path 2.3.02.9.0
7 devin/task7-upgrade-flyway-mysql-connector #196 Flyway 6.0.09.22.3, MySQL Connector mysql-connector-java:8.0.33mysql-connector-j:8.4.0
8 devin/task8-fix-creds-replace-jcenter #197 Externalize hardcoded credentials via env vars, remove jcenter()

Task 9: Post-Merge Fixes

  • Fixed MoneyModule.java: replaced removed DeserializationContext.mappingException() with JsonMappingException.from() (Jackson 2.12+ API change)
  • Upgraded eventuate-util-test from 0.1.0.RELEASE to 0.18.0.RELEASE (old version only on dead Bintray repo)
  • Added explicit JUnit 4.13.2 test dependency to ftgo-common (needed after compiletestImplementation migration)
  • Modernized all Gradle DSL: compileapi, testCompiletestImplementation, runtimeruntimeOnly

CVEs Fixed

Review & Testing Checklist for Human

  • Run ./gradlew clean build -x :ftgo-application:test -x :ftgo-end-to-end-tests:test to verify compilation and unit tests pass (integration tests require a running MySQL)
  • Run docker-compose up and verify MySQL 8.0 starts with the mysql_native_password auth plugin
  • Verify the ftgo-application starts and connects to MySQL 8.0 correctly
  • Test the Swagger/OpenAPI UI at /swagger-ui.html (now powered by springdoc-openapi)
  • Verify MYSQL_ROOT_PASSWORD, MYSQL_USER, MYSQL_PASSWORD environment variable overrides work in docker-compose

Notes

  • Integration tests (ftgo-application:test, ftgo-end-to-end-tests:test) require a running MySQL database and will fail without one — this is pre-existing behavior, not a regression
  • Spring Boot stays on 2.x (2.7.18) to avoid the javax → jakarta namespace migration required by 3.x
  • The ftgo-order-service has a deprecation warning for new Long(long) — minor, not addressed in this PR
  • Flyway stays on 9.x (not 10.x) for broader Java compatibility

Link to Devin session: https://app.devin.ai/sessions/8de07287502d4e5e8eb0915934907c1e
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

devin-ai-integration Bot and others added 17 commits May 1, 2026 15:29
Update jackson-core, jackson-databind, and jackson-datatype-jsr310
from version 2.9.7 to 2.17.1 to address multiple CVEs including
CVE-2019-12086, CVE-2019-14379, CVE-2019-14540, CVE-2019-16335,
and CVE-2019-17531.

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
Co-Authored-By: Wes Convery <2wconvery@gmail.com>
- Flyway: 6.0.0 -> 9.22.3 (latest 9.x, Java 8+ compatible)
- MySQL Connector: mysql:mysql-connector-java:8.0.33 -> com.mysql:mysql-connector-j:8.4.0 (artifact renamed)

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
- docker-compose.yml: Replace hardcoded MySQL passwords with env var references using defaults
- ftgo-flyway/build.gradle: Replace hardcoded Flyway credentials with env var references
- build.gradle: Remove deprecated jcenter() repository (mavenCentral() already present)

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
- JAXB: Replace jaxb-api 2.2.11 + jaxb-core/jaxb-impl with jaxb-api 2.3.1 + jaxb-runtime 2.3.9
- commons-lang: Migrate from commons-lang 2.6 to commons-lang3 3.14.0 (build files and all Java imports)
- javax.el: Upgrade javax.el-api from 2.2.5 to 3.0.0 in 4 service modules
- Micrometer: Upgrade from 1.0.4 to 1.13.0

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
- Remove springfox-swagger2 and springfox-swagger-ui dependencies
- Add springdoc-openapi-ui:1.8.0 (compatible with Spring Boot 2.x)
- Replace Docket/EnableSwagger2 configuration with GroupedOpenApi and OpenAPI beans
- No changes needed to service configuration files (they only import CommonSwaggerConfiguration)

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
…h 2.9.0

- JUnit: 4.12 -> 4.13.2 (fixes CVE-2020-15250) in ftgo-domain, ftgo-test-util
- REST Assured: 2.9.0 -> 5.4.0 in gradle.properties
  - Updated groupId from com.jayway.restassured to io.rest-assured in
    ftgo-consumer-service, ftgo-restaurant-service, ftgo-end-to-end-tests-common
  - Updated hardcoded 3.0.6 versions to use $restAssuredVersion variable in
    ftgo-order-service, ftgo-courier-service
  - Updated Java imports from com.jayway.restassured to io.restassured in
    AbstractEndToEndTests.java
- json-path: 2.3.0 -> 2.9.0 in ftgo-consumer-service, ftgo-restaurant-service,
  ftgo-end-to-end-tests-common

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
Replace static schema.sql with init-db.sh shell script that reads
MYSQL_USER at container startup, ensuring custom users get proper
privileges on the ftgo database.

Addresses Devin Review feedback about hardcoded username in GRANT.

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
- 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>
…enter' into devin/1777649990-consolidated-security-upgrades
Co-Authored-By: Wes Convery <2wconvery@gmail.com>
…nto devin/1777649990-consolidated-security-upgrades
…flicts with task3

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
…nto devin/1777649990-consolidated-security-upgrades
Co-Authored-By: Wes Convery <2wconvery@gmail.com>
…olve all conflicts

Co-Authored-By: Wes Convery <2wconvery@gmail.com>
…ventuate-util-test upgrade, add JUnit dependency

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

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 6 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