Greg Harris created KAFKA-14760: ----------------------------------- Summary: Move ThroughputThrottler, break connect-runtime dependency on tools Key: KAFKA-14760 URL: https://issues.apache.org/jira/browse/KAFKA-14760 Project: Kafka Issue Type: Task Components: KafkaConnect, tools Reporter: Greg Harris Assignee: Greg Harris
Currently there is only one dependency on the `tools` module, `connect-runtime`. This dependency is only for one class, the ThroughputThrottler. This class is used by: 1. tools main ProducerPerformance 2. tools main VerifiableProducer 3. runtime main SchemaSourceConnector 4. runtime main VerifiableSourceConnector 5. runtime test MonitorableSourceConnector For KAFKA-14627, I want to be able to have `tools` (test) depend on `connect-runtime` (test). This is because we are adding a connect-specific command-line utility, and wish to re-use some of the existing connect test infrastructure to unit test the new command-line utility. Unfortunately naively adding this new dependency to tools causes a circular dependency that prevents the project from building. Instead of refactoring the connect-specific test utilities out to a new package that both runtime and tools can depend on, it appears to make more sense to move the more generic `ThroughputThrottler` class into some common package. This common package could be: 1. clients 2. server common 3. some other existing package which would be a new dependency for tools 4. a new package consisting of just the `ThroughputThrottler` class I'm not sure which one of these makes the most sense, and would appreciate guidance on what would make the most sense for ownership and maintenance. -- This message was sent by Atlassian Jira (v8.20.10#820010)