Copycat transport enhancements

Change-Id: I50e9eb0f419b2aa10deff6d54f58649688788faa
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/CatalystSerializers.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/CatalystSerializers.java
index 2cecc0f..53f57f1 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/CatalystSerializers.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/CatalystSerializers.java
@@ -15,29 +15,19 @@
  */
 package org.onosproject.store.primitives.impl;
 
-import io.atomix.catalyst.serializer.CatalystSerializable;
+import java.util.Arrays;
+
 import io.atomix.catalyst.serializer.Serializer;
 import io.atomix.catalyst.serializer.TypeSerializerFactory;
 import io.atomix.copycat.client.Query;
-import io.atomix.manager.state.GetResource;
-import io.atomix.manager.state.GetResourceKeys;
-import io.atomix.resource.ResourceQuery;
-import io.atomix.variables.state.ValueCommands;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.Scanner;
 
 import org.onlab.util.Match;
+import org.onosproject.cluster.Leader;
+import org.onosproject.cluster.Leadership;
 import org.onosproject.cluster.NodeId;
 import org.onosproject.event.Change;
 import org.onosproject.store.primitives.MapUpdate;
 import org.onosproject.store.primitives.TransactionId;
-import org.onosproject.store.primitives.resources.impl.AtomixConsistentMapCommands;
-import org.onosproject.store.primitives.resources.impl.AtomixConsistentMapState;
-import org.onosproject.store.primitives.resources.impl.AtomixLeaderElectorCommands;
 import org.onosproject.store.primitives.resources.impl.CommitResult;
 import org.onosproject.store.primitives.resources.impl.MapEntryUpdateResult;
 import org.onosproject.store.primitives.resources.impl.PrepareResult;
@@ -47,7 +37,6 @@
 import org.onosproject.store.service.MapTransaction;
 import org.onosproject.store.service.Versioned;
 
-import com.google.common.base.Throwables;
 import com.google.common.collect.Maps;
 
 /**
@@ -65,113 +54,31 @@
                         org.onosproject.store.service.Serializer.using(Arrays.asList((KryoNamespaces.API)),
                                 MapEntryUpdateResult.class,
                                 MapEntryUpdateResult.Status.class,
-                                MapUpdate.class,
-                                MapUpdate.Type.class,
-                                MapTransaction.class,
                                 Transaction.State.class,
-                                TransactionId.class,
                                 PrepareResult.class,
                                 CommitResult.class,
                                 RollbackResult.class,
-                                AtomixConsistentMapCommands.Get.class,
-                                AtomixConsistentMapCommands.ContainsKey.class,
-                                AtomixConsistentMapCommands.ContainsValue.class,
-                                AtomixConsistentMapCommands.Size.class,
-                                AtomixConsistentMapCommands.IsEmpty.class,
-                                AtomixConsistentMapCommands.KeySet.class,
-                                AtomixConsistentMapCommands.EntrySet.class,
-                                AtomixConsistentMapCommands.Values.class,
-                                AtomixConsistentMapCommands.UpdateAndGet.class,
-                                AtomixConsistentMapCommands.TransactionPrepare.class,
-                                AtomixConsistentMapCommands.TransactionCommit.class,
-                                AtomixConsistentMapCommands.TransactionRollback.class,
-                                AtomixLeaderElectorCommands.GetLeadership.class,
-                                AtomixLeaderElectorCommands.GetAllLeaderships.class,
-                                AtomixLeaderElectorCommands.GetElectedTopics.class,
-                                AtomixLeaderElectorCommands.Run.class,
-                                AtomixLeaderElectorCommands.Withdraw.class,
-                                AtomixLeaderElectorCommands.Anoint.class,
-                                GetResource.class,
-                                GetResourceKeys.class,
-                                ResourceQuery.class,
-                                ValueCommands.Get.class,
-                                ValueCommands.Set.class,
                                 Query.ConsistencyLevel.class));
         // ONOS classes
         serializer.register(Change.class, factory);
+        serializer.register(Leader.class, factory);
+        serializer.register(Leadership.class, factory);
         serializer.register(NodeId.class, factory);
         serializer.register(Match.class, factory);
         serializer.register(MapEntryUpdateResult.class, factory);
         serializer.register(MapEntryUpdateResult.Status.class, factory);
-        serializer.register(MapTransaction.class, factory);
         serializer.register(Transaction.State.class, factory);
         serializer.register(PrepareResult.class, factory);
         serializer.register(CommitResult.class, factory);
         serializer.register(RollbackResult.class, factory);
         serializer.register(TransactionId.class, factory);
         serializer.register(MapUpdate.class, factory);
+        serializer.register(MapUpdate.Type.class, factory);
+        serializer.register(MapTransaction.class, factory);
         serializer.register(Versioned.class, factory);
         serializer.register(MapEvent.class, factory);
         serializer.register(Maps.immutableEntry("a", "b").getClass(), factory);
-        serializer.register(AtomixConsistentMapState.class, factory);
 
-        serializer.register(ResourceQuery.class, factory);
-        serializer.register(GetResource.class, factory);
-        serializer.register(GetResourceKeys.class, factory);
-        serializer.register(ValueCommands.Get.class, factory);
-        serializer.register(ValueCommands.Set.class, factory);
-
-        // ConsistentMap
-        serializer.register(AtomixConsistentMapCommands.UpdateAndGet.class, factory);
-        serializer.register(AtomixConsistentMapCommands.Clear.class);
-        serializer.register(AtomixConsistentMapCommands.Listen.class);
-        serializer.register(AtomixConsistentMapCommands.Unlisten.class);
-        serializer.register(AtomixConsistentMapCommands.Get.class);
-        serializer.register(AtomixConsistentMapCommands.ContainsKey.class);
-        serializer.register(AtomixConsistentMapCommands.ContainsValue.class);
-        serializer.register(AtomixConsistentMapCommands.EntrySet.class);
-        serializer.register(AtomixConsistentMapCommands.IsEmpty.class);
-        serializer.register(AtomixConsistentMapCommands.KeySet.class);
-        serializer.register(AtomixConsistentMapCommands.Size.class);
-        serializer.register(AtomixConsistentMapCommands.Values.class);
-        serializer.register(AtomixConsistentMapCommands.TransactionPrepare.class);
-        serializer.register(AtomixConsistentMapCommands.TransactionCommit.class);
-        serializer.register(AtomixConsistentMapCommands.TransactionRollback.class);
-        // LeaderElector
-        serializer.register(AtomixLeaderElectorCommands.Run.class, factory);
-        serializer.register(AtomixLeaderElectorCommands.Withdraw.class, factory);
-        serializer.register(AtomixLeaderElectorCommands.Anoint.class, factory);
-        serializer.register(AtomixLeaderElectorCommands.GetElectedTopics.class, factory);
-        serializer.register(AtomixLeaderElectorCommands.GetElectedTopics.class, factory);
-        serializer.register(AtomixLeaderElectorCommands.GetLeadership.class, factory);
-        serializer.register(AtomixLeaderElectorCommands.GetAllLeaderships.class, factory);
-        serializer.register(AtomixLeaderElectorCommands.Listen.class);
-        serializer.register(AtomixLeaderElectorCommands.Unlisten.class);
-        // Atomix types
-        try {
-            ClassLoader cl = CatalystSerializable.class.getClassLoader();
-            Enumeration<URL> urls = cl.getResources(
-                    String.format("META-INF/services/%s", CatalystSerializable.class.getName()));
-            while (urls.hasMoreElements()) {
-                URL url = urls.nextElement();
-                try (Scanner scanner = new Scanner(url.openStream(), "UTF-8")) {
-                    scanner.useDelimiter("\n").forEachRemaining(line -> {
-                        if (!line.trim().startsWith("#")) {
-                            line = line.trim();
-                            if (line.length() > 0) {
-                                try {
-                                    serializer.register(cl.loadClass(line));
-                                } catch (ClassNotFoundException e) {
-                                    Throwables.propagate(e);
-                                }
-                            }
-                        }
-                    });
-                }
-            }
-        } catch (IOException e) {
-            Throwables.propagate(e);
-        }
         return serializer;
     }
 }