Support alternative ordering specifications for DocumentTree primitive
Change-Id: I89a99435bff44f8d37d6b529fbf735940e7d7210
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixDocumentTreeService.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixDocumentTreeService.java
index 9ee352c..9e87325 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixDocumentTreeService.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixDocumentTreeService.java
@@ -55,6 +55,7 @@
import org.onosproject.store.service.DocumentTreeEvent.Type;
import org.onosproject.store.service.IllegalDocumentModificationException;
import org.onosproject.store.service.NoSuchDocumentPathException;
+import org.onosproject.store.service.Ordering;
import org.onosproject.store.service.Serializer;
import org.onosproject.store.service.Versioned;
@@ -91,6 +92,7 @@
.register(DocumentPath.class)
.register(new HashMap().keySet().getClass())
.register(TreeMap.class)
+ .register(Ordering.class)
.register(SessionListenCommits.class)
.register(new com.esotericsoftware.kryo.Serializer<DefaultDocumentTree>() {
@Override
@@ -110,7 +112,11 @@
private Map<Long, SessionListenCommits> listeners = new HashMap<>();
private AtomicLong versionCounter = new AtomicLong(0);
- private DocumentTree<byte[]> docTree = new DefaultDocumentTree<>(versionCounter::incrementAndGet);
+ private DocumentTree<byte[]> docTree;
+
+ public AtomixDocumentTreeService(Ordering ordering) {
+ this.docTree = new DefaultDocumentTree<>(versionCounter::incrementAndGet, ordering);
+ }
@Override
public void snapshot(SnapshotWriter writer) {