From 8b91f50af5d4d1c72876a26356a6fde6eb74f34e Mon Sep 17 00:00:00 2001 From: Ilya Kuramshin Date: Thu, 13 Oct 2022 22:41:43 +0400 Subject: [PATCH] Smart filter offset binding (#2732) * adding "offset" var to smart filter binding Co-authored-by: iliax --- .../com/provectus/kafka/ui/emitter/MessageFilters.java | 1 + .../com/provectus/kafka/ui/emitter/MessageFiltersTest.java | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/emitter/MessageFilters.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/emitter/MessageFilters.java index 446f166bfe..ea0707f102 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/emitter/MessageFilters.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/emitter/MessageFilters.java @@ -43,6 +43,7 @@ public class MessageFilters { return msg -> { var bindings = getGroovyEngine().createBindings(); bindings.put("partition", msg.getPartition()); + bindings.put("offset", msg.getOffset()); bindings.put("timestampMs", msg.getTimestamp().toInstant().toEpochMilli()); bindings.put("keyAsText", msg.getKey()); bindings.put("valueAsText", msg.getContent()); diff --git a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/emitter/MessageFiltersTest.java b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/emitter/MessageFiltersTest.java index 0986a292ef..426ba98020 100644 --- a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/emitter/MessageFiltersTest.java +++ b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/emitter/MessageFiltersTest.java @@ -73,6 +73,13 @@ class MessageFiltersTest { assertFalse(f.test(msg().partition(0))); } + @Test + void canCheckOffset() { + var f = groovyScriptFilter("offset == 100"); + assertTrue(f.test(msg().offset(100L))); + assertFalse(f.test(msg().offset(200L))); + } + @Test void canCheckTimestampMs() { var ts = OffsetDateTime.now();