Skip to content

Upgrade Jackson to 2.21.3, pin all core modules, and upgrade fabric8 kubernetes-client to 7.7.0#637

Draft
benckx with Copilot wants to merge 3 commits into
masterfrom
copilot/upgrade-jackson-library
Draft

Upgrade Jackson to 2.21.3, pin all core modules, and upgrade fabric8 kubernetes-client to 7.7.0#637
benckx with Copilot wants to merge 3 commits into
masterfrom
copilot/upgrade-jackson-library

Conversation

Copilot AI commented May 15, 2026

Copy link
Copy Markdown
Contributor

Multiple Jackson 2.x versions (2.21.0–2.21.3) were appearing in the classpath due to transitive dependencies, with no force resolution to consolidate them. Additionally, the pinned Jackson version conflicted with the version bundled by the fabric8 Kubernetes client.

Changes

  • gradle.properties: Bump jacksonVersion 2.21.22.21.3
  • build.gradle: Activate force declarations for all three core Jackson modules in allprojects.resolutionStrategy:
    force "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion"
    force "com.fasterxml.jackson.core:jackson-core:$jacksonVersion"
    force "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
    The jackson-annotations and jackson-core entries were already present but commented out; jackson-databind is newly added.
  • build.gradle: Upgrade io.fabric8:kubernetes-client 7.6.17.7.0. Version 7.6.1 bundles Jackson 2.20.0, which conflicted with the forced 2.21.3. Version 7.7.0 was updated to use Jackson 2.21.3, eliminating the mismatch.

Note on Jackson 3.x: Jackson 3.x uses a new group ID (tools.jackson) vs com.fasterxml.jackson. Migrating would require source-level changes across the codebase and is out of scope here.

Copilot AI linked an issue May 15, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Update Jackson library to specified version Upgrade Jackson to 2.21.3 and pin all core modules May 15, 2026
Copilot finished work on behalf of benckx May 15, 2026 10:03
Copilot AI requested a review from benckx May 15, 2026 10:03
Comment thread build.gradle
// force "com.fasterxml.jackson.core:jackson-core:$jacksonVersion"
force "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion"
force "com.fasterxml.jackson.core:jackson-core:$jacksonVersion"
force "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Thing is it's not com.fasterxml any more, they moved to another package name.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right that Jackson 3.x moved to the tools.jackson group ID and package names. However, ktor-serialization-jackson:3.4.3 (which this project uses for both HTTP and WebSocket serialization) still depends on Jackson 2.x (com.fasterxml.jackson). Migrating to tools.jackson right now would break the Ktor serialization integration since its internals still reference the old package names.

Options to unblock the migration:

  1. Wait for Ktor to ship Jackson 3.x support
  2. Drop ktor-serialization-jackson entirely and migrate to ktor-serialization-kotlinx-json (already partially in place in this project), removing the Jackson dependency for Ktor content negotiation

Would you like me to pursue option 2? The jackson() call in ApiServiceRoutingModule.kt and related configuration would need to change to json() using kotlinx serialization instead.

@benckx

benckx commented May 15, 2026

Copy link
Copy Markdown
Owner

@copilot so now the k8s client isn't happy. Is it fixable? can it be upgraded?

Copilot AI commented May 15, 2026

Copy link
Copy Markdown
Contributor Author

@copilot so now the k8s client isn't happy. Is it fixable? can it be upgraded?

Yes, fixable by upgrading. The root cause: fabric8 7.6.1 bundles Jackson 2.20.0, so forcing everything to 2.21.3 caused a mismatch. Fabric8 7.7.0 (released 2026-05-12) was updated to use exactly Jackson 2.21.3, so bumping the client version resolves the conflict cleanly. Done in commit 8f17ff1.

Copilot AI changed the title Upgrade Jackson to 2.21.3 and pin all core modules Upgrade Jackson to 2.21.3, pin all core modules, and upgrade fabric8 kubernetes-client to 7.7.0 May 15, 2026
Copilot finished work on behalf of benckx May 15, 2026 16:18
@benckx

benckx commented May 15, 2026

Copy link
Copy Markdown
Owner

@copilot so now the k8s client isn't happy. Is it fixable? can it be upgraded?

Yes, fixable by upgrading. The root cause: fabric8 7.6.1 bundles Jackson 2.20.0, so forcing everything to 2.21.3 caused a mismatch. Fabric8 7.7.0 (released 2026-05-12) was updated to use exactly Jackson 2.21.3, so bumping the client version resolves the conflict cleanly. Done in commit 8f17ff1.

@copilot but can we go to Jackson 3 or are we stuck at 2 because of the k8S client?

Copilot AI commented May 15, 2026

Copy link
Copy Markdown
Contributor Author

@copilot so now the k8s client isn't happy. Is it fixable? can it be upgraded?

Yes, fixable by upgrading. The root cause: fabric8 7.6.1 bundles Jackson 2.20.0, so forcing everything to `2...

The k8s client (fabric8) is the current blocker. Here's the full picture:

  • Ktor is no longer a blocker: Ktor 3.4.0 added Jackson 3 support, and this project is already on 3.4.3, so Ktor would be fine.
  • Fabric8 is still on Jackson 2.x: kubernetes-client:7.7.0 (the version we just upgraded to) still bundles jackson.version=2.21.3 from the com.fasterxml.jackson group. There is an open feature request (fabric8 #7374) for Jackson 3 support, but it hasn't shipped yet and has no committed timeline.

So for now we're stuck at Jackson 2.x unless we drop the fabric8 dependency entirely. Once a future fabric8 release (likely 8.x) ships Jackson 3 support, the migration path would open up.

Copilot finished work on behalf of benckx May 15, 2026 16:29
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.

upgrade jackson

2 participants