import org.springframework.kafka.support.serializer.JsonDeserializer;
import org.springframework.kafka.support.serializer.JsonSerde;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Properties;
import java.util.concurrent.CompletableFuture;
+import static de.juplo.kafka.wordcount.top10.Top10StreamProcessor.STORE_NAME;
import static org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler.StreamThreadExceptionResponse.SHUTDOWN_CLIENT;
props.put(StreamsConfig.APPLICATION_ID_CONFIG, properties.getApplicationId());
props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, properties.getBootstrapServer());
+
if (properties.getCommitInterval() != null)
props.put(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, properties.getCommitInterval());
if (properties.getCacheMaxBytes() != null)
return props;
}
- static Map<String, Object> serializationConfig()
+ static Properties serializationConfig()
{
- Map<String, Object> props = new HashMap<>();
+ Properties props = new Properties();
props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, JsonSerde.class.getName());
props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, JsonSerde.class.getName());
- props.put(JsonDeserializer.TRUSTED_PACKAGES, Top10Application.class.getPackageName());
- props.put(JsonDeserializer.KEY_DEFAULT_TYPE, User.class.getName());
+ props.put(JsonDeserializer.KEY_DEFAULT_TYPE, Stats.class.getName());
props.put(JsonDeserializer.VALUE_DEFAULT_TYPE, Ranking.class.getName());
props.put(
JsonDeserializer.TYPE_MAPPINGS,
- "word:" + Key.class.getName() + "," +
+ "key:" + Key.class.getName() + "," +
"counter:" + Entry.class.getName() + "," +
- "user:" + User.class.getName() + "," +
+ "stats:" + Stats.class.getName() + "," +
"ranking:" + Ranking.class.getName());
return props;
@Bean
public KeyValueBytesStoreSupplier storeSupplier()
{
- return Stores.persistentKeyValueStore("top10");
+ return Stores.persistentKeyValueStore(STORE_NAME);
}
}