Status
Current state: Accepted
Discussion thread: [VOTE] KIP-243: Make ProducerConfig and ConsumerConfig constructors public (no DISCUSS thread)
JIRA: KAFKA-6382
Released: 1.1.0
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
Motivation
Constructors of ProducerConfig
and ConsumerConfig
are not public at the moment. This makes it hard to access default values for configurations. For Kafka Streams, we need access to those default value sometime and are forces to hardcode them via "copy and paste". Making constructors public allows programmatic access without the danger to forget updating Streams code in case a producer or consumer default value changes. (Note, AdminConfig
constructor is already public.)
Public Interfaces
This only affects ProducerConfig
and ConsumerConfig
// old API ProducerConfig(Map<?, ?> props); ConsumerConfig(Map<?, ?> props); // new API public ProducerConfig(Properties props); public ProducerConfig(Map<String, Object> props); public ConsumerConfig(Properties props); public ConsumerConfig(Map<String, Object> props);
Proposed Changes
We suggest to make both constructors public.
Compatibility, Deprecation, and Migration Plan
- We only add new public methods, thus, there is no compatibility issue.
Test Plan
Existing tests have already access to the constructors and thus no new tests are required.
Rejected Alternatives
None.