diff --git a/build.xml b/build.xml
index 0a3eb4bcdf095b74b5a1eb32ba8d19bbc63b33c9..7cd9d049cb73e2cc5cf5350c1578c43ffec48f8f 100644
--- a/build.xml
+++ b/build.xml
@@ -53,8 +53,10 @@
     <patternset id="lib">
         <include name="logback-classic-1.0.0.jar"/>
         <include name="logback-core-1.0.0.jar"/>
-        <include name="jackson-core-asl-1.8.6.jar"/>
-        <include name="jackson-mapper-asl-1.8.6.jar"/>
+        <include name="jackson-core-2.1.4.jar"/>
+        <include name="jackson-annotations-2.1.4.jar"/>
+        <include name="jackson-databind-2.1.4.jar"/>
+        <include name="jackson-dataformat-smile-2.1.4.jar"/>
         <include name="slf4j-api-1.6.4.jar"/>
         <include name="org.restlet-2.1-RC1.jar"/>
         <include name="org.restlet.ext.jackson-2.1-RC1.jar"/>
diff --git a/lib/jackson-annotations-2.1.4.jar b/lib/jackson-annotations-2.1.4.jar
new file mode 100644
index 0000000000000000000000000000000000000000..143edf44b0daa4cef1a452ecccac21aee22a8d77
Binary files /dev/null and b/lib/jackson-annotations-2.1.4.jar differ
diff --git a/lib/jackson-core-2.1.4.jar b/lib/jackson-core-2.1.4.jar
new file mode 100644
index 0000000000000000000000000000000000000000..0f144685f7140d2694eeba5609322b4cd79f0bf8
Binary files /dev/null and b/lib/jackson-core-2.1.4.jar differ
diff --git a/lib/jackson-core-asl-1.8.6.jar b/lib/jackson-core-asl-1.8.6.jar
deleted file mode 100644
index fe6c6606fe88b7eecd3568674f2cbf7ffb7eacc2..0000000000000000000000000000000000000000
Binary files a/lib/jackson-core-asl-1.8.6.jar and /dev/null differ
diff --git a/lib/jackson-databind-2.1.4.jar b/lib/jackson-databind-2.1.4.jar
new file mode 100644
index 0000000000000000000000000000000000000000..ce125d1df292a1d8fa4b86cf39770d0d9c4636cc
Binary files /dev/null and b/lib/jackson-databind-2.1.4.jar differ
diff --git a/lib/jackson-dataformat-smile-2.1.4.jar b/lib/jackson-dataformat-smile-2.1.4.jar
new file mode 100644
index 0000000000000000000000000000000000000000..e907c7726c5679a572e098293581bba28ac63fa1
Binary files /dev/null and b/lib/jackson-dataformat-smile-2.1.4.jar differ
diff --git a/lib/jackson-mapper-asl-1.8.6.jar b/lib/jackson-mapper-asl-1.8.6.jar
deleted file mode 100644
index f3dd1a6ba56faf5dabd6bcfda96eb7f00d4557be..0000000000000000000000000000000000000000
Binary files a/lib/jackson-mapper-asl-1.8.6.jar and /dev/null differ
diff --git a/src/main/java/net/floodlightcontroller/core/OFSwitchBase.java b/src/main/java/net/floodlightcontroller/core/OFSwitchBase.java
index 65265ca0caae46d6424d5bc1974ea030c1d8459d..8e9f8ebee5b6ff8b2a70f7d361f7070612f76d46 100644
--- a/src/main/java/net/floodlightcontroller/core/OFSwitchBase.java
+++ b/src/main/java/net/floodlightcontroller/core/OFSwitchBase.java
@@ -43,10 +43,10 @@ import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 import net.floodlightcontroller.threadpool.IThreadPoolService;
 import net.floodlightcontroller.util.TimedCache;
 
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.ser.ToStringSerializer;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import org.jboss.netty.channel.Channel;
 import org.openflow.protocol.OFBarrierRequest;
 import org.openflow.protocol.OFFeaturesReply;
diff --git a/src/main/java/net/floodlightcontroller/core/RoleInfo.java b/src/main/java/net/floodlightcontroller/core/RoleInfo.java
index 26c1a510bd556e5cedb5eb0b91f45e45ebe0e456..09ac98b1fb3d4c0b116fa1e6b5a692cf09df22a8 100644
--- a/src/main/java/net/floodlightcontroller/core/RoleInfo.java
+++ b/src/main/java/net/floodlightcontroller/core/RoleInfo.java
@@ -22,7 +22,7 @@ import java.util.TimeZone;
 
 import net.floodlightcontroller.core.IFloodlightProviderService.Role;
 
-import org.codehaus.jackson.annotate.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
 
 public class RoleInfo {
diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
index a3809a1b80e7cfbc6b1e2f86d880ff95e3a37a35..d924ce255353a5e67ccfefa9fa933c3c35d15cab 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
@@ -19,7 +19,7 @@ package net.floodlightcontroller.core.internal;
 
 import java.util.List;
 
-import org.codehaus.jackson.annotate.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.openflow.protocol.statistics.OFDescriptionStatistics;
 
 import net.floodlightcontroller.core.OFSwitchBase;
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/ByteArrayMACSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/ByteArrayMACSerializer.java
index 66c33f55bfbf5262049c9cf60c2c730fcd69a04a..ce4d3ba3c51480ad3ab3b488c398727efb6d85b4 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/ByteArrayMACSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/ByteArrayMACSerializer.java
@@ -19,10 +19,10 @@ package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 import org.openflow.util.HexString;
 
 /**
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/DPIDSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/DPIDSerializer.java
index e74cc01c1001d576148c0adc80eacf8e6547451c..6df067ead245a209b12ce20347c237913a8f7b29 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/DPIDSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/DPIDSerializer.java
@@ -19,10 +19,10 @@ package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 import org.openflow.util.HexString;
 
 /**
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/IPv4Serializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/IPv4Serializer.java
index f4a58778656144be714ad25e4a11e7697e39bd62..db93b66ac46af312c37f59c36febe4357389e188 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/IPv4Serializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/IPv4Serializer.java
@@ -21,10 +21,10 @@ import java.io.IOException;
 
 import net.floodlightcontroller.packet.IPv4;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 
 /**
  * Serialize an integer as an IPv4 Address in dotted decimal format
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/MACSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/MACSerializer.java
index a7c9fb7d909438326d767f445d7c4e4c7df641ed..c797681edf2e8779365293188e89f51b9b4c30a1 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/MACSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/MACSerializer.java
@@ -19,10 +19,10 @@ package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 import org.openflow.util.HexString;
 
 /**
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/UShortSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/UShortSerializer.java
index c125c76fc6138924f4ac04ceb918ca7dcbe80d90..c5f1fa9a1ec6d39b0ce35ef777fc6a1d80a80771 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/UShortSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/UShortSerializer.java
@@ -19,10 +19,10 @@ package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 
 /**
  * Serialize a short value as an unsigned short
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/SwitchPort.java b/src/main/java/net/floodlightcontroller/devicemanager/SwitchPort.java
index 742616371e09fe8031cbd819ec873bff8d22aa79..d4ee9459ee59ae67b1e2c26069d06e2ee2c0a74f 100644
--- a/src/main/java/net/floodlightcontroller/devicemanager/SwitchPort.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/SwitchPort.java
@@ -19,8 +19,8 @@ package net.floodlightcontroller.devicemanager;
 
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.ser.ToStringSerializer;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 
 /**
  * A simple switch DPID/port pair
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
index ebdc8b11ff4061a283af39559c11c0f273512e04..e7e103221916291f3eb7420d47efd2c8e8886523 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
@@ -29,7 +29,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.TreeSet;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.openflow.util.HexString;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java
index 5949a19e22d40542b83eef1660478a4655f8cce8..db8d8e9fb3ff92256e0e9db55751e9345e6765fa 100644
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java
@@ -24,8 +24,8 @@ import net.floodlightcontroller.core.web.serializers.MACSerializer;
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 import net.floodlightcontroller.packet.IPv4;
 
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.openflow.util.HexString;
 
 /**
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceSerializer.java b/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceSerializer.java
index e946d7b8aa7674ad598ba022e75e556ca9780297..26b2027aaa34ece55d1541a3f60bb058d27e74e3 100644
--- a/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceSerializer.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/web/DeviceSerializer.java
@@ -23,10 +23,10 @@ import net.floodlightcontroller.devicemanager.SwitchPort;
 import net.floodlightcontroller.devicemanager.internal.Device;
 import net.floodlightcontroller.packet.IPv4;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 import org.openflow.util.HexString;
 
 /**
diff --git a/src/main/java/net/floodlightcontroller/firewall/FirewallResource.java b/src/main/java/net/floodlightcontroller/firewall/FirewallResource.java
index 34a7771672c0f6dda39726d13e6022c4edfa3041..2f731db49e1911849745b43982ee9d74edba91d2 100644
--- a/src/main/java/net/floodlightcontroller/firewall/FirewallResource.java
+++ b/src/main/java/net/floodlightcontroller/firewall/FirewallResource.java
@@ -19,10 +19,10 @@ package net.floodlightcontroller.firewall;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
 import org.restlet.resource.Post;
 import org.restlet.resource.Get;
 import org.restlet.resource.ServerResource;
diff --git a/src/main/java/net/floodlightcontroller/firewall/FirewallRule.java b/src/main/java/net/floodlightcontroller/firewall/FirewallRule.java
index 1b187f310901b521ba7897d25917e36f7359f357..f457ce8d9e85510f91fdefe2bb2f3ac84276eec4 100644
--- a/src/main/java/net/floodlightcontroller/firewall/FirewallRule.java
+++ b/src/main/java/net/floodlightcontroller/firewall/FirewallRule.java
@@ -17,7 +17,7 @@
 
 package net.floodlightcontroller.firewall;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.openflow.protocol.OFMatch;
 
 import net.floodlightcontroller.packet.Ethernet;
diff --git a/src/main/java/net/floodlightcontroller/firewall/FirewallRuleSerializer.java b/src/main/java/net/floodlightcontroller/firewall/FirewallRuleSerializer.java
index b8fa6322e87e05618b739efc592339fa9a93b5f7..3180968d1dd1786ef183933bc8584a5b896b123d 100644
--- a/src/main/java/net/floodlightcontroller/firewall/FirewallRuleSerializer.java
+++ b/src/main/java/net/floodlightcontroller/firewall/FirewallRuleSerializer.java
@@ -22,10 +22,10 @@ import java.io.IOException;
 import net.floodlightcontroller.packet.IPv4;
 import net.floodlightcontroller.util.MACAddress;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 import org.openflow.util.HexString;
 
 /**
diff --git a/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java b/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
index 66d9dce6248cf42bde73992c83b629e679789abe..b72f983dd3edafe2a92521f7cdd35afd5494e990 100644
--- a/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
+++ b/src/main/java/net/floodlightcontroller/firewall/FirewallRulesResource.java
@@ -21,10 +21,10 @@ import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
 import org.openflow.util.HexString;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Post;
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
index 1e24d804e612e416e11111bc42de9ef34518a88b..06cde9161c46edca73b5fa42e2b1a9ddd9b99aa8 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
@@ -16,8 +16,8 @@
 
 package net.floodlightcontroller.linkdiscovery;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.ser.ToStringSerializer;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import org.openflow.util.HexString;
 
 public interface ILinkDiscovery {
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
index cb52ba6dc63b62031d6e4712a28ff3e8b1dbb14c..5cfabd821f167bfb0d112323de301bfb24991398 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
@@ -18,8 +18,8 @@ package net.floodlightcontroller.linkdiscovery.internal;
 
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 /***
  * Topology Cluster merge/split event history related classes and members
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
index dc061c6f4c11733a8813e79a1e5ff8f05bb8ddee..b8d3e143c31b8529134f63ee5575a1559113229f 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
@@ -18,8 +18,8 @@ package net.floodlightcontroller.linkdiscovery.internal;
 
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 /***
  * Topology link up/down event history related classes and members
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
index 3b27c8eef9e82ed8a2ecd30986a1c13d0a39eb36..f8c79837f68cc55c10f174e9aadf0d7bc951cc57 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
@@ -19,8 +19,8 @@ package net.floodlightcontroller.linkdiscovery.internal;
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 import net.floodlightcontroller.core.web.serializers.IPv4Serializer;
 
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 /***
  * Topology Switch event history related classes and members
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkWithType.java b/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkWithType.java
index dc859d338371fc990794c424720e8a89c541495e..bffd3fcedf51ef1653a97c08b5e22c1c64e78dfa 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkWithType.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinkWithType.java
@@ -18,11 +18,11 @@ package net.floodlightcontroller.linkdiscovery.web;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.openflow.util.HexString;
 
 import net.floodlightcontroller.linkdiscovery.ILinkDiscovery.LinkType;
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/LBMember.java b/src/main/java/net/floodlightcontroller/loadbalancer/LBMember.java
index c3976e3c3f8dfd7361bf6f4ac8ad8cb9916af94e..40569b478bd171f212d969b6e61cf9d1da3c5c12 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/LBMember.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/LBMember.java
@@ -16,7 +16,7 @@
 
 package net.floodlightcontroller.loadbalancer;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 /**
  * Data structure for Load Balancer based on
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/LBMemberSerializer.java b/src/main/java/net/floodlightcontroller/loadbalancer/LBMemberSerializer.java
index 1653b00d04ee173df4cdad81fa3955ccfb46b06d..bb723e01ab4b87fb6adc49ac2ba8cc5cfc0a8179 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/LBMemberSerializer.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/LBMemberSerializer.java
@@ -18,10 +18,10 @@ package net.floodlightcontroller.loadbalancer;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 
 public class LBMemberSerializer extends JsonSerializer<LBMember>{
 
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/LBPool.java b/src/main/java/net/floodlightcontroller/loadbalancer/LBPool.java
index 07961150e0feb8e7c6f6910c1d8bcc8233a9ff31..2e06fb123267b6f6e57139b686569ab0a8b6d15c 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/LBPool.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/LBPool.java
@@ -18,7 +18,7 @@ package net.floodlightcontroller.loadbalancer;
 
 import java.util.ArrayList;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import net.floodlightcontroller.loadbalancer.LoadBalancer.IPClient;
 
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/LBPoolSerializer.java b/src/main/java/net/floodlightcontroller/loadbalancer/LBPoolSerializer.java
index 042c13ccbef1b5658ec409c143c84f3503e62372..4cb3ae1eaecef9685786103015ad18e0baf38ff9 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/LBPoolSerializer.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/LBPoolSerializer.java
@@ -18,10 +18,10 @@ package net.floodlightcontroller.loadbalancer;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 
 public class LBPoolSerializer extends JsonSerializer<LBPool>{
 
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/LBVip.java b/src/main/java/net/floodlightcontroller/loadbalancer/LBVip.java
index 10e3de375bcfae4056573f640f53c536709dcf5a..1d0a9bdadd16cca75dccb00cb3251cd4b160e59b 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/LBVip.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/LBVip.java
@@ -18,7 +18,7 @@ package net.floodlightcontroller.loadbalancer;
 
 import java.util.ArrayList;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import net.floodlightcontroller.loadbalancer.LoadBalancer.IPClient;
 import net.floodlightcontroller.util.MACAddress;
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/LBVipSerializer.java b/src/main/java/net/floodlightcontroller/loadbalancer/LBVipSerializer.java
index 4421a9c3b4c6ba41a40a1dee60cf9af9aa9b2d3b..9a853b37d317abe899a8888b4c0e42c4e29fa00f 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/LBVipSerializer.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/LBVipSerializer.java
@@ -17,10 +17,10 @@
 package net.floodlightcontroller.loadbalancer;
 
 import java.io.IOException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 
 public class LBVipSerializer extends JsonSerializer<LBVip>{
 
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/MembersResource.java b/src/main/java/net/floodlightcontroller/loadbalancer/MembersResource.java
index 43c808bd1cbd5c146f3c28925c8f34c572945e66..b18ad040f4e7bdbb1b07b42176413573893d0b5e 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/MembersResource.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/MembersResource.java
@@ -21,10 +21,10 @@ import java.util.Collection;
 
 import net.floodlightcontroller.packet.IPv4;
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
 import org.restlet.resource.Post;
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/MonitorsResource.java b/src/main/java/net/floodlightcontroller/loadbalancer/MonitorsResource.java
index 3f378ef334bb112fc7a596f0d49a30981ad2904a..928039c1f00f695d502261273192623c270a7f68 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/MonitorsResource.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/MonitorsResource.java
@@ -19,10 +19,11 @@ package net.floodlightcontroller.loadbalancer;
 import java.io.IOException;
 import java.util.Collection;
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
+
 import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
 import org.restlet.resource.Post;
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/PoolsResource.java b/src/main/java/net/floodlightcontroller/loadbalancer/PoolsResource.java
index 42d0477b5511bd54577692ed2452cf69e1e82297..8feb2eb03d1668eb23d0589ac3f1f8f21e58597d 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/PoolsResource.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/PoolsResource.java
@@ -21,10 +21,10 @@ import java.util.Collection;
 
 import net.floodlightcontroller.packet.IPv4;
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
 import org.restlet.resource.Post;
diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/VipsResource.java b/src/main/java/net/floodlightcontroller/loadbalancer/VipsResource.java
index da64998b5e9c814881fb6c26071f683d63d5510e..9fe63886e9016317b6cb46090bfa13b9f71ce001 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/VipsResource.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/VipsResource.java
@@ -21,10 +21,10 @@ import java.util.Collection;
 
 import net.floodlightcontroller.packet.IPv4;
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
 import org.restlet.resource.Post;
diff --git a/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucket.java b/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucket.java
index 0db2aa89156e9969d393778b54a144a0933d08b3..9d6531889becf37f29ee9df1894d0a0401016c12 100644
--- a/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucket.java
+++ b/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucket.java
@@ -21,7 +21,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import net.floodlightcontroller.core.IOFMessageListener;
 
diff --git a/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucketJSONSerializer.java b/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucketJSONSerializer.java
index bd2b98447482f7db6b027d3d3e4687b618bb246a..8dbeba100644899b523d034fe0a0a198d5169b0e 100644
--- a/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucketJSONSerializer.java
+++ b/src/main/java/net/floodlightcontroller/perfmon/CumulativeTimeBucketJSONSerializer.java
@@ -20,10 +20,10 @@ import java.io.IOException;
 import java.sql.Timestamp;
 
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 
 public class CumulativeTimeBucketJSONSerializer
                                 extends JsonSerializer<CumulativeTimeBucket> {
diff --git a/src/main/java/net/floodlightcontroller/perfmon/OneComponentTime.java b/src/main/java/net/floodlightcontroller/perfmon/OneComponentTime.java
index 02e56920d7fedcacb22f5b8219e2544a91d14804..b14c18c41b7b3be5c86914fcda676cb7ed225ee6 100644
--- a/src/main/java/net/floodlightcontroller/perfmon/OneComponentTime.java
+++ b/src/main/java/net/floodlightcontroller/perfmon/OneComponentTime.java
@@ -16,7 +16,7 @@
 
 package net.floodlightcontroller.perfmon;
 
-import org.codehaus.jackson.annotate.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
 import net.floodlightcontroller.core.IOFMessageListener;
 
diff --git a/src/main/java/net/floodlightcontroller/routing/Link.java b/src/main/java/net/floodlightcontroller/routing/Link.java
index b79b9a9bc942aeb425a046f42aa790b0d29f011d..abe88cfc1d8edf9bf1ddf22543cae8b18035170b 100755
--- a/src/main/java/net/floodlightcontroller/routing/Link.java
+++ b/src/main/java/net/floodlightcontroller/routing/Link.java
@@ -20,8 +20,8 @@ package net.floodlightcontroller.routing;
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 import net.floodlightcontroller.core.web.serializers.UShortSerializer;
 
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.openflow.util.HexString;
 
 public class Link implements Comparable<Link> {
diff --git a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java
index fc12b3edb165ed47330ad0bb62649d8f3a863d8f..1eb337e2b2f7e6abfb42982138bc7c2efb4f258b 100644
--- a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java
+++ b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java
@@ -34,10 +34,10 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
 import org.openflow.protocol.OFFlowMod;
 import org.openflow.protocol.OFMatch;
 import org.openflow.protocol.OFPacketOut;
diff --git a/src/main/java/net/floodlightcontroller/storage/web/StorageNotifyResource.java b/src/main/java/net/floodlightcontroller/storage/web/StorageNotifyResource.java
index fcfa96f40d6b0e27271f48b9a91524d5b6a52a0e..a439809ba8236c36e0c78a9ff7a1bb4e5266b0e7 100644
--- a/src/main/java/net/floodlightcontroller/storage/web/StorageNotifyResource.java
+++ b/src/main/java/net/floodlightcontroller/storage/web/StorageNotifyResource.java
@@ -24,8 +24,8 @@ import java.util.Map;
 import net.floodlightcontroller.storage.IStorageSourceService;
 import net.floodlightcontroller.storage.StorageSourceNotification;
 
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.core.type.TypeReference;
 import org.restlet.resource.Post;
 import org.restlet.resource.ServerResource;
 import org.slf4j.Logger;
diff --git a/src/main/java/net/floodlightcontroller/threadpool/ThreadPool.java b/src/main/java/net/floodlightcontroller/threadpool/ThreadPool.java
index 5b0c3c7133a54a10214b0a03bf7c15bc43e840da..0970b36f692a5148dd3bb313df8864f61e4fe858 100644
--- a/src/main/java/net/floodlightcontroller/threadpool/ThreadPool.java
+++ b/src/main/java/net/floodlightcontroller/threadpool/ThreadPool.java
@@ -22,6 +22,8 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import net.floodlightcontroller.core.module.FloodlightModuleContext;
 import net.floodlightcontroller.core.module.FloodlightModuleException;
@@ -70,7 +72,17 @@ public class ThreadPool implements IThreadPoolService, IFloodlightModule {
     @Override
     public void init(FloodlightModuleContext context)
                                  throws FloodlightModuleException {
-        executor = Executors.newScheduledThreadPool(15);
+        final ThreadGroup tg = new ThreadGroup("Scheduled Task Threads");
+        ThreadFactory f = new ThreadFactory() {
+            AtomicInteger id = new AtomicInteger();
+            
+            @Override
+            public Thread newThread(Runnable runnable) {
+                return new Thread(tg, runnable, 
+                                  "Scheduled-" + id.getAndIncrement());
+            }
+        };
+        executor = Executors.newScheduledThreadPool(5, f);
     }
 
     @Override
diff --git a/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java b/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
index 8711551b82e321b8aa261845dae3e24fefba3552..8c5645143ac0edc54df86582d9b83273bd30ed56 100644
--- a/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
+++ b/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
@@ -19,8 +19,8 @@ package net.floodlightcontroller.topology;
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 import net.floodlightcontroller.core.web.serializers.UShortSerializer;
 
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.openflow.util.HexString;
 
 /**
diff --git a/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfo.java b/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfo.java
index f0de370d992bad0a1817e1f6b9a93e5c2e2777c3..8568d0d576484361db2ab45f8f2d091e34ebec10 100644
--- a/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfo.java
+++ b/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfo.java
@@ -16,7 +16,7 @@
 
 package net.floodlightcontroller.util;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 @JsonSerialize(using=EventHistoryBaseInfoJSONSerializer.class)
 public class EventHistoryBaseInfo {
diff --git a/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfoJSONSerializer.java b/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfoJSONSerializer.java
index 6f1d1ff8bdf677bbe3c59fcdaec9cdac0985f0a2..ad14372607371e0aa70357092b02430b7b99651d 100644
--- a/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfoJSONSerializer.java
+++ b/src/main/java/net/floodlightcontroller/util/EventHistoryBaseInfoJSONSerializer.java
@@ -21,10 +21,10 @@ import java.io.IOException;
 import java.sql.Timestamp;
 
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 
 
 /**
diff --git a/src/main/java/net/floodlightcontroller/virtualnetwork/HostResource.java b/src/main/java/net/floodlightcontroller/virtualnetwork/HostResource.java
index dec2319b2cd0569c9e6f9771c7923a3c62602b3b..03f0a63ae3b93f20a1b370048fd81884bbd83cf5 100644
--- a/src/main/java/net/floodlightcontroller/virtualnetwork/HostResource.java
+++ b/src/main/java/net/floodlightcontroller/virtualnetwork/HostResource.java
@@ -20,10 +20,10 @@ import java.io.IOException;
 
 import net.floodlightcontroller.util.MACAddress;
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
 import org.restlet.data.Status;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Put;
diff --git a/src/main/java/net/floodlightcontroller/virtualnetwork/NetworkResource.java b/src/main/java/net/floodlightcontroller/virtualnetwork/NetworkResource.java
index 746490bc6b2897a560c8d654f20c4cd8e93ce115..35ff629f4c557f5185585c3440fbaa22e77d43c9 100644
--- a/src/main/java/net/floodlightcontroller/virtualnetwork/NetworkResource.java
+++ b/src/main/java/net/floodlightcontroller/virtualnetwork/NetworkResource.java
@@ -21,10 +21,10 @@ import java.util.Collection;
 
 import net.floodlightcontroller.packet.IPv4;
 
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonToken;
-import org.codehaus.jackson.map.MappingJsonFactory;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.MappingJsonFactory;
 import org.restlet.data.Status;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
diff --git a/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetwork.java b/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetwork.java
index 03eedd3382cff0483e4bd2743a60452e99dafc81..a73c72ef7f889bcd8ef2253f4bfdb6d2c81818cf 100644
--- a/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetwork.java
+++ b/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetwork.java
@@ -19,7 +19,7 @@ package net.floodlightcontroller.virtualnetwork;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import net.floodlightcontroller.util.MACAddress;
 
diff --git a/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkSerializer.java b/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkSerializer.java
index 487fb8dbe9bf2816f3400d63889c88541240f3b7..6f61b3859a8083838f7a052bb536913f5bc47a5b 100644
--- a/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkSerializer.java
+++ b/src/main/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkSerializer.java
@@ -21,10 +21,10 @@ import java.util.Iterator;
 
 import net.floodlightcontroller.util.MACAddress;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 
 /**
  * Serialize a VirtualNetwork object
diff --git a/src/main/java/org/openflow/protocol/OFFeaturesReply.java b/src/main/java/org/openflow/protocol/OFFeaturesReply.java
index d3af5741a325a559f0aa5609bdd841d82f87a053..6152bed7ee8ce699fadbd96fce21660a49ac6edc 100644
--- a/src/main/java/org/openflow/protocol/OFFeaturesReply.java
+++ b/src/main/java/org/openflow/protocol/OFFeaturesReply.java
@@ -21,7 +21,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.openflow.protocol.serializers.OFFeaturesReplyJSONSerializer;
 import org.openflow.util.U16;
diff --git a/src/main/java/org/openflow/protocol/OFMatch.java b/src/main/java/org/openflow/protocol/OFMatch.java
index c17bc0d29c0dd2febf7dc58ed792d244b6c5ee4b..86b9a28f13dcfd3717ad3400ac05af30c66d7161 100644
--- a/src/main/java/org/openflow/protocol/OFMatch.java
+++ b/src/main/java/org/openflow/protocol/OFMatch.java
@@ -23,7 +23,7 @@ import java.util.Arrays;
 
 import net.floodlightcontroller.packet.Ethernet;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.openflow.protocol.serializers.OFMatchJSONSerializer;
 import org.openflow.util.HexString;
diff --git a/src/main/java/org/openflow/protocol/OFPhysicalPort.java b/src/main/java/org/openflow/protocol/OFPhysicalPort.java
index 58fdae59f56de9df28358e65f1b9cab038ab676e..6687dcae98a4d93923025f61da8877f4cc81c8dd 100644
--- a/src/main/java/org/openflow/protocol/OFPhysicalPort.java
+++ b/src/main/java/org/openflow/protocol/OFPhysicalPort.java
@@ -24,7 +24,7 @@ import java.util.Arrays;
 import net.floodlightcontroller.core.web.serializers.ByteArrayMACSerializer;
 import net.floodlightcontroller.core.web.serializers.UShortSerializer;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.jboss.netty.buffer.ChannelBuffer;
 
 /**
diff --git a/src/main/java/org/openflow/protocol/action/OFActionDataLayer.java b/src/main/java/org/openflow/protocol/action/OFActionDataLayer.java
index 68327280da6dad4ef3a8dcfae298e4c6038529ba..de6a92bb6dd51ef9018f31fab94cf376bb722c16 100644
--- a/src/main/java/org/openflow/protocol/action/OFActionDataLayer.java
+++ b/src/main/java/org/openflow/protocol/action/OFActionDataLayer.java
@@ -24,7 +24,7 @@ import java.util.Arrays;
 
 import net.floodlightcontroller.core.web.serializers.ByteArrayMACSerializer;
 
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.openflow.protocol.OFPhysicalPort;
 
diff --git a/src/main/java/org/openflow/protocol/serializers/OFFeaturesReplyJSONSerializer.java b/src/main/java/org/openflow/protocol/serializers/OFFeaturesReplyJSONSerializer.java
index ad57312f11a7bea45050d1dcf1ea65a6d7479521..1102dc78653263a2e33a4967b8d4a3935f44df67 100644
--- a/src/main/java/org/openflow/protocol/serializers/OFFeaturesReplyJSONSerializer.java
+++ b/src/main/java/org/openflow/protocol/serializers/OFFeaturesReplyJSONSerializer.java
@@ -19,10 +19,10 @@ package org.openflow.protocol.serializers;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 import org.openflow.protocol.OFFeaturesReply;
 import org.openflow.util.HexString;
 
diff --git a/src/main/java/org/openflow/protocol/serializers/OFMatchJSONSerializer.java b/src/main/java/org/openflow/protocol/serializers/OFMatchJSONSerializer.java
index 69312feb5667855d36c3419f2749658b4ef43eee..2ae2d1c467d095491b88d8c78a15479ed04bdbae 100644
--- a/src/main/java/org/openflow/protocol/serializers/OFMatchJSONSerializer.java
+++ b/src/main/java/org/openflow/protocol/serializers/OFMatchJSONSerializer.java
@@ -19,10 +19,10 @@ package org.openflow.protocol.serializers;
 
 import java.io.IOException;
 
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
 import org.openflow.protocol.OFMatch;
 import org.openflow.util.HexString;
 
diff --git a/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsReply.java b/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsReply.java
index 7dec16b69d8d295985363703585fb82ab08f3da1..0c86006b0919e1a87120ab96dec2caed96cd48da 100644
--- a/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsReply.java
+++ b/src/main/java/org/openflow/protocol/statistics/OFAggregateStatisticsReply.java
@@ -18,7 +18,7 @@
 package org.openflow.protocol.statistics;
 
 
-import org.codehaus.jackson.annotate.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.jboss.netty.buffer.ChannelBuffer;
 
 /**
diff --git a/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsReply.java b/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsReply.java
index bea7f1e3b064a947a95d1398696462ae886cf697..8907e74b355593dfe607152180c56295a46d667f 100644
--- a/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsReply.java
+++ b/src/main/java/org/openflow/protocol/statistics/OFFlowStatisticsReply.java
@@ -19,7 +19,7 @@ package org.openflow.protocol.statistics;
 
 import java.util.List;
 
-import org.codehaus.jackson.annotate.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.openflow.protocol.OFMatch;
 import org.openflow.protocol.action.OFAction;
diff --git a/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsReply.java b/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsReply.java
index 9a84aad1edfba2357480c27dcde53f68e45ef595..15192bbc4d495fa4fd1f8f064adf0058f348d581 100644
--- a/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsReply.java
+++ b/src/main/java/org/openflow/protocol/statistics/OFPortStatisticsReply.java
@@ -20,8 +20,8 @@ package org.openflow.protocol.statistics;
 
 import net.floodlightcontroller.core.web.serializers.UShortSerializer;
 
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.jboss.netty.buffer.ChannelBuffer;
 
 /**
diff --git a/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsReply.java b/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsReply.java
index 03cbb9cef0c87b3056a57fef8c309e2ad2d1ed23..34a9e18200bc73ff5a7d628c671bb641cd243068 100644
--- a/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsReply.java
+++ b/src/main/java/org/openflow/protocol/statistics/OFQueueStatisticsReply.java
@@ -18,7 +18,7 @@
 package org.openflow.protocol.statistics;
 
 
-import org.codehaus.jackson.annotate.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.jboss.netty.buffer.ChannelBuffer;
 
 /**