Skip to content

[DO NOT MERGE] Add opt-in Jackson 3 support via multi-release JAR#2783

Open
cretz wants to merge 1 commit intotemporalio:masterfrom
cretz:jackson-3
Open

[DO NOT MERGE] Add opt-in Jackson 3 support via multi-release JAR#2783
cretz wants to merge 1 commit intotemporalio:masterfrom
cretz:jackson-3

Conversation

@cretz
Copy link
Member

@cretz cretz commented Feb 11, 2026

What was changed

  • Added Jackson3JsonPayloadConverter as a multi-release JAR entry (Java 8 stub in src/main/java/, real implementation in src/main/java17/) that uses Jackson 3.x JsonMapper for JSON serialization
  • Added JacksonJsonPayloadConverter.setDefaultAsJackson3(boolean, boolean) static method to globally opt in to Jackson 3 delegation, including for the default converter in DefaultDataConverter.STANDARD_PAYLOAD_CONVERTERS
  • Jackson 3 converter supports two modes: native Jackson 3 defaults (jackson2Compat=false) and Jackson 2 compatibility mode (jackson2Compat=true via JsonMapper.builderWithJackson2Defaults())
  • Converters with an explicit ObjectMapper passed to the constructor are not affected by the global Jackson 3 delegate
  • Both converters produce identical "json/plain" encoding type and are wire-compatible in both directions
  • Jackson 3 is published as an optional dependency with version range [3.0.4,) in the POM
  • Added jackson3Tests test suite (8 tests, Java 17 launcher) covering direct converter usage, wire compatibility, global delegation via GlobalDataConverter.get(), and explicit-mapper opt-out
  • Added Jackson-3-absent tests to the main test suite verifying correct error behavior on Java 8 (UnsupportedOperationException) and Java 17+ without Jackson 3 (NoClassDefFoundError)
  • Added jackson3Tests CI step to the unit_test_jdk8 job
  • Added @Documented to the @Experimental annotation

DO NOT MERGE - we are going to wait on Spring Boot 4 support at the same time to at least get reviewed at #2786

Checklist

  1. Closes Jackson 3 support #2746

@cretz cretz changed the title Add opt-in Jackson 3 support via multi-release JAR [DO NOT MERGE] Add opt-in Jackson 3 support via multi-release JAR Feb 11, 2026
@cretz cretz marked this pull request as ready for review February 12, 2026 11:52
@cretz cretz requested a review from a team as a code owner February 12, 2026 11:52
@Quinn-With-Two-Ns
Copy link
Contributor

What about the SDK's internal uses of jackson like for Nexus?

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.

Jackson 3 support

2 participants