You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by rf...@apache.org on 2012/02/21 23:48:30 UTC

svn commit: r1292070 - in /incubator/wink/trunk/wink-providers/wink-jackson-provider: ./ src/main/java/org/apache/wink/providers/jackson/ src/test/java/org/apache/wink/providers/jackson/internal/

Author: rfeng
Date: Tue Feb 21 22:48:30 2012
New Revision: 1292070

URL: http://svn.apache.org/viewvc?rev=1292070&view=rev
Log:
Upgrade to the latest jackson version

Modified:
    incubator/wink/trunk/wink-providers/wink-jackson-provider/pom.xml
    incubator/wink/trunk/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java
    incubator/wink/trunk/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java

Modified: incubator/wink/trunk/wink-providers/wink-jackson-provider/pom.xml
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-providers/wink-jackson-provider/pom.xml?rev=1292070&r1=1292069&r2=1292070&view=diff
==============================================================================
--- incubator/wink/trunk/wink-providers/wink-jackson-provider/pom.xml (original)
+++ incubator/wink/trunk/wink-providers/wink-jackson-provider/pom.xml Tue Feb 21 22:48:30 2012
@@ -31,22 +31,22 @@
         <dependency>
             <groupId>org.codehaus.jackson</groupId>
             <artifactId>jackson-core-asl</artifactId>
-            <version>1.8.0</version>
+            <version>1.9.4</version>
         </dependency>
         <dependency>
             <groupId>org.codehaus.jackson</groupId>
             <artifactId>jackson-mapper-asl</artifactId>
-            <version>1.8.0</version>
+            <version>1.9.4</version>
         </dependency>
         <dependency>
             <groupId>org.codehaus.jackson</groupId>
             <artifactId>jackson-jaxrs</artifactId>
-            <version>1.8.0</version>
+            <version>1.9.4</version>
         </dependency>
         <dependency>
             <groupId>org.codehaus.jackson</groupId>
             <artifactId>jackson-xc</artifactId>
-            <version>1.8.0</version>
+            <version>1.9.4</version>
         </dependency>
         <dependency>
             <groupId>org.apache.wink</groupId>

Modified: incubator/wink/trunk/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java?rev=1292070&r1=1292069&r2=1292070&view=diff
==============================================================================
--- incubator/wink/trunk/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java (original)
+++ incubator/wink/trunk/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java Tue Feb 21 22:48:30 2012
@@ -19,22 +19,16 @@
  *******************************************************************************/
 package org.apache.wink.providers.jackson;
 
-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.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.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
 import org.codehaus.jackson.map.AnnotationIntrospector;
+import org.codehaus.jackson.map.DeserializationConfig.Feature;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
 import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
@@ -43,72 +37,24 @@ import org.codehaus.jackson.xc.JaxbAnnot
 @Provider
 @Consumes( {MediaType.APPLICATION_JSON, "text/json"})
 @Produces( {MediaType.APPLICATION_JSON, "text/json"})
-public class WinkJacksonJaxbJsonProvider implements MessageBodyReader<Object>, MessageBodyWriter<Object> {
-
-    JacksonJaxbJsonProvider jacksonProvider;
+public class WinkJacksonJaxbJsonProvider extends JacksonJaxbJsonProvider implements MessageBodyReader<Object>, MessageBodyWriter<Object> {
 
     public WinkJacksonJaxbJsonProvider() {
+        super(createObjectMapper(), BASIC_ANNOTATIONS);
+    }
+
+    private static ObjectMapper createObjectMapper() {
         ObjectMapper mapper = new ObjectMapper();
         mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
+        mapper.getDeserializationConfig().set(Feature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.FALSE);
+//        mapper.getSerializationConfig().setDateFormat(StdDateFormat.getBlueprintISO8601Format());
+//        mapper.getDeserializationConfig().setDateFormat(StdDateFormat.getBlueprintISO8601Format());
         AnnotationIntrospector pair =
             new AnnotationIntrospector.Pair(new JaxbAnnotationIntrospector(),
                                             new JacksonAnnotationIntrospector());
         mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
         mapper.getSerializationConfig().setAnnotationIntrospector(pair);
-        this.jacksonProvider = new JacksonJaxbJsonProvider();
-        jacksonProvider.setMapper(mapper);
-    }
-
-    public long getSize(Object t,
-                        Class<?> type,
-                        Type genericType,
-                        Annotation[] annotations,
-                        MediaType mediaType) {
-        return jacksonProvider.getSize(t, type, genericType, annotations, mediaType);
-    }
-
-    public boolean isWriteable(Class<?> type,
-                               Type genericType,
-                               Annotation[] annotations,
-                               MediaType mediaType) {
-        return jacksonProvider.isWriteable(type, genericType, annotations, mediaType);
-    }
-
-    public void writeTo(Object t,
-                        Class<?> type,
-                        Type genericType,
-                        Annotation[] annotations,
-                        MediaType mediaType,
-                        MultivaluedMap<String, Object> httpHeaders,
-                        OutputStream entityStream) throws IOException {
-        jacksonProvider.writeTo(t,
-                                type,
-                                genericType,
-                                annotations,
-                                mediaType,
-                                httpHeaders,
-                                entityStream);
-    }
-
-    public boolean isReadable(Class<?> type,
-                              Type genericType,
-                              Annotation[] annotations,
-                              MediaType mediaType) {
-        return jacksonProvider.isReadable(type, genericType, annotations, mediaType);
-    }
-
-    public Object readFrom(Class<Object> type,
-                           Type genericType,
-                           Annotation[] annotations,
-                           MediaType mediaType,
-                           MultivaluedMap<String, String> httpHeaders,
-                           InputStream entityStream) throws IOException {
-        return jacksonProvider.readFrom(type,
-                                        genericType,
-                                        annotations,
-                                        mediaType,
-                                        httpHeaders,
-                                        entityStream);
+        return mapper;
     }
 
 }

Modified: incubator/wink/trunk/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java?rev=1292070&r1=1292069&r2=1292070&view=diff
==============================================================================
--- incubator/wink/trunk/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java (original)
+++ incubator/wink/trunk/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java Tue Feb 21 22:48:30 2012
@@ -25,7 +25,6 @@ import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.servlet.ServletException;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -113,10 +112,9 @@ public class JacksonDeserializationConfi
                                                         MediaType.APPLICATION_JSON);
         request.setContentType(MediaType.APPLICATION_JSON);
         request.setContent("{\"children\":[\"Joe\",\"Sally\",\"Steve\"]}".getBytes());
-        try{
-            invoke(request);
-            fail("ServletException not thrown for missing setter method of children.");
-        } catch(ServletException e) {}
+        // No jackson 1.9.x support the List without setter
+        MockHttpServletResponse response = invoke(request);
+        assertEquals(200, response.getStatus());
     }
     
     public void testPOSTPersonWithAgeWeight() throws Exception {