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;
}
}