X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fdemo%2Fkafka%2Fdeduplication%2FDeduplicationTransformer.java;h=dc888bcc81026b2c95a9b979f14facf5ee4ada77;hb=150907d53cc99a98f4c888eacff892380ffd0feb;hp=e07fb372f6586f6570d51327557aec32a9bbf704;hpb=5bb3d2908ccfe091084aa8a0a8b1282fb19fb3e1;p=demos%2Fkafka%2Fdeduplication diff --git a/src/main/java/de/juplo/demo/kafka/deduplication/DeduplicationTransformer.java b/src/main/java/de/juplo/demo/kafka/deduplication/DeduplicationTransformer.java index e07fb37..dc888bc 100644 --- a/src/main/java/de/juplo/demo/kafka/deduplication/DeduplicationTransformer.java +++ b/src/main/java/de/juplo/demo/kafka/deduplication/DeduplicationTransformer.java @@ -2,7 +2,7 @@ package de.juplo.demo.kafka.deduplication; import lombok.extern.slf4j.Slf4j; import org.apache.kafka.common.header.Headers; -import org.apache.kafka.streams.kstream.ValueTransformerWithKey; +import org.apache.kafka.streams.kstream.ValueTransformer; import org.apache.kafka.streams.processor.ProcessorContext; import org.apache.kafka.streams.state.KeyValueStore; @@ -11,21 +11,13 @@ import java.util.Collections; @Slf4j -public class DeduplicationTransformer implements ValueTransformerWithKey> +public class DeduplicationTransformer implements ValueTransformer> { - final SequenceNumberExtractor extractor; - public final static String STORE = DeduplicationTransformer.class.getCanonicalName() + "_STORE"; private ProcessorContext context; private KeyValueStore store; - public DeduplicationTransformer(SequenceNumberExtractor extractor) - { - this.extractor = extractor; - } - - @Override public void init(ProcessorContext context) { @@ -34,14 +26,14 @@ public class DeduplicationTransformer implements ValueTransformerWithKey transform(K key, V value) + public Iterable transform(String value) { String topic = context.topic(); Integer partition = context.partition(); long offset = context.offset(); Headers headers = context.headers(); - long sequenceNumber = extractor.extract(topic, partition, offset, headers, key, value); + long sequenceNumber = Long.parseLong(value); Long seen = store.get(partition); if (seen == null || seen < sequenceNumber) @@ -50,13 +42,7 @@ public class DeduplicationTransformer implements ValueTransformerWithKey