Jackson 3.0

52 views
Skip to first unread message

Ullrich Hafner

unread,
Feb 24, 2026, 3:29:31 AM (11 days ago) Feb 24
to Jenkins Developers
Another core library that we are using extensively in Jenkins is Jackson. There is a new major release with breaking changes available as well: 

We use Jackson directly in core, plugins use it via the Jackson 2 API plugin. What are the plans here? Does it make sense to create a Jackson 3 API plugin so that plugins can migrate to Jackson 3 if they want? Or will this be a conflict when Jenkins core does not update its own dependency? 



Winter, Markus

unread,
Feb 24, 2026, 4:01:10 AM (11 days ago) Feb 24
to jenkin...@googlegroups.com
We already have an api plugin for Jackson 3

Afaik we don't use jackson in core

From: jenkin...@googlegroups.com <jenkin...@googlegroups.com> on behalf of Ullrich Hafner <ullrich...@gmail.com>
Sent: Tuesday, February 24, 2026 9:29 AM
To: Jenkins Developers <jenkin...@googlegroups.com>
Subject: Jackson 3.0
 
Another core library that we are using extensively in Jenkins is Jackson. There is a new major release with breaking changes available as well: 

We use Jackson directly in core, plugins use it via the Jackson 2 API plugin. What are the plans here? Does it make sense to create a Jackson 3 API plugin so that plugins can migrate to Jackson 3 if they want? Or will this be a conflict when Jenkins core does not update its own dependency? 



--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/jenkinsci-dev/0754AC9B-7A50-41AF-B0C0-06C424B92161%40gmail.com.

Valentin Delaye (jonesbusy)

unread,
Mar 1, 2026, 3:08:22 AM (6 days ago) Mar 1
to Jenkins Developers
Plugin transition will take some time but already happen.

Example is flyway-api that will require jackson3 because the upstream dependency now require it (https://documentation.red-gate.com/fd/release-notes-for-flyway-engine-179732572.html)

Cheers,

Valentin Delaye (jonesbusy)

unread,
Mar 3, 2026, 12:09:28 AM (4 days ago) Mar 3
to Jenkins Developers
Note: Jackson 2.x and Jackson 3.x can exists in parallel 

They both package jackson-annotations but with different version

Jackson 2.20 (our current version) package jackson-annotations:jar:2.20
Jackson 2.21 (next version, LTS apparently) package jackson-annotations:jar:2.21
Jackson 3.0 package jackson-annotations:jar:2.20
Jackson 3.1 (our current version) package jackson-annotations:jar:2.21

If a plugin depends (direct or transitive) different jackson-annotations can cause upper bound issue.

But apparently PCT discovered also java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonSerializeAs

When updating to Jackson 2.21 I cannot reproduce the issue (with Junit plugin for example)

So if bom https://github.com/jenkinsci/bom/pull/6432 pass I would suggest to upgrade to Jackson 2.21.1

We would need to keep jackson-annotations aligned if they change

Valentin Delaye (jonesbusy)

unread,
Mar 6, 2026, 3:01:44 AM (yesterday) Mar 6
to Jenkins Developers
We might also have some issue (or just class duplicate) with jackson-dataformat-xml. Internally it uses stax2-api and woodstox-core which we package directly on Jackson2 API plugin.

For the moment for XML format we don't have consumer yet (PR in draft: https://github.com/jenkinsci/jackson3-api-plugin/pull/36)

For other format it's not an issue because we already have API plugin

TOML --> No transitive dependency
YAML --> snakeyaml or snakeyaml-engine (we have API plugin for both)
JSON --> for datatype (jackson-datatype-json-org) that uses json and we jave json-api plugin (no consumer yet for Jackson3)

Other module like jackson-modules-java8 are directly integrated in jackson-database (since it require Java17)

I would suggest to keep XML on hold until we migrate or have the need for a first consumer with XML serialization


Reply all
Reply to author
Forward
0 new messages