[ 
https://issues.apache.org/jira/browse/WINK-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12914131#action_12914131
 ] 

Jesse Ramos commented on WINK-299:
----------------------------------

After fiddling with things a bit I found that taking all the defaults for the 
JacksonJaxbJsonProvider results in null properties being marshaled into the 
resulting JSON for JAXB Objects.  I think we should suppress these from being 
written.

Looking at our unit tests, I see we do the following:
{code}
        JacksonJaxbJsonProvider jacksonProvider = new JacksonJaxbJsonProvider();
        jacksonProvider.configure(Feature.WRITE_NULL_PROPERTIES, Boolean.FALSE);
        return new Object[] {jacksonProvider};
{code}

However, Feature.WRITE_NULL_PROPERTIES is deprecated.  It looks like using this 
code instead, we achieve the same thing:
{code}
        JacksonJaxbJsonProvider jacksonProvider = new JacksonJaxbJsonProvider();
        ObjectMapper mapper = new ObjectMapper();
        
mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
        AnnotationIntrospector pair =
            new AnnotationIntrospector.Pair(new JaxbAnnotationIntrospector(),
                                            new 
JacksonAnnotationIntrospector());
        mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
        mapper.getSerializationConfig().setAnnotationIntrospector(pair);
        jacksonProvider.setMapper(mapper);
{code}

I'm planning to check in a WinkJacksonJaxbJsonProvider that uses this 
configuration.  Thoughts?

> Make Jackson the default JSON provider for Wink
> -----------------------------------------------
>
>                 Key: WINK-299
>                 URL: https://issues.apache.org/jira/browse/WINK-299
>             Project: Wink
>          Issue Type: Improvement
>          Components: Providers
>            Reporter: Jason Dillon
>
> Jackson seems to be the only JSON provider that works well (the other ones 
> work in limited situations, but Jackson seems to handle it all well).  So IMO 
> Jackson should be considered as the default JSON provider for Wink.
> ATM the Jackson module doesn't provide a Provider impl, it should get a 
> proper implementation that sets up a reasonable configuration.  This has been 
> working very, very well for me:
> {code}
>         ObjectMapper mapper = new ObjectMapper();
>         AnnotationIntrospector pair = new AnnotationIntrospector.Pair(
>             new JaxbAnnotationIntrospector(), new 
> JacksonAnnotationIntrospector());
>         mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
>         mapper.getSerializationConfig().setAnnotationIntrospector(pair);
>         JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider();
>         provider.setMapper(mapper);
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to