gnodet-bot commented on code in PR #26673:
URL: https://github.com/apache/camel/pull/26673#discussion_r4060862084
##########
components/camel-jolt/pom.xml:
##########
@@ -51,13 +51,13 @@
</dependency>
<dependency>
- <groupId>com.bazaarvoice.jolt</groupId>
- <artifactId>jolt-core</artifactId>
+ <groupId>io.github.jolt-community.jolt</groupId>
+ <artifactId>jolt-community-core</artifactId>
<version>${jolt-version}</version>
</dependency>
<dependency>
- <groupId>com.bazaarvoice.jolt</groupId>
- <artifactId>json-utils</artifactId>
+ <groupId>io.github.jolt-community.jolt</groupId>
+ <artifactId>json-community-utils</artifactId>
Review Comment:
⚠️ **Jackson 3 version conflict introduced transitively.**
`json-community-utils:1.3.0` declares `tools.jackson.core:jackson-databind`
(Jackson 3) as a **compile-scope** dependency ([verified on Maven
Central](https://central.sonatype.com/artifact/io.github.jolt-community.jolt/json-community-utils/1.3.0)).
Jackson 3 changed its Maven groupId from `com.fasterxml.jackson.core` to
`tools.jackson.core`, so both JARs end up on the classpath simultaneously —
they do **not** shadow each other.
`camel-jolt` already has `com.fasterxml.jackson.core:jackson-databind`
(Jackson 2) as a direct dependency, and Camel at large uses Jackson 2
throughout. At runtime, when `json-community-utils` returns a
`tools.jackson.databind.ObjectNode` that code compiled against
`com.fasterxml.jackson.databind.ObjectNode` tries to consume, you get a
`ClassCastException` or `NoSuchMethodError`.
Options:
1. Exclude `tools.jackson.core` from `json-community-utils` and verify that
the subset of its API used here compiles/runs without it (jolt-community-core
does **not** declare Jackson 3 at compile scope — only `json-community-utils`
does).
2. Remove `json-community-utils` from the direct compile dependencies
entirely if it is not needed at compile time by camel-jolt code (it was
previously only a test-scope dependency inside jolt-community-core itself).
3. Check whether a lower version of jolt-community (`1.0.x` or `1.1.x`,
before the Jackson 3 migration) avoids the conflict while still providing the
needed package rename.
##########
docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc:
##########
@@ -2349,3 +2349,13 @@ The `maxRetryTimeout` endpoint and component option is
deprecated in both `camel
it had no effect. The option is kept for backward compatibility of existing
endpoint URIs but is marked
deprecated and will be removed in a future release. Routes that set
`maxRetryTimeout` can simply drop it;
behaviour is unchanged.
+
+=== camel-jolt - switch from unmaintained bazaarvoice jolt to the
jolt-community fork
+
+The JOLT library dependency has been migrated from
`com.bazaarvoice.jolt:jolt-core` to
+`io.github.jolt-community.jolt:jolt-community-core`.
+See https://github.com/jolt-community/jolt-community[JOLT (Community Edition)].
+
+Due to the package rename from `com.bazaarvoice.jolt` to
`io.joltcommunity.jolt`, users who plug custom `Transform` or
+`ContextualTransform` classes into a Chainr spec need to update their imports
to `io.joltcommunity.jolt.Transform` and
+`io.joltcommunity.jolt.ContextualTransform`.
Review Comment:
📝 **Upgrade guide missing `Removr` package move.**
The guide correctly warns about `Transform` and `ContextualTransform`, but
`Removr` was also relocated to a sub-package in jolt-community. The old import
was `com.bazaarvoice.jolt.Removr`; the new one is
`io.joltcommunity.jolt.removr.Removr` (note the extra `removr.` sub-package).
Users who referenced `Removr` directly will get a compile error without this
note.
Suggested addition:
```
Users referencing `Removr` directly also need to update their import to
`io.joltcommunity.jolt.removr.Removr`.
```
--
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]