From 5b5d5cca1c642def7f4eaf9536ccccddaa7ea48b Mon Sep 17 00:00:00 2001 From: Athou Date: Mon, 12 Aug 2013 12:45:25 +0200 Subject: [PATCH] jackson update --- pom.xml | 6 +-- .../commafeed/frontend/rest/JsonProvider.java | 41 +++++++++++++++++-- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 63dc2687..29ca5447 100644 --- a/pom.xml +++ b/pom.xml @@ -318,9 +318,9 @@ - com.fasterxml.jackson.jaxrs - jackson-jaxrs-json-provider - 2.1.4 + com.fasterxml.jackson.core + jackson-databind + 2.2.2 org.slf4j diff --git a/src/main/java/com/commafeed/frontend/rest/JsonProvider.java b/src/main/java/com/commafeed/frontend/rest/JsonProvider.java index 7f7d26b8..551f2893 100644 --- a/src/main/java/com/commafeed/frontend/rest/JsonProvider.java +++ b/src/main/java/com/commafeed/frontend/rest/JsonProvider.java @@ -1,24 +1,34 @@ package com.commafeed.frontend.rest; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.lang.annotation.Annotation; import java.lang.reflect.Type; +import javax.ws.rs.Consumes; +import javax.ws.rs.Produces; +import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.ext.MessageBodyReader; +import javax.ws.rs.ext.MessageBodyWriter; import javax.ws.rs.ext.Provider; import org.apache.http.HttpHeaders; -import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; +import com.fasterxml.jackson.databind.ObjectMapper; @Provider -public class JsonProvider extends JacksonJsonProvider { +@Consumes(MediaType.WILDCARD) +@Produces(MediaType.WILDCARD) +public class JsonProvider implements MessageBodyReader, MessageBodyWriter { private static final String CONTENT_TYPE_VALUE_SUFFIX = ";charset=UTF-8"; private static final String CACHE_CONTROL_VALUE = "no-cache"; + private static final ObjectMapper MAPPER = new ObjectMapper(); + @Override public void writeTo(Object value, Class type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap httpHeaders, OutputStream entityStream) throws IOException { @@ -27,7 +37,32 @@ public class JsonProvider extends JacksonJsonProvider { httpHeaders.putSingle(HttpHeaders.CACHE_CONTROL, CACHE_CONTROL_VALUE); httpHeaders.putSingle(HttpHeaders.PRAGMA, CACHE_CONTROL_VALUE); - super.writeTo(value, type, genericType, annotations, mediaType, httpHeaders, entityStream); + getMapper().writeValue(entityStream, value); + } + + @Override + public Object readFrom(Class type, Type genericType, Annotation[] annotations, MediaType mediaType, + MultivaluedMap httpHeaders, InputStream entityStream) throws IOException, WebApplicationException { + return getMapper().readValue(entityStream, type); + } + + @Override + public boolean isWriteable(Class type, Type genericType, Annotation[] annotations, MediaType mediaType) { + return true; + } + + @Override + public long getSize(Object t, Class type, Type genericType, Annotation[] annotations, MediaType mediaType) { + return -1; + } + + @Override + public boolean isReadable(Class type, Type genericType, Annotation[] annotations, MediaType mediaType) { + return true; + } + + public static ObjectMapper getMapper() { + return MAPPER; } }