Croway opened a new pull request, #27488: URL: https://github.com/apache/camel/pull/27488
> [!IMPORTANT] > **Draft, stacked on #27485.** This branch contains the two commits of #27485. Only the last commit (`CAMEL-25029: camel-kafka - move the shared client code to camel-kafka-common`) belongs to this PR. Once #27485 is merged on `main`, this branch will be rebased onto `main` and marked ready for review. ## Description [CAMEL-25029](https://issues.apache.org/jira/browse/CAMEL-25029): second of three PRs for the Kafka share group consumer (KIP-932). 1. #27485: extract a reusable client configuration layer inside `camel-kafka`. 2. **This PR:** move that layer into a new flat module, `camel-kafka-common`. 3. Add the `camel-kafka-share` component, which depends on `camel-kafka-common` only. ### Changes - New module `components/camel-kafka-common` (`Camel :: Kafka :: Common`). It is a shared library, not a component: catalog generation is disabled, as in `camel-ftp-common`. It declares `kafka-clients` together with the lz4 replacement; `camel-kafka` now gets them through `camel-kafka-common`. - Moved with `git mv`. Packages and class names are unchanged: - `KafkaClientConfiguration`, `AbstractKafkaComponent` - `KafkaConstants`, `KafkaHeaderFilterStrategy` - `PollExceptionStrategy`, `PollOnError`, `KafkaConsumerFatalException`, `TaskHealthState` - `consumer.support.KafkaRecordProcessor`, `consumer.support.interop.JMSDeserializer` - the `serde` and `security` packages, and the serde unit tests - `KafkaClientFactory` and `DefaultKafkaClientFactory` stay in `camel-kafka`, unchanged. `getBrokers(KafkaConfiguration)` is overridden by custom factories (camel-quarkus), and the share component will have its own factory. - The catalog generator cannot read javadoc from a dependency jar, so every option of the moved classes now has an explicit `description`. The text is copied from the current catalog, so `kafka.json`, the generated configurers and the endpoint and component DSLs are unchanged. This is what `camel-ftp-common` did as well. - Wiring: `components/pom.xml`, the dependency management in `parent/pom.xml`, the regenerated `camel-bom`, and the labeler glob. - Upgrade guide (4.23): a note saying that the classes moved, and that the new dependency is only needed when the classpath is built without transitive dependencies. ### Compatibility `camel-kafka` depends on `camel-kafka-common`, so applications that depend on `camel-kafka` need no change. The same goes for camel-spring-boot (the starter depends on `camel-kafka`, and no starter is generated for `-common` modules) and camel-quarkus (the extension depends on `camel-kafka`; its kafka processor only registers kafka-clients types for reflection, and the generated configurers call setters directly). ### Verification - `mvn install` on `camel-kafka-common` and `camel-kafka`: unit tests green; no generated file changes. - `mvnd clean install -DskipTests` from the root: green, and the only regenerated file is `camel-bom`, which is committed. ## Target - [x] I checked that the commit is targeting the correct branch (Camel 4 uses the `main` branch) ## Tracking - [x] If this is a large change, bug fix, or code improvement, I checked there is a [JIRA issue](https://issues.apache.org/jira/browse/CAMEL) filed for the change (usually before you start working on it). ## Apache Camel coding standards and style - [x] I checked that each commit in the pull request has a meaningful subject line and body. - [x] I have run `mvn clean install -DskipTests` locally from root folder and I have committed all auto-generated changes. _Claude Code on behalf of Croway_ -- 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]
