[ONOS-6527] Support serializing multiple types using the same type ID when a serializer is explicitly provided
Change-Id: I4de04eaaea09eb81e2fe8bd28af934170c88a2d8
diff --git a/core/api/src/main/java/org/onosproject/net/resource/DiscreteResourceId.java b/core/api/src/main/java/org/onosproject/net/resource/DiscreteResourceId.java
index 8e51250..441fe88 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/DiscreteResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/DiscreteResourceId.java
@@ -32,7 +32,7 @@
private final ImmutableList<Object> components;
DiscreteResourceId(ImmutableList<Object> components) {
- this.components = ImmutableList.copyOf(components);
+ this.components = components;
}
DiscreteResourceId() {
diff --git a/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java b/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
index bfe7815..ed1a473 100644
--- a/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
+++ b/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
@@ -127,6 +127,21 @@
public void tearDown() throws Exception {
}
+ private byte[] serialize(Object object) {
+ ByteBuffer buffer = ByteBuffer.allocate(1024);
+ serializer.encode(object, buffer);
+ buffer.flip();
+ byte[] bytes = new byte[buffer.remaining()];
+ buffer.get(bytes);
+ return bytes;
+ }
+
+ private <T> void testBytesEqual(T expected, T actual) {
+ byte[] expectedBytes = serialize(expected);
+ byte[] actualBytes = serialize(actual);
+ assertArrayEquals(expectedBytes, actualBytes);
+ }
+
private <T> void testSerializedEquals(T original) {
ByteBuffer buffer = ByteBuffer.allocate(1 * 1024 * 1024);
serializer.encode(original, buffer);
@@ -196,6 +211,7 @@
@Test
public void testImmutableList() {
+ testBytesEqual(ImmutableList.of(DID1, DID2), ImmutableList.of(DID1, DID2, DID1, DID2).subList(0, 2));
testSerializedEquals(ImmutableList.of(DID1, DID2));
testSerializedEquals(ImmutableList.of(DID1));
testSerializedEquals(ImmutableList.of());