From 4bd2c0bfb516f23c8ca168642cf43f6a1822fbd9 Mon Sep 17 00:00:00 2001 From: Mark Petrovic Date: Wed, 21 Jan 2015 16:28:00 -0800 Subject: [PATCH] Port Codehaus Jackson to fasterxml Jackson. One line of executable code changed, here, in org.apache.curator.x.discovery.server.contexts.GenericDiscoveryContext#unMarshallJson @Override public T unMarshallJson(JsonNode node) throws Exception { T payload; ObjectMapper mapper = new ObjectMapper(); //noinspection unchecked payload = (T)mapper.readValue(mapper.treeAsTokens(node), // <<<<<<<<<<<<<<<< payloadType.getRawType()); return payload; } Jackson v2 has no method on ObjectMapper supporting readValue(JsonNode, Class). However, Jackson v1 states the form I used is a shortcut for that legacy method. All other changes to the code and poms were simply replacing imports and maven dependencies. Jackson 2.3.2 was chosen to be compatible with the version already being transitively provided through the dependency io.dropwizard:dropwizard-configuration:jar:0.7.0:compile --- .../main/java/discovery/InstanceDetails.java | 2 +- .../contexts/GenericDiscoveryContext.java | 8 ++++---- .../contexts/IntegerDiscoveryContext.java | 4 ++-- .../contexts/StringDiscoveryContext.java | 4 ++-- .../entity/JsonServiceInstanceMarshaller.java | 6 +++--- .../JsonServiceInstancesMarshaller.java | 8 ++++---- .../entity/JsonServiceNamesMarshaller.java | 8 ++++---- .../server/rest/DiscoveryContext.java | 4 ++-- .../server/jetty_jersey/ServiceDetails.java | 4 ++-- curator-x-discovery/pom.xml | 14 +++++++++++-- .../curator/x/discovery/ServiceInstance.java | 6 ++---- .../details/JsonInstanceSerializer.java | 4 ++-- .../org/apache/curator/x/rpc/RpcTests.java | 6 +++--- pom.xml | 20 +++++++++++++++---- 14 files changed, 59 insertions(+), 39 deletions(-) diff --git a/curator-examples/src/main/java/discovery/InstanceDetails.java b/curator-examples/src/main/java/discovery/InstanceDetails.java index 0a4152e93e..91e465aeaf 100644 --- a/curator-examples/src/main/java/discovery/InstanceDetails.java +++ b/curator-examples/src/main/java/discovery/InstanceDetails.java @@ -18,7 +18,7 @@ */ package discovery; -import org.codehaus.jackson.map.annotate.JsonRootName; +import com.fasterxml.jackson.annotation.JsonRootName; /** * In a real application, the Service payload will most likely diff --git a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/GenericDiscoveryContext.java b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/GenericDiscoveryContext.java index 4929ccca86..ae870a5265 100644 --- a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/GenericDiscoveryContext.java +++ b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/GenericDiscoveryContext.java @@ -18,13 +18,13 @@ */ package org.apache.curator.x.discovery.server.contexts; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.reflect.TypeToken; import org.apache.curator.x.discovery.ProviderStrategy; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.curator.x.discovery.server.rest.DiscoveryContext; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.node.ObjectNode; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; @@ -88,7 +88,7 @@ public T unMarshallJson(JsonNode node) throws Exception T payload; ObjectMapper mapper = new ObjectMapper(); //noinspection unchecked - payload = (T)mapper.readValue(node, payloadType.getRawType()); + payload = (T)mapper.readValue(mapper.treeAsTokens(node), payloadType.getRawType()); return payload; } diff --git a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/IntegerDiscoveryContext.java b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/IntegerDiscoveryContext.java index 7f640d1eb1..27ee618116 100644 --- a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/IntegerDiscoveryContext.java +++ b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/IntegerDiscoveryContext.java @@ -18,11 +18,11 @@ */ package org.apache.curator.x.discovery.server.contexts; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.curator.x.discovery.ProviderStrategy; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.curator.x.discovery.server.rest.DiscoveryContext; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.node.ObjectNode; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; diff --git a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/StringDiscoveryContext.java b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/StringDiscoveryContext.java index a16e6f3483..d1d6cf251f 100644 --- a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/StringDiscoveryContext.java +++ b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/contexts/StringDiscoveryContext.java @@ -18,11 +18,11 @@ */ package org.apache.curator.x.discovery.server.contexts; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.curator.x.discovery.ProviderStrategy; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.curator.x.discovery.server.rest.DiscoveryContext; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.node.ObjectNode; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; diff --git a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceInstanceMarshaller.java b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceInstanceMarshaller.java index f461d04144..f7007c2c93 100644 --- a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceInstanceMarshaller.java +++ b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceInstanceMarshaller.java @@ -18,13 +18,13 @@ */ package org.apache.curator.x.discovery.server.entity; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.curator.x.discovery.ServiceInstance; import org.apache.curator.x.discovery.ServiceInstanceBuilder; import org.apache.curator.x.discovery.ServiceType; import org.apache.curator.x.discovery.server.rest.DiscoveryContext; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.node.ObjectNode; import javax.ws.rs.Consumes; import javax.ws.rs.Produces; import javax.ws.rs.WebApplicationException; diff --git a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceInstancesMarshaller.java b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceInstancesMarshaller.java index 168e508d5f..4ba61bd265 100644 --- a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceInstancesMarshaller.java +++ b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceInstancesMarshaller.java @@ -18,13 +18,13 @@ */ package org.apache.curator.x.discovery.server.entity; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.collect.Lists; import org.apache.curator.x.discovery.ServiceInstance; import org.apache.curator.x.discovery.server.rest.DiscoveryContext; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.node.ArrayNode; -import org.codehaus.jackson.node.ObjectNode; import javax.ws.rs.Consumes; import javax.ws.rs.Produces; import javax.ws.rs.WebApplicationException; diff --git a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceNamesMarshaller.java b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceNamesMarshaller.java index 428277e6b2..61accf424d 100644 --- a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceNamesMarshaller.java +++ b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/entity/JsonServiceNamesMarshaller.java @@ -18,11 +18,11 @@ */ package org.apache.curator.x.discovery.server.entity; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.collect.Lists; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.node.ArrayNode; -import org.codehaus.jackson.node.ObjectNode; import javax.ws.rs.Consumes; import javax.ws.rs.Produces; import javax.ws.rs.WebApplicationException; diff --git a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/rest/DiscoveryContext.java b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/rest/DiscoveryContext.java index 30ea77a79e..099048a9b1 100644 --- a/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/rest/DiscoveryContext.java +++ b/curator-x-discovery-server/src/main/java/org/apache/curator/x/discovery/server/rest/DiscoveryContext.java @@ -18,10 +18,10 @@ */ package org.apache.curator.x.discovery.server.rest; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.curator.x.discovery.ProviderStrategy; import org.apache.curator.x.discovery.ServiceDiscovery; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.node.ObjectNode; /** * Bridge between the specifics of your needs and the generic implementation diff --git a/curator-x-discovery-server/src/test/java/org/apache/curator/x/discovery/server/jetty_jersey/ServiceDetails.java b/curator-x-discovery-server/src/test/java/org/apache/curator/x/discovery/server/jetty_jersey/ServiceDetails.java index eefcdada44..2db5c88a2a 100644 --- a/curator-x-discovery-server/src/test/java/org/apache/curator/x/discovery/server/jetty_jersey/ServiceDetails.java +++ b/curator-x-discovery-server/src/test/java/org/apache/curator/x/discovery/server/jetty_jersey/ServiceDetails.java @@ -18,11 +18,11 @@ */ package org.apache.curator.x.discovery.server.jetty_jersey; +import com.fasterxml.jackson.annotation.JsonRootName; + import java.util.HashMap; import java.util.Map; -import org.codehaus.jackson.map.annotate.JsonRootName; - /** * Service payload describing details of a service. */ diff --git a/curator-x-discovery/pom.xml b/curator-x-discovery/pom.xml index b557211d07..51cad075a8 100644 --- a/curator-x-discovery/pom.xml +++ b/curator-x-discovery/pom.xml @@ -51,8 +51,18 @@ - org.codehaus.jackson - jackson-mapper-asl + com.fasterxml.jackson.core + jackson-core + + + + com.fasterxml.jackson.core + jackson-annotations + + + + com.fasterxml.jackson.core + jackson-databind diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java index 939e708dd1..f4f3b7d64a 100644 --- a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java +++ b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/ServiceInstance.java @@ -18,6 +18,7 @@ */ package org.apache.curator.x.discovery; +import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import java.net.InetAddress; @@ -25,9 +26,6 @@ import java.util.Map; import java.util.UUID; -import org.codehaus.jackson.annotate.JsonTypeInfo; -import org.codehaus.jackson.annotate.JsonTypeInfo.Id; - /** * POJO that represents a service instance */ @@ -124,7 +122,7 @@ public Integer getSslPort() return sslPort; } - @JsonTypeInfo(use=Id.CLASS, defaultImpl=Object.class) + @JsonTypeInfo(use= JsonTypeInfo.Id.CLASS, defaultImpl=Object.class) public T getPayload() { return payload; diff --git a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/JsonInstanceSerializer.java b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/JsonInstanceSerializer.java index b7ddbc2efa..164bdb0a0f 100644 --- a/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/JsonInstanceSerializer.java +++ b/curator-x-discovery/src/main/java/org/apache/curator/x/discovery/details/JsonInstanceSerializer.java @@ -18,9 +18,9 @@ */ package org.apache.curator.x.discovery.details; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.curator.x.discovery.ServiceInstance; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.type.JavaType; import java.io.ByteArrayOutputStream; /** diff --git a/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/RpcTests.java b/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/RpcTests.java index a0e0a427e5..87a5bb8626 100644 --- a/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/RpcTests.java +++ b/curator-x-rpc/src/test/java/org/apache/curator/x/rpc/RpcTests.java @@ -18,6 +18,9 @@ */ package org.apache.curator.x.rpc; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.generated.*; @@ -32,9 +35,6 @@ import org.apache.thrift.transport.TSocket; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.node.ArrayNode; -import org.codehaus.jackson.node.ObjectNode; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; diff --git a/pom.xml b/pom.xml index be3ea33759..01592c7602 100644 --- a/pom.xml +++ b/pom.xml @@ -76,7 +76,7 @@ 0.10 3.18.1-GA 2.2 - 1.9.13 + 2.3.2 1.18.1 1.1.1 6.1.26 @@ -354,9 +354,21 @@ - org.codehaus.jackson - jackson-mapper-asl - ${jackson-mapper-asl-version} + com.fasterxml.jackson.core + jackson-core + ${jackson-version} + + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson-version} + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson-version}