Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
Status

Current state"DISCUSS"

...

  • StreamsConfig:
    • Rename default.windowed.key.serde.inner to windowed.deserializer.inner.class.
    • Deprecate default.windowed.value.serde.inner.


      Code Block
      languagejava
      themeMidnight
          public static final String WINDOWED_DESERIALISER_INNER_CLASS = "windowed.deserializer.inner.class";
          private static final String WINDOWED_DESERIALISER_INNER_CLASS_DOC = " Deserializer for the inner class of a windowed key. Must implement the " +
              "<code>org.apache.kafka.common.serialization.Deserializer</code> interface.";
      
      	@Deprecated
      	public static final String DEFAULT_WINDOWED_VALUE_SERDE_INNER_CLASS = "default.windowed.value.serde.inner";


  • ConsoleConsumer
    • It would be mandatory to pass windowed.deserializer.inner.class and window.size.ms config. <Need to check how to do this>
  • TimeWindowedDeserializer
    • Inside configure method, ensure that innerClassDeserialiser passed via constructor and the config are not conflicting. What it means is that:
      • If both inner and windowedDeserialiserInnerClass are set, then they should be the pointing to the same class.
      • Atleast one of inner and windowedDeserialiserInnerClass are set.

      • Code Block
        languagejava
        themeMidnight
            if (innerClassDeserializer != null && configInnerClassDeserializer != null) { 
        		if (innerClassDeserializer != configInnerClassDeserializer)
        			throw new IllegalArgumentException("Inner class deserializer passed via constructor and config windowed.deserializer.inner.class should match"); 
        	} else if (innerClassDeserializer == null && configInnerClassDeserializer == null) {
        		throw new IllegalArgumentException("Inner class deserializer should be passed either via constructor or via "); 
        	}


Compatibility, Deprecation, and Migration Plan

Since default.windowed.key.serde.inner config is being rename to windowed.deserializer.inner.class in StreamConfig and also default.windowed.value.serde.inner is being deprecated, we will have to follow a deprecation path for the same. We can maybe enforce the removal of the deprecated configs and then enforce users?

...