[ONOS-7213] Add serializer for cluster metadata Partitions.
Change-Id: I9344288b881f9e50feb8901f560e1a0a4b53392d
diff --git a/core/net/src/main/java/org/onosproject/cluster/impl/ConfigFileBasedClusterMetadataProvider.java b/core/net/src/main/java/org/onosproject/cluster/impl/ConfigFileBasedClusterMetadataProvider.java
index 14b97aa..3414033 100644
--- a/core/net/src/main/java/org/onosproject/cluster/impl/ConfigFileBasedClusterMetadataProvider.java
+++ b/core/net/src/main/java/org/onosproject/cluster/impl/ConfigFileBasedClusterMetadataProvider.java
@@ -102,6 +102,7 @@
module.addDeserializer(NodeId.class, new NodeIdDeserializer());
module.addSerializer(ControllerNode.class, new ControllerNodeSerializer());
module.addDeserializer(ControllerNode.class, new ControllerNodeDeserializer());
+ module.addSerializer(Partition.class, new PartitionSerializer());
module.addDeserializer(Partition.class, new PartitionDeserializer());
module.addSerializer(PartitionId.class, new PartitionIdSerializer());
module.addDeserializer(PartitionId.class, new PartitionIdDeserializer());
@@ -248,6 +249,21 @@
}
}
+ private static class PartitionSerializer extends JsonSerializer<Partition> {
+ @Override
+ public void serialize(Partition partition, JsonGenerator jgen, SerializerProvider serializerProvider)
+ throws IOException, JsonProcessingException {
+ jgen.writeStartObject();
+ jgen.writeNumberField("id", partition.getId().asInt());
+ jgen.writeArrayFieldStart("members");
+ for (NodeId nodeId : partition.getMembers()) {
+ jgen.writeString(nodeId.id());
+ }
+ jgen.writeEndArray();
+ jgen.writeEndObject();
+ }
+ }
+
private static class PartitionDeserializer extends JsonDeserializer<Partition> {
@Override
public Partition deserialize(JsonParser jp, DeserializationContext ctxt)