Modified GossipIntentStore to use EventuallyConsistentMaps.

All IntentStore operations are now implemented.

ONOS-858

Change-Id: I5081805b61c7e25e28707b90093cae12b5a4374b
diff --git a/core/store/dist/src/main/java/org/onosproject/store/impl/EventuallyConsistentMapImpl.java b/core/store/dist/src/main/java/org/onosproject/store/impl/EventuallyConsistentMapImpl.java
index 19786f8..0acef1a 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/impl/EventuallyConsistentMapImpl.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/impl/EventuallyConsistentMapImpl.java
@@ -78,7 +78,7 @@
     private final ScheduledExecutorService backgroundExecutor;
 
     private volatile boolean destroyed = false;
-    private static final String ERROR_DESTROYED = " is already destroyed";
+    private static final String ERROR_DESTROYED = " map is already destroyed";
 
     // TODO: Make these anti-entropy params configurable
     private long initialDelaySec = 5;
@@ -154,6 +154,7 @@
                 serializerPool = builder
                         .register(WallClockTimestamp.class)
                         .register(PutEntry.class)
+                        .register(RemoveEntry.class)
                         .register(ArrayList.class)
                         .register(InternalPutEvent.class)
                         .register(InternalRemoveEvent.class)
@@ -166,25 +167,25 @@
 
     @Override
     public int size() {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
         return items.size();
     }
 
     @Override
     public boolean isEmpty() {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
         return items.isEmpty();
     }
 
     @Override
     public boolean containsKey(K key) {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
         return items.containsKey(key);
     }
 
     @Override
     public boolean containsValue(V value) {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         return items.values().stream()
                 .anyMatch(timestamped -> timestamped.value().equals(value));
@@ -192,7 +193,7 @@
 
     @Override
     public V get(K key) {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         Timestamped<V> value = items.get(key);
         if (value != null) {
@@ -203,7 +204,7 @@
 
     @Override
     public void put(K key, V value) {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         Timestamp timestamp = clockService.getTimestamp(key);
         if (putInternal(key, value, timestamp)) {
@@ -235,7 +236,7 @@
 
     @Override
     public void remove(K key) {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         Timestamp timestamp = clockService.getTimestamp(key);
         if (removeInternal(key, timestamp)) {
@@ -261,7 +262,7 @@
 
     @Override
     public void putAll(Map<? extends K, ? extends V> m) {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         List<PutEntry<K, V>> updates = new ArrayList<>(m.size());
 
@@ -287,7 +288,7 @@
 
     @Override
     public void clear() {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         List<RemoveEntry<K>> removed = new ArrayList<>(items.size());
 
@@ -311,14 +312,14 @@
 
     @Override
     public Set<K> keySet() {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         return items.keySet();
     }
 
     @Override
     public Collection<V> values() {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         return items.values().stream()
                 .map(Timestamped::value)
@@ -327,7 +328,7 @@
 
     @Override
     public Set<Map.Entry<K, V>> entrySet() {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         return items.entrySet().stream()
                 .map(e -> new Entry(e.getKey(), e.getValue().value()))
@@ -335,15 +336,15 @@
     }
 
     @Override
-    public void addListener(EventuallyConsistentMapListener listener) {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+    public void addListener(EventuallyConsistentMapListener<K, V> listener) {
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         listeners.add(checkNotNull(listener));
     }
 
     @Override
-    public void removeListener(EventuallyConsistentMapListener listener) {
-        checkState(destroyed, mapName + ERROR_DESTROYED);
+    public void removeListener(EventuallyConsistentMapListener<K, V> listener) {
+        checkState(!destroyed, mapName + ERROR_DESTROYED);
 
         listeners.remove(checkNotNull(listener));
     }