You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by gu...@apache.org on 2017/10/17 01:01:35 UTC
kafka git commit: MINOR: add equals to SessionWindows
Repository: kafka
Updated Branches:
refs/heads/trunk f931febc8 -> 6c416acee
MINOR: add equals to SessionWindows
Author: Damian Guy <da...@gmail.com>
Reviewers: Guozhang Wang <wa...@gmail.com>, Matthias J. Sax<ma...@confluent.io>, Bill Bejeck <bi...@confluent.io>
Closes #4074 from dguy/minor-session-window-equals
Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/6c416ace
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/6c416ace
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/6c416ace
Branch: refs/heads/trunk
Commit: 6c416aceeb172dc6b0103855f3c1ecbfc9f4d411
Parents: f931feb
Author: Damian Guy <da...@gmail.com>
Authored: Mon Oct 16 18:01:32 2017 -0700
Committer: Guozhang Wang <wa...@gmail.com>
Committed: Mon Oct 16 18:01:32 2017 -0700
----------------------------------------------------------------------
.../kafka/streams/kstream/SessionWindows.java | 16 ++++++++++++++++
.../kafka/streams/kstream/SessionWindowsTest.java | 17 +++++++++++++++++
2 files changed, 33 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kafka/blob/6c416ace/streams/src/main/java/org/apache/kafka/streams/kstream/SessionWindows.java
----------------------------------------------------------------------
diff --git a/streams/src/main/java/org/apache/kafka/streams/kstream/SessionWindows.java b/streams/src/main/java/org/apache/kafka/streams/kstream/SessionWindows.java
index 693bee0..aa3dec1 100644
--- a/streams/src/main/java/org/apache/kafka/streams/kstream/SessionWindows.java
+++ b/streams/src/main/java/org/apache/kafka/streams/kstream/SessionWindows.java
@@ -18,6 +18,8 @@ package org.apache.kafka.streams.kstream;
import org.apache.kafka.streams.processor.TimestampExtractor;
+import java.util.Objects;
+
/**
* A session based window specification used for aggregating events into sessions.
* <p>
@@ -121,4 +123,18 @@ public final class SessionWindows {
public long maintainMs() {
return Math.max(maintainDurationMs, gapMs);
}
+
+ @Override
+ public boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ final SessionWindows that = (SessionWindows) o;
+ return gapMs == that.gapMs &&
+ maintainDurationMs == that.maintainDurationMs;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(gapMs, maintainDurationMs);
+ }
}
http://git-wip-us.apache.org/repos/asf/kafka/blob/6c416ace/streams/src/test/java/org/apache/kafka/streams/kstream/SessionWindowsTest.java
----------------------------------------------------------------------
diff --git a/streams/src/test/java/org/apache/kafka/streams/kstream/SessionWindowsTest.java b/streams/src/test/java/org/apache/kafka/streams/kstream/SessionWindowsTest.java
index 803080b..8c0a0b9 100644
--- a/streams/src/test/java/org/apache/kafka/streams/kstream/SessionWindowsTest.java
+++ b/streams/src/test/java/org/apache/kafka/streams/kstream/SessionWindowsTest.java
@@ -18,6 +18,9 @@ package org.apache.kafka.streams.kstream;
import org.junit.Test;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.IsNot.not;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
@@ -62,4 +65,18 @@ public class SessionWindowsTest {
}
}
+ @Test
+ public void shouldBeEqualWhenGapAndMaintainMsAreTheSame() {
+ assertThat(SessionWindows.with(5), equalTo(SessionWindows.with(5)));
+ }
+
+ @Test
+ public void shouldNotBeEqualWhenMaintainMsDifferent() {
+ assertThat(SessionWindows.with(5), not(equalTo(SessionWindows.with(5).until(10))));
+ }
+
+ @Test
+ public void shouldNotBeEqualWhenGapIsDifferent() {
+ assertThat(SessionWindows.with(5), not(equalTo(SessionWindows.with(10))));
+ }
}
\ No newline at end of file