top10: 1.2.1 - (RED) Fixed de-/serialization, turned of caching in IT
authorKai Moritz <kai@juplo.de>
Sun, 26 May 2024 07:07:48 +0000 (09:07 +0200)
committerKai Moritz <kai@juplo.de>
Sat, 8 Jun 2024 11:07:31 +0000 (13:07 +0200)
* Fixed the type-mapping for the `JsonDeserializer`.
* Disabled the caching / out-buffering in Streams.
* Both changes are necessary, to see in `Top10ApplicationIT`, that
  messages are processed: _Compare the outcome of the test before and
  after this commit!_
* Nonetheless, the integration-test still fails, because the assertion
  is not true.

src/main/java/de/juplo/kafka/wordcount/top10/Top10ApplicationConfiguration.java
src/main/java/de/juplo/kafka/wordcount/top10/Top10ApplicationProperties.java
src/test/java/de/juplo/kafka/wordcount/top10/Top10ApplicationIT.java

index 6f18339..000db01 100644 (file)
@@ -38,13 +38,15 @@ public class Top10ApplicationConfiguration
                props.put(
                                JsonDeserializer.TYPE_MAPPINGS,
                                "word:" + Key.class.getName() + "," +
-                               "counter:" + Entry.class.getName());
-               props.put(JsonDeserializer.REMOVE_TYPE_INFO_HEADERS, Boolean.FALSE);
-               props.put(
-                               JsonSerializer.TYPE_MAPPINGS,
+                               "counter:" + Entry.class.getName() + "," +
                                "user:" + User.class.getName() + "," +
                                "ranking:" + Ranking.class.getName());
                props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
+               if (properties.getCommitInterval() != null)
+                       props.put(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, properties.getCommitInterval());
+               if (properties.getCacheMaxBytes() != null)
+                       props.put(StreamsConfig.STATESTORE_CACHE_MAX_BYTES_CONFIG, properties.getCacheMaxBytes());
+               props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
 
                return props;
        }
index 93b78ec..d3bb236 100644 (file)
@@ -17,4 +17,6 @@ public class Top10ApplicationProperties
   private String applicationId = "top10";
   private String inputTopic = "countings";
   private String outputTopic = "top10";
+  private Integer commitInterval;
+  private Integer cacheMaxBytes;
 }
index 2d45f03..b35dd3d 100644 (file)
@@ -41,7 +41,11 @@ import static org.awaitility.Awaitility.await;
                                "spring.kafka.consumer.properties.spring.json.trusted.packages=de.juplo.kafka.wordcount.top10   ",
                                "logging.level.root=WARN",
                                "logging.level.de.juplo=DEBUG",
+                               "logging.level.org.apache.kafka.clients=INFO",
+                               "logging.level.org.apache.kafka.streams=INFO",
                                "juplo.wordcount.top10.bootstrap-server=${spring.embedded.kafka.brokers}",
+                               "juplo.wordcount.top10.commit-interval=100",
+                               "juplo.wordcount.top10.cacheMaxBytes=0",
                                "juplo.wordcount.top10.input-topic=" + Top10ApplicationIT.TOPIC_IN,
                                "juplo.wordcount.top10.output-topic=" + Top10ApplicationIT.TOPIC_OUT })
 @EmbeddedKafka(topics = { Top10ApplicationIT.TOPIC_IN, Top10ApplicationIT.TOPIC_OUT })