Replace ECMap with ConsistentMap in UiExtensionManager

Change-Id: Ibe7e98611e755fe4c3123bd7f27cdab79677a761
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
index 3488707..f6ade6f 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
@@ -32,20 +32,20 @@
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
-import org.onlab.util.KryoNamespace;
 import org.onosproject.mastership.MastershipService;
 import org.onosproject.store.serializers.KryoNamespaces;
-import org.onosproject.store.service.EventuallyConsistentMap;
-import org.onosproject.store.service.EventuallyConsistentMapEvent;
-import org.onosproject.store.service.EventuallyConsistentMapListener;
+import org.onosproject.store.service.ConsistentMap;
+import org.onosproject.store.service.MapEvent;
+import org.onosproject.store.service.MapEventListener;
+import org.onosproject.store.service.Serializer;
 import org.onosproject.store.service.StorageService;
-import org.onosproject.store.service.WallClockTimestamp;
 import org.onosproject.ui.UiExtension;
 import org.onosproject.ui.UiExtensionService;
 import org.onosproject.ui.UiMessageHandlerFactory;
@@ -79,7 +79,7 @@
 
     private static final ClassLoader CL = UiExtensionManager.class.getClassLoader();
 
-    private static final String ONOS_USER_PREFERENCES = "onos-user-preferences";
+    private static final String ONOS_USER_PREFERENCES = "onos-ui-user-preferences";
     private static final String CORE = "core";
     private static final String GUI_ADDED = "guiAdded";
     private static final String GUI_REMOVED = "guiRemoved";
@@ -107,8 +107,9 @@
     protected StorageService storageService;
 
     // User preferences
-    private EventuallyConsistentMap<String, ObjectNode> prefs;
-    private final EventuallyConsistentMapListener<String, ObjectNode> prefsListener =
+    private ConsistentMap<String, ObjectNode> prefsConsistentMap;
+    private Map<String, ObjectNode> prefs;
+    private final MapEventListener<String, ObjectNode> prefsListener =
             new InternalPrefsListener();
 
     private final ObjectMapper mapper = new ObjectMapper();
@@ -167,28 +168,27 @@
 
     @Activate
     public void activate() {
-        KryoNamespace.Builder kryoBuilder = new KryoNamespace.Builder()
-                .register(KryoNamespaces.API)
-                .register(ObjectNode.class, ArrayNode.class,
+        Serializer serializer = Serializer.using(KryoNamespaces.API,
+                        ObjectNode.class, ArrayNode.class,
                         JsonNodeFactory.class, LinkedHashMap.class,
                         TextNode.class, BooleanNode.class,
                         LongNode.class, DoubleNode.class, ShortNode.class,
                         IntNode.class, NullNode.class);
 
-        prefs = storageService.<String, ObjectNode>eventuallyConsistentMapBuilder()
+        prefsConsistentMap = storageService.<String, ObjectNode>consistentMapBuilder()
                 .withName(ONOS_USER_PREFERENCES)
-                .withSerializer(kryoBuilder)
-                .withTimestampProvider((k, v) -> new WallClockTimestamp())
-                .withPersistence()
+                .withSerializer(serializer)
+                .withRelaxedReadConsistency()
                 .build();
-        prefs.addListener(prefsListener);
+        prefsConsistentMap.addListener(prefsListener);
+        prefs = prefsConsistentMap.asJavaMap();
         register(core);
         log.info("Started");
     }
 
     @Deactivate
     public void deactivate() {
-        prefs.removeListener(prefsListener);
+        prefsConsistentMap.removeListener(prefsListener);
         UiWebSocketServlet.closeAll();
         unregister(core);
         log.info("Stopped");
@@ -283,11 +283,11 @@
 
     // Auxiliary listener to preference map events.
     private class InternalPrefsListener
-            implements EventuallyConsistentMapListener<String, ObjectNode> {
+            implements MapEventListener<String, ObjectNode> {
         @Override
-        public void event(EventuallyConsistentMapEvent<String, ObjectNode> event) {
+        public void event(MapEvent<String, ObjectNode> event) {
             String userName = userName(event.key());
-            if (event.type() == EventuallyConsistentMapEvent.Type.PUT) {
+            if (event.type() == MapEvent.Type.INSERT || event.type() == MapEvent.Type.UPDATE) {
                 UiWebSocketServlet.sendToUser(userName, UPDATE_PREFS, jsonPrefs());
             }
         }