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) {