Merge remote-tracking branch 'origin/master'
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/constraint/BandwidthConstraint.java b/core/api/src/main/java/org/onlab/onos/net/intent/constraint/BandwidthConstraint.java
index 44d6875..fc08214 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/constraint/BandwidthConstraint.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/constraint/BandwidthConstraint.java
@@ -43,6 +43,11 @@
         this.bandwidth = checkNotNull(bandwidth, "Bandwidth cannot be null");
     }
 
+    // Constructor for serialization
+    private BandwidthConstraint() {
+        this.bandwidth = null;
+    }
+
     @Override
     public boolean isValid(Link link, LinkResourceService resourceService) {
         for (ResourceRequest request : resourceService.getAvailableResources(link)) {
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/constraint/LambdaConstraint.java b/core/api/src/main/java/org/onlab/onos/net/intent/constraint/LambdaConstraint.java
index d1d33d6..ab88c92 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/constraint/LambdaConstraint.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/constraint/LambdaConstraint.java
@@ -41,6 +41,11 @@
         this.lambda = lambda;
     }
 
+    // Constructor for serialization
+    private LambdaConstraint() {
+        this.lambda = null;
+    }
+
     @Override
     public boolean isValid(Link link, LinkResourceService resourceService) {
         for (ResourceRequest request : resourceService.getAvailableResources(link)) {
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/constraint/LinkTypeConstraint.java b/core/api/src/main/java/org/onlab/onos/net/intent/constraint/LinkTypeConstraint.java
index 5640591..7d44b4d 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/constraint/LinkTypeConstraint.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/constraint/LinkTypeConstraint.java
@@ -49,6 +49,12 @@
         this.isInclusive = inclusive;
     }
 
+    // Constructor for serialization
+    private LinkTypeConstraint() {
+        this.types = null;
+        this.isInclusive = false;
+    }
+
     @Override
     public boolean isValid(Link link, LinkResourceService resourceService) {
         boolean contains = types.contains(link.type());
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/constraint/package-info.java b/core/api/src/main/java/org/onlab/onos/net/intent/constraint/package-info.java
new file mode 100644
index 0000000..762d6d1
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/constraint/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2014 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Definitions of constraints used to refine intent specifications.
+ */
+package org.onlab.onos.net.intent.constraint;
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/Bandwidth.java b/core/api/src/main/java/org/onlab/onos/net/resource/Bandwidth.java
index 9dddb86..fcb3cd8 100644
--- a/core/api/src/main/java/org/onlab/onos/net/resource/Bandwidth.java
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/Bandwidth.java
@@ -33,6 +33,11 @@
         this.bandwidth = bandwidth;
     }
 
+    // Constructor for serialization
+    private Bandwidth() {
+        this.bandwidth = 0;
+    }
+
     /**
      * Creates a new instance with given bandwidth.
      *
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/Lambda.java b/core/api/src/main/java/org/onlab/onos/net/resource/Lambda.java
index e09d915..d179d64 100644
--- a/core/api/src/main/java/org/onlab/onos/net/resource/Lambda.java
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/Lambda.java
@@ -33,6 +33,11 @@
         this.lambda = lambda;
     }
 
+    // Constructor for serialization
+    private Lambda() {
+        this.lambda = 0;
+    }
+
     /**
      * Creates a new instance with given lambda.
      *
diff --git a/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoNamespaces.java
index 2a4c10c..80db22e 100644
--- a/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/KryoNamespaces.java
@@ -75,9 +75,15 @@
 import org.onlab.onos.net.intent.OpticalPathIntent;
 import org.onlab.onos.net.intent.PathIntent;
 import org.onlab.onos.net.intent.PointToPointIntent;
+import org.onlab.onos.net.intent.constraint.BandwidthConstraint;
+import org.onlab.onos.net.intent.constraint.BooleanConstraint;
+import org.onlab.onos.net.intent.constraint.LambdaConstraint;
+import org.onlab.onos.net.intent.constraint.LinkTypeConstraint;
 import org.onlab.onos.net.link.DefaultLinkDescription;
 import org.onlab.onos.net.packet.DefaultOutboundPacket;
 import org.onlab.onos.net.provider.ProviderId;
+import org.onlab.onos.net.resource.Bandwidth;
+import org.onlab.onos.net.resource.Lambda;
 import org.onlab.onos.net.resource.LinkResourceRequest;
 import org.onlab.onos.store.Timestamp;
 import org.onlab.packet.ChassisId;
@@ -188,7 +194,13 @@
                     LinkCollectionIntent.class,
                     OpticalConnectivityIntent.class,
                     OpticalPathIntent.class,
-                    LinkResourceRequest.class
+                    LinkResourceRequest.class,
+                    Lambda.class,
+                    Bandwidth.class,
+                    LambdaConstraint.class,
+                    BandwidthConstraint.class,
+                    LinkTypeConstraint.class,
+                    BooleanConstraint.class
                     )
             .register(DefaultApplicationId.class, new DefaultApplicationIdSerializer())
             .register(URI.class, new URISerializer())