jamesnetherton opened a new pull request, #28497:
URL: https://github.com/apache/camel/pull/28497
Part of CAMEL-22857 (Jackson 3 as the primary Jackson line). This is the
foundation step: it manages Jackson 3 centrally so the per-area migration PRs
that follow only need to switch `com.fasterxml.jackson.*` dependencies to
`tools.jackson.*` in module poms, without versions.
## Changes
- `parent/pom.xml`: import `tools.jackson:jackson-bom`
(`${jackson3-version}`, 3.2.4) right after the existing
`com.fasterxml.jackson:jackson-bom` (`${jackson2-version}`, 2.22.4). The
Jackson 2 BOM stays and stays first: both BOMs manage the shared
`com.fasterxml.jackson.core:jackson-annotations` artifact, and the first import
wins, so its version keeps following `jackson2-version`. Both BOMs currently
pin annotations to 2.22, so nothing changes today. The Jackson 2 BOM cannot be
removed: azure-core, swagger-core, opensearch-java, jslt, camunda-client,
langchain4j, openai-java and the Huawei SDK are still Jackson 2 only.
- Remove the local `tools.jackson:jackson-bom` imports that
`camel-jackson3`, `camel-jackson3-avro`, `camel-jackson3-protobuf`,
`camel-jackson3xml`, `camel-jolt`, `camel-toon` and
`camel-jbang-plugin-kubernetes` each carried, and the hard-coded
`${jackson3-version}` on the `camel-kafka` test dependency.
- `.github/dependabot.yml`: a `Jackson` group covering
`com.fasterxml.jackson*` and `tools.jackson*`, so the two BOMs are bumped in
one PR and their annotation pins cannot drift apart.
## Verification
- `mvn dependency:tree` on the eight touched modules resolves every
`tools.jackson.*` artifact at 3.2.4 and `jackson-annotations` at 2.22, the same
as before the change.
- Third-party libraries in the build that already depend on Jackson 3
declare versions at or below 3.2.3 (fabric8 kubernetes-client 8.0.0: 3.2.3,
jtoon 3.0.0: 3.2.3, openfga-sdk 0.11.0: 3.2.3, hapi-fhir 8.12.1: 3.2.2,
jolt-community 1.3.0: 3.2.1, couchbase java-client 3.12.3: 3.1.4,
elasticsearch-java 9.5.5: 3.1.0). The parent pin is therefore never a
downgrade; it aligns those modules on one Jackson 3 patch version instead of
whatever each library pulled in.
- The eight touched modules build with their tests.
No upgrade guide entry: Camel's own build and `camel-parent` are the only
things that change. No Camel user-facing behaviour changes.
Not included, left as a separate decision: an enforcer `bannedDependencies`
rule on `com.fasterxml.jackson.core:jackson-databind` with a per-module
opt-out, to guard against Jackson 2 being reintroduced into a migrated module.
Camel Quarkus: nothing to do on the CQ side for this PR.
_Claude Code on behalf of jamesnetherton_
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]