Example usage for com.fasterxml.jackson.databind ObjectMapper setHandlerInstantiator

List of usage examples for com.fasterxml.jackson.databind ObjectMapper setHandlerInstantiator

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind ObjectMapper setHandlerInstantiator.

Prototype

public Object setHandlerInstantiator(HandlerInstantiator hi) 

Source Link

Document

Method for configuring HandlerInstantiator to use for creating instances of handlers (such as serializers, deserializers, type and type id resolvers), given a class.

Usage

From source file:org.springframework.data.custom.RestTest.java

public static ObjectMapper mapper() {
    final HalHandlerInstantiator instantiator = new HalHandlerInstantiator(new DefaultRelProvider(), null,
            null);/*from   w  w w  . jav  a 2 s. co  m*/

    final ObjectMapper m = new ObjectMapper();
    m.registerModule(new Jackson2HalModule());
    m.registerModule(new SimpleModule() {
        {
            setMixInAnnotation(Link.class, LinkReadMixin.class);
        }
    });
    m.setHandlerInstantiator(instantiator);
    m.enable(SerializationFeature.INDENT_OUTPUT);
    return m;
}

From source file:org.springframework.hateoas.hal.Jackson2HalIntegrationTest.java

private static ObjectMapper getCuriedObjectMapper(CurieProvider provider) {

    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new Jackson2HalModule());
    mapper.setHandlerInstantiator(new HalHandlerInstantiator(new AnnotationRelProvider(), provider));

    return mapper;
}

From source file:org.springframework.data.rest.webmvc.json.ProjectionJacksonIntegrationTests.java

/**
 * @see DATAREST-221/*from   ww w.  j  av  a2 s .  co m*/
 */
@Test
public void rendersHalContentCorrectly() throws Exception {

    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new Jackson2HalModule());
    mapper.setHandlerInstantiator(
            new Jackson2HalModule.HalHandlerInstantiator(new EvoInflectorRelProvider(), null, null));

    Customer customer = new Customer();
    customer.firstname = "Dave";
    customer.lastname = "Matthews";
    customer.address = new Address();

    CustomerProjection projection = factory.createProjection(CustomerProjection.class, customer);
    Resources<CustomerProjection> resources = new Resources<CustomerProjection>(Arrays.asList(projection));

    String result = mapper.writeValueAsString(resources);

    assertThat(JsonPath.read(result, "$._embedded.customers[0].firstname"), is((Object) "Dave"));
}

From source file:org.springframework.data.rest.tests.RepositoryTestsConfig.java

@Bean
public ObjectMapper objectMapper() {

    RelProvider relProvider = new EvoInflectorRelProvider();
    ObjectMapper mapper = new ObjectMapper();

    mapper.registerModule(new Jackson2HalModule());
    mapper.registerModule(persistentEntityModule());
    mapper.setHandlerInstantiator(new Jackson2HalModule.HalHandlerInstantiator(relProvider, null, null));
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    mapper.setSerializationInclusion(Include.NON_EMPTY);

    return mapper;
}

From source file:com.sra.biotech.submittool.persistence.client.RestClientConfiguration.java

public MappingJackson2HttpMessageConverter halConverter() {
    RelProvider defaultRelProvider = defaultRelProvider();
    RelProvider annotationRelProvider = annotationRelProvider();

    OrderAwarePluginRegistry<RelProvider, Class<?>> relProviderPluginRegistry = OrderAwarePluginRegistry
            .create(Arrays.asList(defaultRelProvider, annotationRelProvider));

    DelegatingRelProvider delegatingRelProvider = new DelegatingRelProvider(relProviderPluginRegistry);

    ObjectMapper halObjectMapper = new ObjectMapper();
    halObjectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    halObjectMapper.registerModule(new Jackson2HalModule());
    halObjectMapper
            .setHandlerInstantiator(new Jackson2HalModule.HalHandlerInstantiator(delegatingRelProvider, null));

    MappingJackson2HttpMessageConverter halConverter = new MappingJackson2HttpMessageConverter();
    halConverter.setSupportedMediaTypes(Arrays.asList(MediaTypes.HAL_JSON));
    halConverter.setObjectMapper(halObjectMapper);
    return halConverter;
}

From source file:org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration.java

@Bean
public ObjectMapper halObjectMapper() {

    RelProvider defaultedRelProvider = this.relProvider != null ? this.relProvider
            : new EvoInflectorRelProvider();

    HalHandlerInstantiator instantiator = new HalHandlerInstantiator(defaultedRelProvider, curieProvider,
            resourceDescriptionMessageSourceAccessor());

    ObjectMapper mapper = basicObjectMapper();
    mapper.registerModule(persistentEntityJackson2Module());
    mapper.registerModule(new Jackson2HalModule());
    mapper.setHandlerInstantiator(instantiator);

    return mapper;
}

From source file:org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.java

/**
 * Configure an existing {@link ObjectMapper} instance with this builder's
 * settings. This can be applied to any number of {@code ObjectMappers}.
 * @param objectMapper the ObjectMapper to configure
 *//*from   w  ww . j a va  2 s. c  o  m*/
public void configure(ObjectMapper objectMapper) {
    Assert.notNull(objectMapper, "ObjectMapper must not be null");

    if (this.findModulesViaServiceLoader) {
        // Jackson 2.2+
        objectMapper.registerModules(ObjectMapper.findModules(this.moduleClassLoader));
    } else if (this.findWellKnownModules) {
        registerWellKnownModulesIfAvailable(objectMapper);
    }

    if (this.modules != null) {
        for (Module module : this.modules) {
            // Using Jackson 2.0+ registerModule method, not Jackson 2.2+ registerModules
            objectMapper.registerModule(module);
        }
    }
    if (this.moduleClasses != null) {
        for (Class<? extends Module> module : this.moduleClasses) {
            objectMapper.registerModule(BeanUtils.instantiateClass(module));
        }
    }

    if (this.dateFormat != null) {
        objectMapper.setDateFormat(this.dateFormat);
    }
    if (this.locale != null) {
        objectMapper.setLocale(this.locale);
    }
    if (this.timeZone != null) {
        objectMapper.setTimeZone(this.timeZone);
    }

    if (this.annotationIntrospector != null) {
        objectMapper.setAnnotationIntrospector(this.annotationIntrospector);
    }
    if (this.propertyNamingStrategy != null) {
        objectMapper.setPropertyNamingStrategy(this.propertyNamingStrategy);
    }
    if (this.defaultTyping != null) {
        objectMapper.setDefaultTyping(this.defaultTyping);
    }
    if (this.serializationInclusion != null) {
        objectMapper.setSerializationInclusion(this.serializationInclusion);
    }

    if (this.filters != null) {
        objectMapper.setFilterProvider(this.filters);
    }

    for (Class<?> target : this.mixIns.keySet()) {
        objectMapper.addMixIn(target, this.mixIns.get(target));
    }

    if (!this.serializers.isEmpty() || !this.deserializers.isEmpty()) {
        SimpleModule module = new SimpleModule();
        addSerializers(module);
        addDeserializers(module);
        objectMapper.registerModule(module);
    }

    customizeDefaultFeatures(objectMapper);
    for (Object feature : this.features.keySet()) {
        configureFeature(objectMapper, feature, this.features.get(feature));
    }

    if (this.handlerInstantiator != null) {
        objectMapper.setHandlerInstantiator(this.handlerInstantiator);
    } else if (this.applicationContext != null) {
        objectMapper.setHandlerInstantiator(
                new SpringHandlerInstantiator(this.applicationContext.getAutowireCapableBeanFactory()));
    }
}