X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FMockRaftActorContext.java;h=6d4ec22e3d6be213f9a5f09d9b62042b9649d527;hb=88a7f904602133bb803752848bb58c9b0a3e9792;hp=ea4766fda65489a5f3920495fca7bf1384e87884;hpb=534bf6f83465cc8a575b097c1e28fbb1f34d110a;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java index ea4766fda6..6d4ec22e3d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java @@ -8,6 +8,8 @@ package org.opendaylight.controller.cluster.raft; +import static java.util.Objects.requireNonNull; + import akka.actor.ActorRef; import akka.actor.ActorSelection; import akka.actor.ActorSystem; @@ -19,6 +21,7 @@ import java.io.OutputStream; import java.io.Serializable; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.function.Consumer; import org.opendaylight.controller.cluster.DataPersistenceProvider; @@ -56,8 +59,8 @@ public class MockRaftActorContext extends RaftActorContextImpl { @Override public void update(final long newTerm, final String newVotedFor) { - this.currentTerm = newTerm; - this.votedFor = newVotedFor; + currentTerm = newTerm; + votedFor = newVotedFor; // TODO : Write to some persistent state } @@ -109,7 +112,7 @@ public class MockRaftActorContext extends RaftActorContextImpl { } @Override public ActorSystem getActorSystem() { - return this.system; + return system; } @Override public ActorSelection getPeerActorSelection(final String peerId) { @@ -200,21 +203,22 @@ public class MockRaftActorContext extends RaftActorContextImpl { } } - public static class MockPayload extends Payload implements Serializable { + public static final class MockPayload extends Payload { private static final long serialVersionUID = 3121380393130864247L; - private String value = ""; - private int size; + + private final String data; + private final int size; public MockPayload() { + this(""); } public MockPayload(final String data) { - this.value = data; - size = value.length(); + this(data, data.length()); } public MockPayload(final String data, final int size) { - this(data); + this.data = requireNonNull(data); this.size = size; } @@ -223,39 +227,46 @@ public class MockRaftActorContext extends RaftActorContextImpl { return size; } + @Override + public int serializedSize() { + return size; + } + @Override public String toString() { - return value; + return data; } @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (value == null ? 0 : value.hashCode()); - return result; + return data.hashCode(); } @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - MockPayload other = (MockPayload) obj; - if (value == null) { - if (other.value != null) { - return false; - } - } else if (!value.equals(other.value)) { - return false; - } - return true; + return this == obj || obj instanceof MockPayload other && Objects.equals(data, other.data) + && size == other.size; + } + + @Override + protected Object writeReplace() { + return new MockPayloadProxy(data, size); + } + } + + private static final class MockPayloadProxy implements Serializable { + private static final long serialVersionUID = 1L; + + private final String value; + private final int size; + + MockPayloadProxy(String value, int size) { + this.value = value; + this.size = size; + } + + Object readResolve() { + return new MockPayload(value, size); } } @@ -264,19 +275,19 @@ public class MockRaftActorContext extends RaftActorContextImpl { public MockReplicatedLogBuilder createEntries(final int start, final int end, final int term) { for (int i = start; i < end; i++) { - this.mockLog.append(new SimpleReplicatedLogEntry(i, term, + mockLog.append(new SimpleReplicatedLogEntry(i, term, new MockRaftActorContext.MockPayload(Integer.toString(i)))); } return this; } public MockReplicatedLogBuilder addEntry(final int index, final int term, final MockPayload payload) { - this.mockLog.append(new SimpleReplicatedLogEntry(index, term, payload)); + mockLog.append(new SimpleReplicatedLogEntry(index, term, payload)); return this; } public ReplicatedLog build() { - return this.mockLog; + return mockLog; } }