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

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

Introduction

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

Prototype

public ObjectMapper setSubtypeResolver(SubtypeResolver str) 

Source Link

Document

Method for setting custom subtype resolver to use.

Usage

From source file:keywhiz.testing.JsonHelpers.java

/**
 * Customized ObjectMapper for common settings.
 *
 * @return customized object mapper//from ww  w.j a va2 s.co  m
 */
private static ObjectMapper customizeObjectMapper() {
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new Jdk8Module());
    mapper.registerModule(new GuavaModule());
    mapper.registerModule(new LogbackModule());
    mapper.registerModule(new GuavaExtrasModule());
    mapper.registerModule(new FuzzyEnumModule());
    mapper.setPropertyNamingStrategy(new AnnotationSensitivePropertyNamingStrategy());
    mapper.setSubtypeResolver(new DiscoverableSubtypeResolver());
    mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    return mapper;
}

From source file:org.apache.curator.x.rpc.configuration.ConfigurationBuilder.java

public Configuration build() throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new LogbackModule());
    mapper.setPropertyNamingStrategy(new AnnotationSensitivePropertyNamingStrategy());
    SubtypeResolver subtypeResolver = new StdSubtypeResolver();
    subtypeResolver.registerSubtypes(ConsoleAppenderFactory.class, FileAppenderFactory.class,
            SyslogAppenderFactory.class, ExponentialBackoffRetryConfiguration.class,
            RetryNTimesConfiguration.class);
    mapper.setSubtypeResolver(subtypeResolver);

    ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
    ConfigurationFactoryFactory<Configuration> factoryFactory = new DefaultConfigurationFactoryFactory<Configuration>();
    ConfigurationFactory<Configuration> configurationFactory = factoryFactory.create(Configuration.class,
            validatorFactory.getValidator(), mapper, "curator");
    ConfigurationSourceProvider provider = new ConfigurationSourceProvider() {
        @Override/*from w w w. jav  a  2 s  .  c o  m*/
        public InputStream open(String path) throws IOException {
            return new ByteArrayInputStream(configurationSource.getBytes(Charset.defaultCharset()));
        }
    };
    return configurationFactory.build(provider, "");
}