Skip to content

Conversation

@filiphr
Copy link
Contributor

@filiphr filiphr commented Nov 21, 2025

This PR is for adding support and upgrading to Jackson 3.

It is consisted of multiple commits in order to make the review easier:

  • Upgrade to Jackson 3 - Upgrades all the imports from com.fasterxml.jackson.databind and com.fasterxml.jackson.core to tools.jackson.databind and tools.jackson.core
  • Fix failing tests on Jackson 3
  • Do not use deprecated ISO8601DateFormat in tests
  • Move BaseMailActivityDelegate to engine common and CandidateUtil#extractCandidates for parsing recipients - Makes it easier to reuse things from flowable-engine-common
  • Support both Jackson 2 and Jackson 3 - This is for supporting Jackson 2 in variables, expressions and scripts.
  • Add checkstyle import control check - This is here to make sure that we do not use com.fasterxml.jackson.databind by mistake

Use Jackson 3 instead of Jackson 2 in our entire codebase
Using JsonMapper builder and JsonMapper.shared() in appropriate places
Use Jackson 3 with Spring Web
* Jackson 3 textValue() fails if node is not string or null
* Treat RecordKey JsonCreator as delegating (this is also applicable to Jackson 2)
* Fix incorrect expected JSON
The Flowable REST Application contains both Jackson 2 and Jackson 3.
However, the flowable engines have an optional dependency on Jackson 2.
If Jackson 2 is needed it should be manually configured.

All previous places that were using Jackson 2 for variable values.
e.g. Task Candidates etc. are now supporting both Jackson 2 and Jackson 3 values.

Storing Jackson 3 and Jackson 2 ObjectNode / ArrayNode variables is supported regardless of
the preferred variable json mapper
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