Yuta HIGUCHI

switch to ImmutableList

Change-Id: Ia5f8936d0aaf447253f5dde0db1ee688441d2472
1 package org.onlab.onos.cluster; 1 package org.onlab.onos.cluster;
2 2
3 -import java.util.Collections;
4 import java.util.List; 3 import java.util.List;
5 import java.util.Objects; 4 import java.util.Objects;
6 5
6 +import com.google.common.collect.ImmutableList;
7 +
7 /** 8 /**
8 * A container for detailed role information for a device, 9 * A container for detailed role information for a device,
9 * within the current cluster. Role attributes include current 10 * within the current cluster. Role attributes include current
...@@ -15,7 +16,7 @@ public class RoleInfo { ...@@ -15,7 +16,7 @@ public class RoleInfo {
15 16
16 public RoleInfo(NodeId master, List<NodeId> backups) { 17 public RoleInfo(NodeId master, List<NodeId> backups) {
17 this.master = master; 18 this.master = master;
18 - this.backups = Collections.unmodifiableList(backups); 19 + this.backups = ImmutableList.copyOf(backups);
19 } 20 }
20 21
21 public NodeId master() { 22 public NodeId master() {
......
...@@ -8,6 +8,7 @@ import java.util.HashMap; ...@@ -8,6 +8,7 @@ import java.util.HashMap;
8 import org.onlab.onos.cluster.ControllerNode; 8 import org.onlab.onos.cluster.ControllerNode;
9 import org.onlab.onos.cluster.DefaultControllerNode; 9 import org.onlab.onos.cluster.DefaultControllerNode;
10 import org.onlab.onos.cluster.NodeId; 10 import org.onlab.onos.cluster.NodeId;
11 +import org.onlab.onos.cluster.RoleInfo;
11 import org.onlab.onos.mastership.MastershipTerm; 12 import org.onlab.onos.mastership.MastershipTerm;
12 import org.onlab.onos.net.ConnectPoint; 13 import org.onlab.onos.net.ConnectPoint;
13 import org.onlab.onos.net.DefaultAnnotations; 14 import org.onlab.onos.net.DefaultAnnotations;
...@@ -107,7 +108,8 @@ public final class KryoNamespaces { ...@@ -107,7 +108,8 @@ public final class KryoNamespaces {
107 Criterion.Type.class, 108 Criterion.Type.class,
108 DefaultTrafficTreatment.class, 109 DefaultTrafficTreatment.class,
109 Instructions.DropInstruction.class, 110 Instructions.DropInstruction.class,
110 - Instructions.OutputInstruction.class 111 + Instructions.OutputInstruction.class,
112 + RoleInfo.class
111 ) 113 )
112 .register(URI.class, new URISerializer()) 114 .register(URI.class, new URISerializer())
113 .register(NodeId.class, new NodeIdSerializer()) 115 .register(NodeId.class, new NodeIdSerializer())
......
...@@ -3,6 +3,7 @@ package org.onlab.onos.store.serializers; ...@@ -3,6 +3,7 @@ package org.onlab.onos.store.serializers;
3 import static org.junit.Assert.assertEquals; 3 import static org.junit.Assert.assertEquals;
4 import static org.onlab.onos.net.DeviceId.deviceId; 4 import static org.onlab.onos.net.DeviceId.deviceId;
5 import static org.onlab.onos.net.PortNumber.portNumber; 5 import static org.onlab.onos.net.PortNumber.portNumber;
6 +import static java.util.Arrays.asList;
6 7
7 import java.nio.ByteBuffer; 8 import java.nio.ByteBuffer;
8 9
...@@ -11,6 +12,7 @@ import org.junit.Before; ...@@ -11,6 +12,7 @@ import org.junit.Before;
11 import org.junit.BeforeClass; 12 import org.junit.BeforeClass;
12 import org.junit.Test; 13 import org.junit.Test;
13 import org.onlab.onos.cluster.NodeId; 14 import org.onlab.onos.cluster.NodeId;
15 +import org.onlab.onos.cluster.RoleInfo;
14 import org.onlab.onos.mastership.MastershipTerm; 16 import org.onlab.onos.mastership.MastershipTerm;
15 import org.onlab.onos.net.Annotations; 17 import org.onlab.onos.net.Annotations;
16 import org.onlab.onos.net.ConnectPoint; 18 import org.onlab.onos.net.ConnectPoint;
...@@ -198,6 +200,12 @@ public class KryoSerializerTest { ...@@ -198,6 +200,12 @@ public class KryoSerializerTest {
198 } 200 }
199 201
200 @Test 202 @Test
203 + public void testRoleInfo() {
204 + testSerialized(new RoleInfo(new NodeId("master"),
205 + asList(new NodeId("stby1"), new NodeId("stby2"))));
206 + }
207 +
208 + @Test
201 public void testAnnotations() { 209 public void testAnnotations() {
202 // Annotations does not have equals defined, manually test equality 210 // Annotations does not have equals defined, manually test equality
203 final byte[] a1Bytes = serializer.encode(A1); 211 final byte[] a1Bytes = serializer.encode(A1);
......