From 1c06adc740d1583eac068537b7b1ceb83adc404e Mon Sep 17 00:00:00 2001 From: Philip Nee Date: Thu, 14 Sep 2023 11:43:11 -0700 Subject: [PATCH 1/2] Implement toStringBase to avoid duplicated code --- .../internals/events/ApplicationEvent.java | 13 +++++++++++-- .../AssignmentChangeApplicationEvent.java | 11 ++++++++++- .../events/CommitApplicationEvent.java | 8 +++++--- .../events/CompletableApplicationEvent.java | 17 +++++++++++------ .../events/ListOffsetsApplicationEvent.java | 11 ++++++----- .../NewTopicsMetadataUpdateRequestEvent.java | 9 ++++++++- .../internals/events/NoopApplicationEvent.java | 7 +++++-- .../events/OffsetFetchApplicationEvent.java | 11 +++++------ .../internals/events/PollApplicationEvent.java | 10 +++++++++- .../events/ResetPositionsApplicationEvent.java | 9 ++++++++- .../ValidatePositionsApplicationEvent.java | 9 ++++++++- 11 files changed, 86 insertions(+), 29 deletions(-) diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java index eb1bffaf81dad..02d149994b74c 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java @@ -21,18 +21,27 @@ */ abstract public class ApplicationEvent { public final Type type; + protected final String owner; - protected ApplicationEvent(Type type) { + protected ApplicationEvent(Type type, String owner) { this.type = type; + this.owner = owner; } @Override public String toString() { - return type + " ApplicationEvent"; + return "ApplicationEvent{" + + toStringBase() + + '}'; } public enum Type { NOOP, COMMIT, POLL, FETCH_COMMITTED_OFFSET, METADATA_UPDATE, ASSIGNMENT_CHANGE, LIST_OFFSETS, RESET_POSITIONS, VALIDATE_POSITIONS, } + + protected String toStringBase() { + return "owner='" + owner + '\'' + + ", type=" + type; + } } \ No newline at end of file diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AssignmentChangeApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AssignmentChangeApplicationEvent.java index 4346d96dbf3ea..2656599d23a2c 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AssignmentChangeApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AssignmentChangeApplicationEvent.java @@ -26,8 +26,17 @@ public class AssignmentChangeApplicationEvent extends ApplicationEvent { final long currentTimeMs; public AssignmentChangeApplicationEvent(final Map offsets, final long currentTimeMs) { - super(Type.ASSIGNMENT_CHANGE); + super(Type.ASSIGNMENT_CHANGE, AssignmentChangeApplicationEvent.class.getSimpleName()); this.offsets = offsets; this.currentTimeMs = currentTimeMs; } + + @Override + public String toString() { + return "AssignmentChangeApplicationEvent{" + + toStringBase() + + ", offsets=" + offsets + + ", currentTimeMs=" + currentTimeMs + + '}'; + } } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CommitApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CommitApplicationEvent.java index 67c416a8a2fd8..ea362f6ba9ad0 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CommitApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CommitApplicationEvent.java @@ -28,7 +28,7 @@ public class CommitApplicationEvent extends ApplicationEvent { final private Map offsets; public CommitApplicationEvent(final Map offsets) { - super(Type.COMMIT); + super(Type.COMMIT, CommitApplicationEvent.class.getSimpleName()); this.offsets = offsets; Optional exception = isValid(offsets); if (exception.isPresent()) { @@ -58,7 +58,9 @@ private Optional isValid(final Map @Override public String toString() { - return "CommitApplicationEvent(" - + "offsets=" + offsets + ")"; + return "CommitApplicationEvent{" + + toStringBase() + + ", offsets=" + offsets + + '}'; } } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableApplicationEvent.java index 3bd862861a40b..448c9a985396b 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableApplicationEvent.java @@ -35,8 +35,8 @@ public abstract class CompletableApplicationEvent extends ApplicationEvent { protected final CompletableFuture future; - protected CompletableApplicationEvent(Type type) { - super(type); + protected CompletableApplicationEvent(Type type, String owner) { + super(type, owner); this.future = new CompletableFuture<>(); } @@ -89,11 +89,16 @@ public int hashCode() { return result; } + @Override + public String toStringBase() { + return super.toStringBase() + + ", future=" + future; + } + @Override public String toString() { - return getClass().getSimpleName() + "{" + - "future=" + future + - ", type=" + type + - '}'; + return "CompletableApplicationEvent{" + + toStringBase() + + '}'; } } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ListOffsetsApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ListOffsetsApplicationEvent.java index 91b032c3478f9..7a31e247f643d 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ListOffsetsApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ListOffsetsApplicationEvent.java @@ -37,7 +37,7 @@ public class ListOffsetsApplicationEvent extends CompletableApplicationEvent timestampToSearch, boolean requireTimestamps) { - super(Type.LIST_OFFSETS); + super(Type.LIST_OFFSETS, ListOffsetsApplicationEvent.class.getSimpleName()); this.timestampsToSearch = Collections.unmodifiableMap(timestampToSearch); this.requireTimestamps = requireTimestamps; } @@ -85,9 +85,10 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + " {" + - "timestampsToSearch=" + timestampsToSearch + ", " + - "requireTimestamps=" + requireTimestamps + '}'; + return "ListOffsetsApplicationEvent{" + + toStringBase() + + ", timestampsToSearch=" + timestampsToSearch + + ", requireTimestamps=" + requireTimestamps + + '}'; } - } \ No newline at end of file diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NewTopicsMetadataUpdateRequestEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NewTopicsMetadataUpdateRequestEvent.java index 54cee4ee9de82..1525b8e445b7e 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NewTopicsMetadataUpdateRequestEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NewTopicsMetadataUpdateRequestEvent.java @@ -19,6 +19,13 @@ public class NewTopicsMetadataUpdateRequestEvent extends ApplicationEvent { public NewTopicsMetadataUpdateRequestEvent() { - super(Type.METADATA_UPDATE); + super(Type.METADATA_UPDATE, NewTopicsMetadataUpdateRequestEvent.class.getSimpleName()); + } + + @Override + public String toString() { + return "NewTopicsMetadataUpdateRequestEvent{" + + toStringBase() + + '}'; } } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NoopApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NoopApplicationEvent.java index 07524542d7d2a..fbbfe5ec70734 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NoopApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NoopApplicationEvent.java @@ -23,12 +23,15 @@ public class NoopApplicationEvent extends ApplicationEvent { public final String message; public NoopApplicationEvent(final String message) { - super(Type.NOOP); + super(Type.NOOP, NoopApplicationEvent.class.getSimpleName()); this.message = message; } @Override public String toString() { - return getClass() + "_" + this.message; + return "NoopApplicationEvent{" + + toStringBase() + + ", message='" + message + '\'' + + '}'; } } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/OffsetFetchApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/OffsetFetchApplicationEvent.java index e53248425d95f..9cf5621b6695d 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/OffsetFetchApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/OffsetFetchApplicationEvent.java @@ -27,7 +27,7 @@ public class OffsetFetchApplicationEvent extends CompletableApplicationEvent partitions; public OffsetFetchApplicationEvent(final Set partitions) { - super(Type.FETCH_COMMITTED_OFFSET); + super(Type.FETCH_COMMITTED_OFFSET, OffsetFetchApplicationEvent.class.getSimpleName()); this.partitions = Collections.unmodifiableSet(partitions); } @@ -55,10 +55,9 @@ public int hashCode() { @Override public String toString() { - return getClass().getSimpleName() + "{" + - "partitions=" + partitions + - ", future=" + future + - ", type=" + type + - '}'; + return "OffsetFetchApplicationEvent{" + + toStringBase() + + ", partitions=" + partitions + + '}'; } } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/PollApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/PollApplicationEvent.java index c14998dc65243..b5406fa46a1a9 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/PollApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/PollApplicationEvent.java @@ -20,7 +20,15 @@ public class PollApplicationEvent extends ApplicationEvent { public final long pollTimeMs; protected PollApplicationEvent(final long currentTimeMs) { - super(Type.POLL); + super(Type.POLL, PollApplicationEvent.class.getSimpleName()); this.pollTimeMs = currentTimeMs; } + + @Override + public String toString() { + return "PollApplicationEvent{" + + toStringBase() + + ", pollTimeMs=" + pollTimeMs + + '}'; + } } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ResetPositionsApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ResetPositionsApplicationEvent.java index 5d9b07f9de05f..13f3904f987ec 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ResetPositionsApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ResetPositionsApplicationEvent.java @@ -25,6 +25,13 @@ public class ResetPositionsApplicationEvent extends CompletableApplicationEvent { public ResetPositionsApplicationEvent() { - super(Type.RESET_POSITIONS); + super(Type.RESET_POSITIONS, ResetPositionsApplicationEvent.class.getSimpleName()); + } + + @Override + public String toString() { + return "ResetPositionsApplicationEvent{" + + toStringBase() + + '}'; } } \ No newline at end of file diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ValidatePositionsApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ValidatePositionsApplicationEvent.java index 3b093e0b68353..c946876f0fe43 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ValidatePositionsApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ValidatePositionsApplicationEvent.java @@ -25,6 +25,13 @@ public class ValidatePositionsApplicationEvent extends CompletableApplicationEvent { public ValidatePositionsApplicationEvent() { - super(Type.VALIDATE_POSITIONS); + super(Type.VALIDATE_POSITIONS, ValidatePositionsApplicationEvent.class.getSimpleName()); + } + + @Override + public String toString() { + return "ValidatePositionsApplicationEvent{" + + toStringBase() + + '}'; } } \ No newline at end of file From d58dc9ee32943dc70ef4fd3750bef1d409fb101f Mon Sep 17 00:00:00 2001 From: Philip Nee Date: Sun, 17 Sep 2023 20:48:54 -0700 Subject: [PATCH 2/2] based on pr comment test --- .../consumer/internals/events/ApplicationEvent.java | 7 ++----- .../internals/events/AssignmentChangeApplicationEvent.java | 5 ++--- .../consumer/internals/events/CommitApplicationEvent.java | 2 +- .../internals/events/CompletableApplicationEvent.java | 4 ++-- .../internals/events/ListOffsetsApplicationEvent.java | 2 +- .../events/NewTopicsMetadataUpdateRequestEvent.java | 2 +- .../consumer/internals/events/NoopApplicationEvent.java | 2 +- .../internals/events/OffsetFetchApplicationEvent.java | 2 +- .../consumer/internals/events/PollApplicationEvent.java | 2 +- .../internals/events/ResetPositionsApplicationEvent.java | 2 +- .../events/ValidatePositionsApplicationEvent.java | 2 +- 11 files changed, 14 insertions(+), 18 deletions(-) diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java index 02d149994b74c..e74b7a1a385d2 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java @@ -21,11 +21,9 @@ */ abstract public class ApplicationEvent { public final Type type; - protected final String owner; - protected ApplicationEvent(Type type, String owner) { + protected ApplicationEvent(Type type) { this.type = type; - this.owner = owner; } @Override @@ -41,7 +39,6 @@ public enum Type { } protected String toStringBase() { - return "owner='" + owner + '\'' + - ", type=" + type; + return "type=" + type; } } \ No newline at end of file diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AssignmentChangeApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AssignmentChangeApplicationEvent.java index 2656599d23a2c..4b981e5efeca6 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AssignmentChangeApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AssignmentChangeApplicationEvent.java @@ -26,15 +26,14 @@ public class AssignmentChangeApplicationEvent extends ApplicationEvent { final long currentTimeMs; public AssignmentChangeApplicationEvent(final Map offsets, final long currentTimeMs) { - super(Type.ASSIGNMENT_CHANGE, AssignmentChangeApplicationEvent.class.getSimpleName()); + super(Type.ASSIGNMENT_CHANGE); this.offsets = offsets; this.currentTimeMs = currentTimeMs; } @Override public String toString() { - return "AssignmentChangeApplicationEvent{" + - toStringBase() + + return toStringBase() + ", offsets=" + offsets + ", currentTimeMs=" + currentTimeMs + '}'; diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CommitApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CommitApplicationEvent.java index ea362f6ba9ad0..62d27e04d0041 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CommitApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CommitApplicationEvent.java @@ -28,7 +28,7 @@ public class CommitApplicationEvent extends ApplicationEvent { final private Map offsets; public CommitApplicationEvent(final Map offsets) { - super(Type.COMMIT, CommitApplicationEvent.class.getSimpleName()); + super(Type.COMMIT); this.offsets = offsets; Optional exception = isValid(offsets); if (exception.isPresent()) { diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableApplicationEvent.java index 448c9a985396b..811ab49c8c138 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableApplicationEvent.java @@ -35,8 +35,8 @@ public abstract class CompletableApplicationEvent extends ApplicationEvent { protected final CompletableFuture future; - protected CompletableApplicationEvent(Type type, String owner) { - super(type, owner); + protected CompletableApplicationEvent(Type type) { + super(type); this.future = new CompletableFuture<>(); } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ListOffsetsApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ListOffsetsApplicationEvent.java index 7a31e247f643d..0578d88ce4af5 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ListOffsetsApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ListOffsetsApplicationEvent.java @@ -37,7 +37,7 @@ public class ListOffsetsApplicationEvent extends CompletableApplicationEvent timestampToSearch, boolean requireTimestamps) { - super(Type.LIST_OFFSETS, ListOffsetsApplicationEvent.class.getSimpleName()); + super(Type.LIST_OFFSETS); this.timestampsToSearch = Collections.unmodifiableMap(timestampToSearch); this.requireTimestamps = requireTimestamps; } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NewTopicsMetadataUpdateRequestEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NewTopicsMetadataUpdateRequestEvent.java index 1525b8e445b7e..5e5c77cc3fc45 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NewTopicsMetadataUpdateRequestEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NewTopicsMetadataUpdateRequestEvent.java @@ -19,7 +19,7 @@ public class NewTopicsMetadataUpdateRequestEvent extends ApplicationEvent { public NewTopicsMetadataUpdateRequestEvent() { - super(Type.METADATA_UPDATE, NewTopicsMetadataUpdateRequestEvent.class.getSimpleName()); + super(Type.METADATA_UPDATE); } @Override diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NoopApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NoopApplicationEvent.java index fbbfe5ec70734..ce1fc96dd5315 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NoopApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/NoopApplicationEvent.java @@ -23,7 +23,7 @@ public class NoopApplicationEvent extends ApplicationEvent { public final String message; public NoopApplicationEvent(final String message) { - super(Type.NOOP, NoopApplicationEvent.class.getSimpleName()); + super(Type.NOOP); this.message = message; } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/OffsetFetchApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/OffsetFetchApplicationEvent.java index 9cf5621b6695d..53d968432d324 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/OffsetFetchApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/OffsetFetchApplicationEvent.java @@ -27,7 +27,7 @@ public class OffsetFetchApplicationEvent extends CompletableApplicationEvent partitions; public OffsetFetchApplicationEvent(final Set partitions) { - super(Type.FETCH_COMMITTED_OFFSET, OffsetFetchApplicationEvent.class.getSimpleName()); + super(Type.FETCH_COMMITTED_OFFSET); this.partitions = Collections.unmodifiableSet(partitions); } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/PollApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/PollApplicationEvent.java index b5406fa46a1a9..5954bbe2fd36f 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/PollApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/PollApplicationEvent.java @@ -20,7 +20,7 @@ public class PollApplicationEvent extends ApplicationEvent { public final long pollTimeMs; protected PollApplicationEvent(final long currentTimeMs) { - super(Type.POLL, PollApplicationEvent.class.getSimpleName()); + super(Type.POLL); this.pollTimeMs = currentTimeMs; } diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ResetPositionsApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ResetPositionsApplicationEvent.java index 13f3904f987ec..225aa6111e09a 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ResetPositionsApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ResetPositionsApplicationEvent.java @@ -25,7 +25,7 @@ public class ResetPositionsApplicationEvent extends CompletableApplicationEvent { public ResetPositionsApplicationEvent() { - super(Type.RESET_POSITIONS, ResetPositionsApplicationEvent.class.getSimpleName()); + super(Type.RESET_POSITIONS); } @Override diff --git a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ValidatePositionsApplicationEvent.java b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ValidatePositionsApplicationEvent.java index c946876f0fe43..997f9a8d6b51a 100644 --- a/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ValidatePositionsApplicationEvent.java +++ b/clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ValidatePositionsApplicationEvent.java @@ -25,7 +25,7 @@ public class ValidatePositionsApplicationEvent extends CompletableApplicationEvent { public ValidatePositionsApplicationEvent() { - super(Type.VALIDATE_POSITIONS, ValidatePositionsApplicationEvent.class.getSimpleName()); + super(Type.VALIDATE_POSITIONS); } @Override