oscerd commented on issue #1850:
URL: 
https://github.com/apache/camel-kafka-connector/issues/1850#issuecomment-6654606322

   Update: bumping to 3.3.4 isn't viable yet, so there's no PR for now.
   
   - **Kamelet connectors break.** The Apicurio Kamelets in the 4.22.0 catalog 
(and in 4.23.0) still pin 2.x serdes: 2.4.14.Final, 2.5.11.Final, or 2.6.x 
through `io.quarkus:quarkus-apicurio-registry-*`. With core on 3.3.4, the 2.x 
and 3.x jars end up in the same connector package. They define the same classes 
with different bytecode, and Kafka Connect loads plugin jars in alphabetical 
order, so the 3.3.4 copies win. `kafka-not-secured-apicurio-registry-sink` and 
`kafka-apicurio-registry-not-secured-sink` then fail with 
`NoClassDefFoundError: io/apicurio/registry/serde/data/SerdeMetadata`, and 
`kafka-not-secured-apicurio-registry-json-source` with `NoClassDefFoundError: 
.../serde/AbstractDeserializer`. I checked this by loading each package through 
Kafka 4.2.1's `PluginClassLoader`.
   - **`ExtJsonConverter` breaks.** 3.3.4 declares `connect-json` as 
`provided`, so it is no longer shipped. `ExtJsonConverter` then gets 
`JsonConverter` from the worker and fails with a `LinkageError` (loader 
constraint violation on Jackson's `ObjectNode`). The `connect-json` that 
2.5.11.Final brings in is what keeps the bundled converter working, so the pin 
should stay.
   - **Packages grow.** Every connector package grows by about 27 to 37 MiB 
(tar.gz roughly 2x to 3x), mostly from the protobuf serde subtree.
   - **2.6.13.Final doesn't help either.** It still brings `connect-api` / 
`connect-json` (3.9.0) at compile scope, so it doesn't remove the leak 
described above, and it has no Converter manifest.
   
   The core code itself compiles and its tests pass on 3.3.4, so the bump 
becomes possible once the Kamelets catalog moves to Apicurio 3.x serdes.
   
   For #1633, the Apicurio converters bundled today could get a ServiceLoader 
manifest of our own in core instead. That is the same file Kafka's 
`connect-plugin-path sync-manifests` would generate.
   
   While checking the packages I found a separate problem in the four Apicurio 
source connectors that use the Quarkus extensions; I'll open an issue for it.
   
   ---
   _Claude Code on behalf of Andrea Cosentino_


-- 
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]

Reply via email to