Kryo related changes.

Change-Id: I5b4fab63d6ece084b65aa712971a22d953d0caf0
diff --git a/core/api/src/main/java/org/onlab/onos/net/DeviceId.java b/core/api/src/main/java/org/onlab/onos/net/DeviceId.java
index ef8c5ab..8d96d8b 100644
--- a/core/api/src/main/java/org/onlab/onos/net/DeviceId.java
+++ b/core/api/src/main/java/org/onlab/onos/net/DeviceId.java
@@ -7,6 +7,9 @@
  */
 public final class DeviceId extends ElementId {
 
+    // Default constructor for serialization
+    protected DeviceId() {}
+
     // Public construction is prohibited
     private DeviceId(URI uri) {
         super(uri);
diff --git a/core/api/src/main/java/org/onlab/onos/net/ElementId.java b/core/api/src/main/java/org/onlab/onos/net/ElementId.java
index e205bb6..a75f11e 100644
--- a/core/api/src/main/java/org/onlab/onos/net/ElementId.java
+++ b/core/api/src/main/java/org/onlab/onos/net/ElementId.java
@@ -10,6 +10,11 @@
 
     private final URI uri;
 
+    // Default constructor for serialization
+    protected ElementId() {
+        this.uri = null;
+    }
+
     /**
      * Creates an element identifier using the supplied URI.
      *
diff --git a/core/api/src/main/java/org/onlab/onos/net/provider/ProviderId.java b/core/api/src/main/java/org/onlab/onos/net/provider/ProviderId.java
index e9af0eb..5fc0150 100644
--- a/core/api/src/main/java/org/onlab/onos/net/provider/ProviderId.java
+++ b/core/api/src/main/java/org/onlab/onos/net/provider/ProviderId.java
@@ -12,6 +12,12 @@
     private final String scheme;
     private final String id;
 
+    // Default constructor for serialization
+    protected ProviderId() {
+        scheme = null;
+        id = null;
+    }
+
     /**
      * Creates a new provider identifier from the specified string.
      * The providers are expected to follow the reverse DNS convention, e.g.