Upgrade to the latest jackson version

git-svn-id: https://svn.apache.org/repos/asf/incubator/wink/trunk@1292070 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/wink-providers/wink-jackson-provider/pom.xml b/wink-providers/wink-jackson-provider/pom.xml
index 0702502..3688b97 100644
--- a/wink-providers/wink-jackson-provider/pom.xml
+++ b/wink-providers/wink-jackson-provider/pom.xml
@@ -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>
diff --git a/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java b/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java
index 72fc913..6181296 100644
--- a/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java
+++ b/wink-providers/wink-jackson-provider/src/main/java/org/apache/wink/providers/jackson/WinkJacksonJaxbJsonProvider.java
@@ -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 @@
 @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;

     }

 

 }

diff --git a/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java b/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java
index 1bb2ee1..1919447 100644
--- a/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java
+++ b/wink-providers/wink-jackson-provider/src/test/java/org/apache/wink/providers/jackson/internal/JacksonDeserializationConfiguration2Test.java
@@ -25,7 +25,6 @@
 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 @@
                                                         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 {