Fix intermittent PreLeaderScenarioTest failure
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / ServerConfigurationPayload.java
index b439cef035a321056d6fa07051d9cc144a0dcdce..865594715d4dc2041859076e36f0722cdf1d61ff 100644 (file)
@@ -8,17 +8,15 @@
 package org.opendaylight.controller.cluster.raft;
 
 import com.google.common.base.Preconditions;
-import com.google.protobuf.GeneratedMessage.GeneratedExtension;
+import com.google.common.collect.Lists;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 import java.util.List;
-import java.util.Map;
 import javax.annotation.Nonnull;
 import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload;
 import org.opendaylight.controller.cluster.raft.protobuff.client.messages.PersistentPayload;
-import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -26,7 +24,10 @@ import org.slf4j.LoggerFactory;
  * Payload data for server configuration log entries.
  *
  * @author Thomas Pantelis
+ *
+ * @deprecated Use {@link org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload} instead.
  */
+@Deprecated
 public class ServerConfigurationPayload extends Payload implements PersistentPayload, Serializable {
     private static final long serialVersionUID = 1L;
 
@@ -46,7 +47,7 @@ public class ServerConfigurationPayload extends Payload implements PersistentPay
 
     @Override
     public int size() {
-        if(serializedSize < 0) {
+        if (serializedSize < 0) {
             try {
                 ByteArrayOutputStream bos = new ByteArrayOutputStream();
                 ObjectOutputStream out = new ObjectOutputStream(bos);
@@ -63,24 +64,17 @@ public class ServerConfigurationPayload extends Payload implements PersistentPay
         return serializedSize;
     }
 
-    @Override
-    @Deprecated
-    @SuppressWarnings("rawtypes")
-    public <T> Map<GeneratedExtension, T> encode() {
-        return null;
-    }
-
-    @Override
-    @Deprecated
-    public Payload decode(AppendEntriesMessages.AppendEntries.ReplicatedLogEntry.Payload payload) {
-        return null;
-    }
-
     @Override
     public String toString() {
         return "ServerConfigurationPayload [serverConfig=" + serverConfig + "]";
     }
 
+    private Object readResolve() {
+        return org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload.createMigrated(
+            Lists.transform(serverConfig, t -> new org.opendaylight.controller.cluster.raft.persisted.ServerInfo(
+                t.getId(), t.isVoting)));
+    }
+
     public static class ServerInfo implements Serializable {
         private static final long serialVersionUID = 1L;
 
@@ -105,7 +99,7 @@ public class ServerConfigurationPayload extends Payload implements PersistentPay
         public int hashCode() {
             final int prime = 31;
             int result = 1;
-            result = prime * result + (isVoting ? 1231 : 1237);
+            result = prime * result + Boolean.hashCode(isVoting);
             result = prime * result + id.hashCode();
             return result;
         }