ONOS-3658 - Adding CLI commands to display and manage Device Keys.

Change-Id: I98d7d3b7bc9a61f106a6b79b38d7ddaebbfb3288
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/key/DeviceKey.java b/incubator/api/src/main/java/org/onosproject/incubator/net/key/DeviceKey.java
index a9f0f5f..012636d 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/key/DeviceKey.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/key/DeviceKey.java
@@ -40,7 +40,7 @@
     /**
      * type of the device key.
      */
-    enum Type {
+    public enum Type {
         COMMUNITY_NAME, USERNAME_PASSWORD, SSL_KEY
     }
 
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/key/impl/DeviceKeyManager.java b/incubator/net/src/main/java/org/onosproject/incubator/net/key/impl/DeviceKeyManager.java
index 91d1364..d650732 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/key/impl/DeviceKeyManager.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/key/impl/DeviceKeyManager.java
@@ -17,9 +17,11 @@
 package org.onosproject.incubator.net.key.impl;
 
 import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.Service;
 import org.onosproject.event.AbstractListenerManager;
 import org.onosproject.incubator.net.key.DeviceKey;
 import org.onosproject.incubator.net.key.DeviceKeyAdminService;
@@ -42,14 +44,13 @@
 /**
  * Implementation of device key services.
  */
+@Component(immediate = true, enabled = true)
+@Service
 public class DeviceKeyManager extends AbstractListenerManager<DeviceKeyEvent, DeviceKeyListener>
         implements DeviceKeyService, DeviceKeyAdminService {
 
     private final Logger log = getLogger(getClass());
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected DeviceKeyService deviceKeyService;
-
     private DeviceKeyStoreDelegate delegate = this::post;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
diff --git a/incubator/store/src/main/java/org/onosproject/incubator/store/key/impl/DistributedDeviceKeyStore.java b/incubator/store/src/main/java/org/onosproject/incubator/store/key/impl/DistributedDeviceKeyStore.java
index eaaf597..5c865f5 100644
--- a/incubator/store/src/main/java/org/onosproject/incubator/store/key/impl/DistributedDeviceKeyStore.java
+++ b/incubator/store/src/main/java/org/onosproject/incubator/store/key/impl/DistributedDeviceKeyStore.java
@@ -36,6 +36,7 @@
 import org.onosproject.store.service.StorageService;
 import org.slf4j.Logger;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Map;
 
@@ -68,7 +69,10 @@
     @Activate
     public void activate() {
         deviceKeys = storageService.<DeviceKeyId, DeviceKey>consistentMapBuilder()
-                .withSerializer(Serializer.using(KryoNamespaces.API))
+                .withSerializer(Serializer.using(Arrays.asList(KryoNamespaces.API),
+                                DeviceKey.class,
+                                DeviceKeyId.class,
+                                DeviceKey.Type.class))
                 .withName("onos-device-keys")
                 .withRelaxedReadConsistency()
                 .build();