Versions Compared

Key

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

...

And in ConsoleConsumer class, add the new StreamsConfigs names into its options:we let the deserializers to configure themselves, so that users can pass the inner serde as part of the message formatter properties with `key.deserializer.` and `value.deserializer.` prefix, which can then eventually be used by the deserailizer configuration logic to set the inner serde class.

 

Code Block
val innerKeyDeserializerOptmessageFormatterArgOpt = parser.accepts(StreamsConfig.DEFAULT_WINDOWED_KEY_SERDE_INNER_CLASS)"property",
  "The properties to initialize the .withRequiredArg
   message formatter. Default properties include:\n" +
   .describedAs("inner serde for key when windowed deserialier is used; would be ignored otherwise")
      .ofType(classOf[String])


val innerValueDeserializerOpt = parser.accepts(StreamsConfig.DEFAULT_WINDOWED_VALUE_SERDE_INNER_CLASS)
      .withRequiredArg
      .describedAs("inner serde for value when windowed deserialier is used; would be ignored otherwise")
      .ofType(classOf[String] "\tprint.timestamp=true|false\n" +
    "\tprint.key=true|false\n" +
    "\tprint.value=true|false\n" +
    "\tkey.separator=<key.separator>\n" +
    "\tline.separator=<line.separator>\n" +
    "\tkey.deserializer=<key.deserializer>\n" +
    "\tvalue.deserializer=<value.deserializer>\n" +
    "\nUsers can also pass in customized properties for their formatter; more specifically, users " +
    "can pass in properties keyed with \'key.deserializer.\' and \'value.deserializer.\' prefixes to configure their deserializers.")


Note that for all windowed serdes, the inner serde can be either passed in during construction, or be configured in the configure call via the added inner serde classes.

...