Skip to content

Upgrade to Spring Boot 4 and Jackson 3 - #2938

Draft
danlysiak wants to merge 3 commits into
masterfrom
codex/spring-boot-4
Draft

Upgrade to Spring Boot 4 and Jackson 3#2938
danlysiak wants to merge 3 commits into
masterfrom
codex/spring-boot-4

Conversation

@danlysiak

Copy link
Copy Markdown
Member

JIRA link (if applicable)

N/A

Change description

Upgrades CCD Data Store API to Spring Boot 4.0.7 and Spring Cloud 2025.1.2 while preserving existing service behaviour.

Key changes:

  • migrates CCD-owned JSON processing, generated models, Spring MVC payloads, and Elasticsearch JSONP mapping to Jackson 3
  • adopts the Boot 4 modular starters and corresponding Spring Framework, Security, Hibernate, Flyway, WireMock, and test APIs
  • retains AM client 1.60.0 through a consumer-side parameter-names exclusion and Jackson 3 mixin, avoiding an unpublished AM dependency
  • isolates Gson to supported JJWT and raw AAT Feign codecs where upstream Jackson codecs remain Jackson 2-based
  • updates Application Insights integration and adds focused regressions for serialization, AM documents, Feign converters, and telemetry

Change classification

Area Classification Rationale
Boot 4 / Cloud / modular starters Required Platform major-version migration
Jackson 3 source and generated models Required Boot 4 application JSON stack
HMCTS clients, WireMock, Rest Assured, BEFTA Compatibility Align dependent libraries and test infrastructure
AM mixin and Feign converter configuration Behaviour-preserving Preserve released-client deserialization and cold-start converter behaviour
Telemetry and hypermedia configuration Behaviour-preserving Preserve application behaviour after removed/changed auto-configuration

Validation

  • ./gradlew test checkstyleMain checkstyleTest checkstyleContractTest checkstyleAat bootJar
    • 4,118 tests passed; 0 failures; 0 errors; 52 skipped
    • all four Checkstyle source sets passed
    • executable Boot jar built successfully
  • integration suite: 25 tests; 0 failures/errors; 8 skipped
  • git diff --check passed
  • dependency/source/bytecode audits found no Jackson 2 core/databind/module references in CCD-owned code
  • independent migration-guide reviews found no remaining parity blocker

Pending CI/deployed validation

  • Pact provider verification must run against the real broker; the local attempt was environment-inconclusive because localhost:9292 was unavailable
  • Jenkins must validate image build, preview startup/readiness, smoke and functional behaviour
  • normalized OpenAPI comparison and representative existing-schema Flyway validation remain explicit pre-merge checks

Temporary compatibility points

  • remove the AM exclusion/mixin when a compatible AM client is published
  • remove the Feign converter ordering workaround once the matching OpenFeign fix is available
  • replace the BEFTA prerelease/Jackson 2 AAT pin when a compatible final BEFTA release is available

Does this PR introduce a breaking change?

[ ] Yes
[x] No

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant