Kryo related fixes
- KryoNamespace to allow control over registration id
Change-Id: Idc2a0e27a09916657c725ee97e4366109144cc66
diff --git a/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoSerializer.java b/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoSerializer.java
index da37848..4554f8c 100644
--- a/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoSerializer.java
+++ b/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoSerializer.java
@@ -15,10 +15,14 @@
*/
package org.onlab.onos.store.serializers;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.nio.ByteBuffer;
import org.onlab.util.KryoNamespace;
+import com.google.common.base.MoreObjects;
+
/**
* StoreSerializer implementation using Kryo.
*/
@@ -36,8 +40,8 @@
protected void setupKryoPool() {
serializerPool = KryoNamespace.newBuilder()
.register(KryoNamespaces.API)
- .build()
- .populate(1);
+ .nextId(KryoNamespaces.BEGIN_USER_CUSTOM_ID)
+ .build();
}
@Override
@@ -63,4 +67,20 @@
return serializerPool.deserialize(buffer);
}
+ @Override
+ public void encode(Object obj, OutputStream stream) {
+ serializerPool.serialize(obj, stream);
+ }
+
+ @Override
+ public <T> T decode(InputStream stream) {
+ return serializerPool.deserialize(stream);
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(getClass())
+ .add("serializerPool", serializerPool)
+ .toString();
+ }
}