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]

Reply via email to