All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.instaclustr.jackson.JacksonModule Maven / Gradle / Ivy

package com.instaclustr.jackson;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Singleton;

public class JacksonModule extends AbstractModule {

    @Singleton
    @Provides
    ObjectMapper provideObjectMapper(final GuiceJacksonHandlerInstantiator guiceJacksonHandlerInstantiator) {

        final ObjectMapper objectMapper = new ObjectMapper();

        objectMapper.setHandlerInstantiator(guiceJacksonHandlerInstantiator);

        objectMapper.setDefaultPropertyInclusion(JsonInclude.Include.NON_ABSENT);
        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
        objectMapper.disable(SerializationFeature.FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS);
        objectMapper.writerWithDefaultPrettyPrinter();

        objectMapper.registerModule(new Jdk8Module());
        objectMapper.registerModule(new JavaTimeModule());

        return objectMapper;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy