public class CounterApplicationConfiguriation
{
@Bean
- public Properties streamProcessorProperties(CounterApplicationProperties counterProperties)
+ public Properties streamProcessorProperties(
+ CounterApplicationProperties counterProperties)
{
- Properties propertyMap = new Properties();
+ Properties propertyMap = serializationConfig();
propertyMap.put(StreamsConfig.APPLICATION_ID_CONFIG, counterProperties.getApplicationId());
+
propertyMap.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, counterProperties.getBootstrapServer());
- propertyMap.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, JsonSerde.class.getName());
- propertyMap.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, JsonSerde.class.getName());
- propertyMap.put(JsonDeserializer.TRUSTED_PACKAGES, CounterApplication.class.getPackageName());
- propertyMap.put(JsonDeserializer.KEY_DEFAULT_TYPE, Word.class.getName());
- propertyMap.put(JsonDeserializer.VALUE_DEFAULT_TYPE, Word.class.getName());
- propertyMap.put(StreamsConfig.STATE_DIR_CONFIG, "target");
if (counterProperties.getCommitInterval() != null)
propertyMap.put(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, counterProperties.getCommitInterval());
if (counterProperties.getCacheMaxBytes() != null)
- propertyMap.put(StreamsConfig.CACHE_MAX_BYTES_BUFFERING_CONFIG, counterProperties.getCacheMaxBytes());
+ propertyMap.put(StreamsConfig.STATESTORE_CACHE_MAX_BYTES_CONFIG, counterProperties.getCacheMaxBytes());
+
propertyMap.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
return propertyMap;
}
+ static Properties serializationConfig()
+ {
+ Properties propertyMap = new Properties();
+
+ propertyMap.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, JsonSerde.class.getName());
+ propertyMap.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, JsonSerde.class.getName());
+ propertyMap.put(JsonDeserializer.KEY_DEFAULT_TYPE, Word.class.getName());
+ propertyMap.put(JsonDeserializer.VALUE_DEFAULT_TYPE, Word.class.getName());
+ propertyMap.put(
+ JsonDeserializer.TYPE_MAPPINGS,
+ "word:" + Word.class.getName() + "," +
+ "counter:" + WordCounter.class.getName());
+
+ return propertyMap;
+ }
+
@Bean(initMethod = "start", destroyMethod = "stop")
public CounterStreamProcessor streamProcessor(
CounterApplicationProperties applicationProperties,