Skip to content

feat: upgrade to Spring Boot 4.0 with Jackson 3 as the default#33

Open
rossdanderson wants to merge 2 commits into
mainfrom
springboot-4
Open

feat: upgrade to Spring Boot 4.0 with Jackson 3 as the default#33
rossdanderson wants to merge 2 commits into
mainfrom
springboot-4

Conversation

@rossdanderson
Copy link
Copy Markdown
Collaborator

What

Upgrades the library to Spring Boot 4.0 and makes Jackson 3 (tools.jackson.*) the default JSON binding, matching Spring Boot 4's own default. The Spring Boot 3.5 / Jackson 2 line continues on springboot-3.5.x (the 2.x release line).

Changes

  • Spring Boot pinned to 4.0.x; Kotlin to 2.2.21+; JDK 17+ baseline unchanged.
  • DataSourceAutoConfiguration now prefers a Jackson 3 JsonHandler, falling back to Jackson 2 only when Jackson 3 is absent and a Jackson 2 ObjectMapper is present. Both handlers are @ConditionalOnMissingBean(JsonHandler), so a consumer-defined handler still wins.
  • SimpleDataSourceFactory.createDataSource(...) defaults to the Jackson 3 handler; Jackson 2 artifacts are now compileOnly in datasourcex-util.
  • MIGRATION.md documents the 2.x → 3.x upgrade (focused: prerequisites, dependency bump, Jackson 3 default, keeping Jackson 2).

Merge

Includes a merge of main, bringing in the #30 ChannelSendOperator removal and the #32 end-to-end starter tests. The merged DataSourceEndToEndTest was ported from its Jackson 2 ObjectMapper bean to the Jackson 3 equivalent to match this line's default.

Verification

./gradlew check passes (tests + apiCheck + spotlessCheck). No public .api change — the breaking change is the Spring Boot 4 / Jackson 3 runtime baseline, hence the major version bump.

- Bump to Spring Boot 4.0.6 / Kotlin 2.2.21; Jackson 3 versions come from the BOM.
- util: Jackson 3 becomes the runtime default (api), Jackson 2 is compileOnly;
  createDataSource defaults to the Jackson 3 handler.
- spring starter: JsonHandler bean prefers Jackson 3, falls back to Jackson 2
  (spring-boot-jackson2); DataMessageMapping doc references tools.jackson.
- spring tests use Logback only (drop slf4j-simple) with a quiet logback-test.xml;
  add kotest SpringExtension + a context test asserting the Jackson 3 handler.
- Docs: README compatibility table + MIGRATION.md (2.x/Boot 3.5 -> 3.x/Boot 4.0).

Depends on the ChannelSendOperator removal (PR #30) landing on main first.
# Conflicts:
#	spring/build.gradle.kts
#	util/src/main/kotlin/com/caplin/integration/datasourcex/util/SimpleDataSourceFactory.kt
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