Extract duplicated APP_KRYO variable into extension interface

Change-Id: Ieafbbcfbb3cc1baadea9e79dee79419351992fab
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/ExtensionMappingAddress.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/ExtensionMappingAddress.java
index 79e76b4..ead2785 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/ExtensionMappingAddress.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/ExtensionMappingAddress.java
@@ -15,13 +15,25 @@
  */
 package org.onosproject.mapping.addresses;
 
+import org.onlab.util.KryoNamespace;
 import org.onosproject.net.flow.Extension;
+import org.onosproject.store.serializers.KryoNamespaces;
 
 /**
  * An extension for the mapping address API.
  */
 public interface ExtensionMappingAddress extends Extension {
 
+    KryoNamespace APP_KRYO = new KryoNamespace.Builder()
+                                            .register(KryoNamespaces.API)
+                                            .register(MappingAddress.class)
+                                            .register(MappingAddress.Type.class)
+                                            .register(IPMappingAddress.class)
+                                            .register(ASMappingAddress.class)
+                                            .register(DNMappingAddress.class)
+                                            .register(EthMappingAddress.class)
+                                            .build();
+
     /**
      * Obtains the type of the extension mapping address.
      *
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispAppDataAddress.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispAppDataAddress.java
index 8766aa5..0185b45 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispAppDataAddress.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispAppDataAddress.java
@@ -16,16 +16,10 @@
 package org.onosproject.drivers.lisp.extensions;
 
 import com.google.common.collect.Maps;
-import org.onlab.util.KryoNamespace;
-import org.onosproject.mapping.addresses.ASMappingAddress;
-import org.onosproject.mapping.addresses.DNMappingAddress;
-import org.onosproject.mapping.addresses.EthMappingAddress;
 import org.onosproject.mapping.addresses.ExtensionMappingAddress;
 import org.onosproject.mapping.addresses.ExtensionMappingAddressType;
-import org.onosproject.mapping.addresses.IPMappingAddress;
 import org.onosproject.mapping.addresses.MappingAddress;
 import org.onosproject.net.flow.AbstractExtension;
-import org.onosproject.store.serializers.KryoNamespaces;
 
 import java.util.Map;
 import java.util.Objects;
@@ -58,16 +52,6 @@
     private short remotePortHigh;
     private MappingAddress address;
 
-    private final KryoNamespace appKryo = new KryoNamespace.Builder()
-                                                .register(KryoNamespaces.API)
-                                                .register(MappingAddress.class)
-                                                .register(MappingAddress.Type.class)
-                                                .register(IPMappingAddress.class)
-                                                .register(ASMappingAddress.class)
-                                                .register(DNMappingAddress.class)
-                                                .register(EthMappingAddress.class)
-                                                .build();
-
     /**
      * Default constructor.
      */
@@ -175,12 +159,12 @@
         parameterMap.put(REMOTE_PORT_HIGH, remotePortHigh);
         parameterMap.put(ADDRESS, address);
 
-        return appKryo.serialize(parameterMap);
+        return APP_KRYO.serialize(parameterMap);
     }
 
     @Override
     public void deserialize(byte[] data) {
-        Map<String, Object> parameterMap = appKryo.deserialize(data);
+        Map<String, Object> parameterMap = APP_KRYO.deserialize(data);
 
         this.protocol = (byte) parameterMap.get(PROTOCOL);
         this.ipTos = (int) parameterMap.get(IP_TOS);
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispAsAddress.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispAsAddress.java
index a0480aa..bda95b0 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispAsAddress.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispAsAddress.java
@@ -17,16 +17,10 @@
 package org.onosproject.drivers.lisp.extensions;
 
 import com.google.common.collect.Maps;
-import org.onlab.util.KryoNamespace;
-import org.onosproject.mapping.addresses.ASMappingAddress;
-import org.onosproject.mapping.addresses.DNMappingAddress;
-import org.onosproject.mapping.addresses.EthMappingAddress;
 import org.onosproject.mapping.addresses.ExtensionMappingAddress;
 import org.onosproject.mapping.addresses.ExtensionMappingAddressType;
-import org.onosproject.mapping.addresses.IPMappingAddress;
 import org.onosproject.mapping.addresses.MappingAddress;
 import org.onosproject.net.flow.AbstractExtension;
-import org.onosproject.store.serializers.KryoNamespaces;
 
 import java.util.Map;
 import java.util.Objects;
@@ -49,16 +43,6 @@
     private int asNumber;
     private MappingAddress address;
 
-    private final KryoNamespace appKryo = new KryoNamespace.Builder()
-                                                .register(KryoNamespaces.API)
-                                                .register(MappingAddress.class)
-                                                .register(MappingAddress.Type.class)
-                                                .register(IPMappingAddress.class)
-                                                .register(ASMappingAddress.class)
-                                                .register(DNMappingAddress.class)
-                                                .register(EthMappingAddress.class)
-                                                .build();
-
     /**
      * Default constructor.
      */
@@ -104,12 +88,12 @@
 
         parameterMap.put(AS_NUMBER, asNumber);
         parameterMap.put(ADDRESS, address);
-        return appKryo.serialize(parameterMap);
+        return APP_KRYO.serialize(parameterMap);
     }
 
     @Override
     public void deserialize(byte[] data) {
-        Map<String, Object> parameterMap = appKryo.deserialize(data);
+        Map<String, Object> parameterMap = APP_KRYO.deserialize(data);
 
         this.asNumber = (int) parameterMap.get(AS_NUMBER);
         this.address = (MappingAddress) parameterMap.get(ADDRESS);
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispGcAddress.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispGcAddress.java
index 9920108..2dd275c 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispGcAddress.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispGcAddress.java
@@ -17,16 +17,10 @@
 package org.onosproject.drivers.lisp.extensions;
 
 import com.google.common.collect.Maps;
-import org.onlab.util.KryoNamespace;
-import org.onosproject.mapping.addresses.ASMappingAddress;
-import org.onosproject.mapping.addresses.DNMappingAddress;
-import org.onosproject.mapping.addresses.EthMappingAddress;
 import org.onosproject.mapping.addresses.ExtensionMappingAddress;
 import org.onosproject.mapping.addresses.ExtensionMappingAddressType;
-import org.onosproject.mapping.addresses.IPMappingAddress;
 import org.onosproject.mapping.addresses.MappingAddress;
 import org.onosproject.net.flow.AbstractExtension;
-import org.onosproject.store.serializers.KryoNamespaces;
 
 import java.util.Map;
 import java.util.Objects;
@@ -66,16 +60,6 @@
     private int altitude;
     private MappingAddress address;
 
-    private final KryoNamespace appKryo = new KryoNamespace.Builder()
-                                                .register(KryoNamespaces.API)
-                                                .register(MappingAddress.class)
-                                                .register(MappingAddress.Type.class)
-                                                .register(IPMappingAddress.class)
-                                                .register(ASMappingAddress.class)
-                                                .register(DNMappingAddress.class)
-                                                .register(EthMappingAddress.class)
-                                                .build();
-
     /**
      * Default constructor.
      */
@@ -222,12 +206,12 @@
         parameterMap.put(ALTITUDE, altitude);
         parameterMap.put(ADDRESS, address);
 
-        return appKryo.serialize(parameterMap);
+        return APP_KRYO.serialize(parameterMap);
     }
 
     @Override
     public void deserialize(byte[] data) {
-        Map<String, Object> parameterMap = appKryo.deserialize(data);
+        Map<String, Object> parameterMap = APP_KRYO.deserialize(data);
 
         this.north = (boolean) parameterMap.get(NORTH);
         this.latitudeDegree = (short) parameterMap.get(LATITUDE_DEGREE);
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispListAddress.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispListAddress.java
index bba2c17..4ea8878 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispListAddress.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispListAddress.java
@@ -17,23 +17,17 @@
 package org.onosproject.drivers.lisp.extensions;
 
 import com.google.common.collect.Maps;
-import org.onlab.util.KryoNamespace;
-import org.onosproject.mapping.addresses.ASMappingAddress;
-import org.onosproject.mapping.addresses.DNMappingAddress;
-import org.onosproject.mapping.addresses.EthMappingAddress;
 import org.onosproject.mapping.addresses.ExtensionMappingAddress;
 import org.onosproject.mapping.addresses.ExtensionMappingAddressType;
-import org.onosproject.mapping.addresses.IPMappingAddress;
 import org.onosproject.mapping.addresses.MappingAddress;
 import org.onosproject.net.flow.AbstractExtension;
-import org.onosproject.store.serializers.KryoNamespaces;
 
 import java.util.Map;
 import java.util.Objects;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static org.onosproject.mapping.addresses.ExtensionMappingAddressType
-                                .ExtensionMappingAddressTypes.LIST_ADDRESS;
+                                    .ExtensionMappingAddressTypes.LIST_ADDRESS;
 
 /**
  * Implementation of LISP list address.
@@ -50,16 +44,6 @@
     private MappingAddress ipv4;
     private MappingAddress ipv6;
 
-    private final KryoNamespace appKryo = new KryoNamespace.Builder()
-                                                .register(KryoNamespaces.API)
-                                                .register(MappingAddress.class)
-                                                .register(MappingAddress.Type.class)
-                                                .register(IPMappingAddress.class)
-                                                .register(ASMappingAddress.class)
-                                                .register(DNMappingAddress.class)
-                                                .register(EthMappingAddress.class)
-                                                .build();
-
     /**
      * Default constructor.
      */
@@ -108,13 +92,13 @@
         parameterMap.put(IPV4, ipv4);
         parameterMap.put(IPV6, ipv6);
 
-        return appKryo.serialize(parameterMap);
+        return APP_KRYO.serialize(parameterMap);
     }
 
     @Override
     public void deserialize(byte[] data) {
 
-        Map<String, Object> parameterMap = appKryo.deserialize(data);
+        Map<String, Object> parameterMap = APP_KRYO.deserialize(data);
 
         this.ipv4 = (MappingAddress) parameterMap.get(IPV4);
         this.ipv6 = (MappingAddress) parameterMap.get(IPV6);