This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.

Status

Current stateaccepted 

Discussion thread: here

Vote thread: here

JIRA: Unable to render Jira issues macro, execution error.

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

Both of ConsumerConfig#addDeserializerToConfig(Properties, Deserializer, Deserializer) and ProducerConfig#addSerializerToConfig(Properties, Serializer, Serializer) are useless after https://github.com/apache/kafka/pull/8605.

Public Interfaces

No new interface

Proposed Changes

Deprecate following methods.

ProducerConfig
public static Properties addSerializerToConfig(Properties properties,
Serializer<?> keySerializer,
Serializer<?> valueSerializer)

public static Map<String, Object> addSerializerToConfig(Map<String, Object> configs,
Serializer<?> keySerializer,
Serializer<?> valueSerializer)


ConsumerConfig
public static Properties addDeserializerToConfig(Properties properties,
Deserializer<?> keyDeserializer,
Deserializer<?> valueDeserializer)

public static Map<String, Object> addDeserializerToConfig(Map<String, Object> configs,
Deserializer<?> keyDeserializer,
Deserializer<?> valueDeserializer)


add following package-private methods.

ProducerConfig
static Map<String, Object> appendSerializerToConfig(Map<String, Object> configs,
Serializer<?> keySerializer,
Serializer<?> valueSerializer)
ConsumerConfig
static Map<String, Object> appendDeserializerToConfig(Map<String, Object> configs,
Deserializer<?> keyDeserializer,
Deserializer<?> valueDeserializer)

Compatibility, Deprecation, and Migration Plan

ProducerConfig#addSerializerToConfig(Map<String, Object>...) is deprecated so as to remove it from public scope. A package-private replacement `appendSerializerToConfig` will be added and then used by KafkaProducer internally.

ConsumerConfig#addDeserializerToConfig(Map<String, Object>...) is deprecated so as to remove it from public scope. A package-private replacement `appendDeserializerToConfig` will be added and then used by KafkaConsumer internally.

Rejected Alternatives

N/A


  • No labels