Make Netty-3 dependency optional
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / messages / AE.java
index 402cb72df6a573a605d3cc124de9d97aec29ce94..491ca3fb0acd8e547ea646eb6ba206e565a7800f 100644 (file)
@@ -10,11 +10,11 @@ package org.opendaylight.controller.cluster.raft.messages;
 import static com.google.common.base.Verify.verifyNotNull;
 import static java.util.Objects.requireNonNull;
 
+import com.google.common.collect.ImmutableList;
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
-import java.util.ArrayList;
 import org.opendaylight.controller.cluster.raft.RaftVersions;
 import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry;
 import org.opendaylight.controller.cluster.raft.persisted.SimpleReplicatedLogEntry;
@@ -56,7 +56,7 @@ final class AE implements Externalizable {
             out.writeObject(e.getData());
         }
 
-        out.writeObject(appendEntries.getLeaderAddress().orElse(null));
+        out.writeObject(appendEntries.leaderAddress());
     }
 
     @Override
@@ -75,7 +75,7 @@ final class AE implements Externalizable {
         short payloadVersion = in.readShort();
 
         int size = in.readInt();
-        var entries = new ArrayList<ReplicatedLogEntry>(size);
+        var entries = ImmutableList.<ReplicatedLogEntry>builderWithExpectedSize(size);
         for (int i = 0; i < size; i++) {
             hdr = WritableObjects.readLongHeader(in);
             entries.add(new SimpleReplicatedLogEntry(WritableObjects.readFirstLong(in, hdr),
@@ -84,7 +84,7 @@ final class AE implements Externalizable {
 
         String leaderAddress = (String)in.readObject();
 
-        appendEntries = new AppendEntries(term, leaderId, prevLogIndex, prevLogTerm, entries, leaderCommit,
+        appendEntries = new AppendEntries(term, leaderId, prevLogIndex, prevLogTerm, entries.build(), leaderCommit,
                 replicatedToAllIndex, payloadVersion, RaftVersions.CURRENT_VERSION, leaderRaftVersion,
                 leaderAddress);
     }