Comment configurer JacksonJaxbJsonProvider en une seule ligne de code?

- Je utiliser Jackson pour la sérialisation JSON dans une application comme ceci:

import javax.ws.rs.core.Application;

import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
import org.codehaus.jackson.map.SerializationConfig;

public class MyApplication extends Application {

    public Set<Class<?>> getClasses() {
        Set<Class<?>> classes = new HashSet<Class<?>>();
        classes.add(MyResource1.class);
        classes.add(MyResource2.class);
        ...
        return classes;
    }

    public Set<Object> getSingletons() {
        Set<Object> singletons = new HashSet<Object>();
        singletons.add(new JacksonJaxbJsonProvider().configure(
            SerializationConfig.Feature.WRITE_NULL_PROPERTIES, false)); //(*)
        return singletons;
    }

}

(*) Nécessaire, sinon les champs annotés avec @XmlElementRef apparaît en sortie JSON comme "myField": null lorsque la valeur null (au lieu de n'apparaissant pas), alors que c'est bien pour les champs annotés avec @XmlElement.

Cependant, l'utilisation de SerializationConfig.Feature.WRITE_NULL_PROPERTIES est dépréciée en faveur de SerializationConfig.setSerializationInclusion(..) (1)
qui lui-même est dépréciée en faveur de SerializationConfig.withSerializationInclusion(..) ou configurer via ObjectMapper (2)

Mais ce que je pense est fait à l'aide de new JacksonJaxbJsonProvider().configure(..) est en effet la configuration d'un ObjectMapper (j'ai pris un coup d'oeil au code).

Donc ma question est: comment dois-je configurer correctement, sans aide d'aucune obsolète propriété et sans (re)créer de nouvelles config classe(s)?

(1) http://jackson.codehaus.org/1.9.4/javadoc/org/codehaus/jackson/map/SerializationConfig.Feature.html#WRITE_NULL_PROPERTIES

(2) http://jackson.codehaus.org/1.9.4/javadoc/org/codehaus/jackson/map/SerializationConfig.html#setSerializationInclusion(org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion)

OriginalL'auteur maxxyme | 2013-02-05