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.protobuff.messages.cluster.raft.AppendEntriesMessages;
+import org.opendaylight.controller.cluster.raft.protobuff.client.messages.PersistentPayload;
import org.slf4j.Logger;
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.
*/
-public class ServerConfigurationPayload extends Payload implements Serializable {
+@Deprecated
+public class ServerConfigurationPayload extends Payload implements PersistentPayload, Serializable {
private static final long serialVersionUID = 1L;
private static final Logger LOG = LoggerFactory.getLogger(ServerConfigurationPayload.class);
@Override
public int size() {
- if(serializedSize < 0) {
+ if (serializedSize < 0) {
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(bos);
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;
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;
}