Deprecate KryoSerializer.

Change-Id: I2403b95c2d7a8af69dff55a0e40a35b223127c85
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/StoreSerializer.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/StoreSerializer.java
index e605791..af09b31 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/StoreSerializer.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/StoreSerializer.java
@@ -19,7 +19,8 @@
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
 
-// TODO: To be replaced with SerializationService from IOLoop activity
+import org.onlab.util.KryoNamespace;
+
 /**
  * Service to serialize Objects into byte array.
  */
@@ -84,4 +85,50 @@
      * @param <T> object type
      */
     <T> T copy(final T object);
+
+    /**
+     * Creates a new StoreSerializer instance from a KryoNamespace.
+     *
+     * @param ns kryo namespace
+     * @return StoreSerializer instance
+     */
+    static StoreSerializer using(KryoNamespace ns) {
+        return new StoreSerializer() {
+
+            @Override
+            public void encode(Object obj, OutputStream stream) {
+                ns.serialize(obj, stream);
+            }
+
+            @Override
+            public void encode(Object obj, ByteBuffer buffer) {
+                ns.serialize(obj, buffer);
+            }
+
+            @Override
+            public byte[] encode(Object obj) {
+                return ns.serialize(obj);
+            }
+
+            @Override
+            public <T> T decode(InputStream stream) {
+                return ns.deserialize(stream);
+            }
+
+            @Override
+            public <T> T decode(ByteBuffer buffer) {
+                return ns.deserialize(buffer);
+            }
+
+            @Override
+            public <T> T decode(byte[] bytes) {
+                return ns.deserialize(bytes);
+            }
+
+            @Override
+            public <T> T copy(T object) {
+                return ns.run(kryo -> kryo.copy(object));
+            }
+        };
+    }
 }