Refactor RaftRPC.toString() 89/114389/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 7 Nov 2024 11:45:11 +0000 (12:45 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 7 Nov 2024 11:45:11 +0000 (12:45 +0100)
Force a unified layout of toString(), which makes it easier to evolve
subclasses' fields.

Change-Id: I409ffe766feea88f8f935328aa0188dbc0df6bcd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReply.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshot.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReply.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RaftRPC.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RequestVote.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReply.java

index 6b5fe03e341b5e9c03dd4757ae83b604a970c6ae..e6b2da9b94868816fc87d5479c8ac3cd2ecb09b0 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.controller.cluster.raft.messages;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.MoreObjects.ToStringHelper;
 import com.google.common.collect.ImmutableList;
 import java.io.Externalizable;
 import java.io.IOException;
@@ -125,17 +126,18 @@ public final class AppendEntries extends RaftRPC {
     }
 
     @Override
-    public String toString() {
-        return "AppendEntries [leaderId=" + leaderId
-                + ", prevLogIndex=" + prevLogIndex
-                + ", prevLogTerm=" + prevLogTerm
-                + ", leaderCommit=" + leaderCommit
-                + ", replicatedToAllIndex=" + replicatedToAllIndex
-                + ", payloadVersion=" + payloadVersion
-                + ", recipientRaftVersion=" + recipientRaftVersion
-                + ", leaderRaftVersion=" + leaderRaftVersion
-                + ", leaderAddress=" + leaderAddress
-                + ", entries=" + entries + "]";
+    ToStringHelper addToStringAttributes(final ToStringHelper helper) {
+        return super.addToStringAttributes(helper)
+            .add("leaderId", leaderId)
+            .add("prevLogIndex", prevLogIndex)
+            .add("prevLogTerm", prevLogTerm)
+            .add("leaderCommit", leaderCommit)
+            .add("replicatedToAllIndex", replicatedToAllIndex)
+            .add("payloadVersion", payloadVersion)
+            .add("recipientRaftVersion", recipientRaftVersion)
+            .add("leaderRaftVersion", leaderRaftVersion)
+            .add("leaderAddress", leaderAddress)
+            .add("entries=", entries);
     }
 
     @Override
index ebc38450e3aac9bf60bedf41f932e187d5d5177b..8526673b60e4f7a3b192e76516b0a417f5d6b6a9 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.controller.cluster.raft.messages;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.MoreObjects.ToStringHelper;
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
@@ -108,12 +109,17 @@ public final class AppendEntriesReply extends RaftRPC {
     }
 
     @Override
-    public String toString() {
-        return "AppendEntriesReply [term=" + getTerm() + ", success=" + success + ", followerId=" + followerId
-                + ", logLastIndex=" + logLastIndex + ", logLastTerm=" + logLastTerm + ", forceInstallSnapshot="
-                + forceInstallSnapshot + ", needsLeaderAddress=" + needsLeaderAddress
-                + ", payloadVersion=" + payloadVersion + ", raftVersion=" + raftVersion
-                + ", recipientRaftVersion=" + recipientRaftVersion + "]";
+    ToStringHelper addToStringAttributes(final ToStringHelper helper) {
+        return super.addToStringAttributes(helper)
+            .add("success", success)
+            .add("followerId", followerId)
+            .add("logLastIndex", logLastIndex)
+            .add("logLastTerm", logLastTerm)
+            .add("forceInstallSnapshot", forceInstallSnapshot)
+            .add("needsLeaderAddress", needsLeaderAddress)
+            .add("payloadVersion", payloadVersion)
+            .add("raftVersion", raftVersion)
+            .add("recipientRaftVersion", recipientRaftVersion);
     }
 
     @Override
index 89855911ca2e1a38c0aa33ef83ddf20c3d395a1b..732e138d7b1e49b901aa59156c2e161c8f070e04 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.controller.cluster.raft.messages;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.MoreObjects.ToStringHelper;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.Externalizable;
 import java.io.IOException;
@@ -103,11 +104,15 @@ public final class InstallSnapshot extends RaftRPC {
     }
 
     @Override
-    public String toString() {
-        return "InstallSnapshot [term=" + getTerm() + ", leaderId=" + leaderId + ", lastIncludedIndex="
-                + lastIncludedIndex + ", lastIncludedTerm=" + lastIncludedTerm + ", datasize=" + data.length
-                + ", Chunk=" + chunkIndex + "/" + totalChunks + ", lastChunkHashCode=" + lastChunkHashCode
-                + ", serverConfig=" + serverConfig + "]";
+    ToStringHelper addToStringAttributes(final ToStringHelper helper) {
+        return super.addToStringAttributes(helper)
+            .add("leaderId", leaderId)
+            .add("lastIncludedIndex", lastIncludedIndex)
+            .add("lastIncludedTerm", lastIncludedTerm)
+            .add("datasize", data.length)
+            .add("chunk", chunkIndex + "/" + totalChunks)
+            .add("lastChunkHashCode", lastChunkHashCode)
+            .add("serverConfig", serverConfig);
     }
 
     @Override
index 7b26a4d18ac51da95a3aaeb84c90546d2c8d1425..100270ffa4590afc53c58a7484388aa0cc2671c7 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.controller.cluster.raft.messages;
 
+import com.google.common.base.MoreObjects.ToStringHelper;
+
 public final class InstallSnapshotReply extends RaftRPC {
     @java.io.Serial
     private static final long serialVersionUID = 642227896390779503L;
@@ -37,11 +39,11 @@ public final class InstallSnapshotReply extends RaftRPC {
     }
 
     @Override
-    public String toString() {
-        return "InstallSnapshotReply [term=" + getTerm()
-                + ", followerId=" + followerId
-                + ", chunkIndex=" + chunkIndex
-                + ", success=" + success + "]";
+    ToStringHelper addToStringAttributes(final ToStringHelper helper) {
+        return super.addToStringAttributes(helper)
+            .add("followerId", followerId)
+            .add("chunkIndex", chunkIndex)
+            .add("success", success);
     }
 
     @Override
index 1520359d924dbf6d58b4fa64afba1d1e0e98e6ca..540d1231ff08257d295d180f57ca68807911644e 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.controller.cluster.raft.messages;
 
+import com.google.common.base.MoreObjects;
+import com.google.common.base.MoreObjects.ToStringHelper;
 import java.io.Serializable;
 import org.apache.pekko.dispatch.ControlMessage;
 
@@ -39,7 +41,13 @@ public abstract sealed class RaftRPC implements Serializable, ControlMessage
     }
 
     @Override
-    public abstract String toString();
+    public final String toString() {
+        return addToStringAttributes(MoreObjects.toStringHelper(this).omitNullValues()).toString();
+    }
+
+    ToStringHelper addToStringAttributes(final ToStringHelper helper) {
+        return helper.add("term", term);
+    }
 
     // All implementations must use Externalizable Proxy pattern
     @java.io.Serial
index 61a621d8324dbea89ecff6d8708c8bc268479d55..55d566df15b699d52818dbabbc55950af422d187 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.controller.cluster.raft.messages;
 
+import com.google.common.base.MoreObjects.ToStringHelper;
+
 /**
  * Invoked by candidates to gather votes (ยง5.2).
  */
@@ -43,12 +45,11 @@ public final class RequestVote extends RaftRPC {
     }
 
     @Override
-    public String toString() {
-        return "RequestVote [term=" + getTerm()
-                + ", candidateId=" + candidateId
-                + ", lastLogIndex=" + lastLogIndex
-                + ", lastLogTerm=" + lastLogTerm
-                + "]";
+    ToStringHelper addToStringAttributes(final ToStringHelper helper) {
+        return super.addToStringAttributes(helper)
+            .add("candidateId", candidateId)
+            .add("lastLogIndex", lastLogIndex)
+            .add("lastLogTerm", lastLogTerm);
     }
 
     @Override
index 08bcaaa5aff121ef9f20843f1e8a595d767c1ec5..c10b25d29a82b00e0ad65151c77baeb55e699148 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.controller.cluster.raft.messages;
 
+import com.google.common.base.MoreObjects.ToStringHelper;
+
 public final class RequestVoteReply extends RaftRPC {
     @java.io.Serial
     private static final long serialVersionUID = 8427899326488775660L;
@@ -24,8 +26,8 @@ public final class RequestVoteReply extends RaftRPC {
     }
 
     @Override
-    public String toString() {
-        return "RequestVoteReply [term=" + getTerm() + ", voteGranted=" + voteGranted + "]";
+    ToStringHelper addToStringAttributes(final ToStringHelper helper) {
+        return super.addToStringAttributes(helper).add("voteGranted", voteGranted);
     }
 
     @Override