Example usage for com.fasterxml.jackson.databind.module SimpleModule SimpleModule

List of usage examples for com.fasterxml.jackson.databind.module SimpleModule SimpleModule

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.module SimpleModule SimpleModule.

Prototype

public SimpleModule() 

Source Link

Document

Constructors that should only be used for non-reusable convenience modules used by app code: "real" modules should use actual name and version number information.

Usage

From source file:com.netflix.discovery.converters.jackson.EurekaJsonJacksonCodec.java

private ObjectMapper createObjectMapper(KeyFormatter keyFormatter, boolean compact, boolean wrapped) {
    ObjectMapper newMapper = new ObjectMapper();
    SimpleModule jsonModule = new SimpleModule();
    jsonModule.setSerializerModifier(/*from  w ww.java  2s. co m*/
            EurekaJacksonJsonModifiers.createJsonSerializerModifier(keyFormatter, compact));

    newMapper.registerModule(jsonModule);
    newMapper.setSerializationInclusion(Include.NON_NULL);
    newMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, wrapped);
    newMapper.configure(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED, false);
    newMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, wrapped);
    newMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
    newMapper.addMixIn(Applications.class, ApplicationsJsonMixIn.class);
    if (compact) {
        addMiniConfig(newMapper);
    } else {
        newMapper.addMixIn(InstanceInfo.class, InstanceInfoJsonMixIn.class);
    }
    return newMapper;
}

From source file:org.openmhealth.shim.runkeeper.RunkeeperShimTest.java

@Test
@SuppressWarnings("unchecked")
public void testActivityNormalize() throws IOException, ProcessingException {
    URL url = Thread.currentThread().getContextClassLoader().getResource("runkeeper-activity.json");
    assert url != null;
    InputStream inputStream = url.openStream();

    ObjectMapper objectMapper = new ObjectMapper();

    RunkeeperShim.RunkeeperDataType.ACTIVITY.getNormalizer();
    SimpleModule module = new SimpleModule();
    module.addDeserializer(ShimDataResponse.class, RunkeeperShim.RunkeeperDataType.ACTIVITY.getNormalizer());

    objectMapper.registerModule(module);

    ShimDataResponse response = objectMapper.readValue(inputStream, ShimDataResponse.class);

    assertNotNull(response);/*from w  ww  .ja v a2 s.c  o m*/
    assertNotNull(response.getShim());

    Map<String, Object> map = (Map<String, Object>) response.getBody();
    assertTrue(map.containsKey(Activity.SCHEMA_ACTIVITY));

    List<Activity> activities = (List<Activity>) map.get(Activity.SCHEMA_ACTIVITY);
    assertTrue(activities != null && activities.size() == 2);

    DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("EEE, d MMM yyyy HH:mm:ss")
            .withZone(DateTimeZone.UTC);

    final String START_TIME_STRING = "Wed, 6 Aug 2014 04:49:00";
    DateTime expectedStartTimeUTC = dateFormatter.parseDateTime(START_TIME_STRING);

    Activity activity = activities.get(0);
    assertEquals(activity.getDistance().getValue(), new BigDecimal(6437.3760));
    assertEquals(activity.getDistance().getUnit(), LengthUnitValue.LengthUnit.m);
    assertEquals(activity.getActivityName(), "Rowing");
    assertEquals(activity.getEffectiveTimeFrame().getTimeInterval().getStartTime(), expectedStartTimeUTC);
    assertEquals(activity.getEffectiveTimeFrame().getTimeInterval().getDuration().getUnit(),
            DurationUnitValue.DurationUnit.sec);
    assertEquals(activity.getEffectiveTimeFrame().getTimeInterval().getDuration().getValue(),
            new BigDecimal(3600d));

    /**
     * Verify that the output from runkeeper normalizer passes
     * a schema check. Per github issue #9.
     */
    final String PHYSICAL_ACTIVITY_SCHEMA = "http://www.openmhealth.org/schema/omh/clinical/physical-activity-1.0.json";

    ObjectMapper mapper = new ObjectMapper();

    final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
    final JsonSchema schema = factory.getJsonSchema(PHYSICAL_ACTIVITY_SCHEMA);

    ProcessingReport report;

    String rawJson = mapper.writeValueAsString(activity);

    report = schema.validate(mapper.readTree(rawJson));
    System.out.println(report);

    assertTrue("Expected valid result!", report.isSuccess());
}

From source file:nebula.plugin.metrics.dispatcher.AbstractMetricsDispatcher.java

/**
 * Register Jackson module that maps enums as lowercase. Per http://stackoverflow.com/a/24173645.
 *///from  w  w  w  . j ava2 s . com
@SuppressWarnings("rawtypes")
private static void registerEnumModule(ObjectMapper mapper) {
    SimpleModule module = new SimpleModule();
    module.setDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public JsonDeserializer<Enum> modifyEnumDeserializer(DeserializationConfig config, final JavaType type,
                BeanDescription beanDesc, final JsonDeserializer<?> deserializer) {
            return new JsonDeserializer<Enum>() {
                @Override
                public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
                    @SuppressWarnings("unchecked")
                    Class<? extends Enum> rawClass = (Class<Enum<?>>) type.getRawClass();
                    return Enum.valueOf(rawClass, jp.getValueAsString().toUpperCase());
                }
            };
        }
    });
    module.addSerializer(Enum.class, new StdSerializer<Enum>(Enum.class) {
        @Override
        public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeString(value.name().toLowerCase());
        }
    });
    mapper.registerModule(module);
}

From source file:org.apache.streams.gplus.processors.GooglePlusTypeConverterIT.java

@BeforeClass
public void setup() {
    objectMapper = StreamsJacksonMapper.getInstance();
    SimpleModule simpleModule = new SimpleModule();
    simpleModule.addDeserializer(Person.class, new GPlusPersonDeserializer());
    simpleModule.addDeserializer(com.google.api.services.plus.model.Activity.class,
            new GPlusActivityDeserializer());
    objectMapper.registerModule(simpleModule);
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

    googlePlusTypeConverter = new GooglePlusTypeConverter();
    googlePlusTypeConverter.prepare(null);
}

From source file:io.apptik.comm.jus.converter.JacksonConverterFactoryTest.java

@Before
public void setUp() {
    queue = Jus.newRequestQueue();//  w w w  .  java  2s . com
    SimpleModule module = new SimpleModule();
    module.addSerializer(AnInterface.class, new AnInterfaceSerializer());
    module.addDeserializer(AnInterface.class, new AnInterfaceDeserializer());
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(module);
    mapper.configure(MapperFeature.AUTO_DETECT_GETTERS, false);
    mapper.configure(MapperFeature.AUTO_DETECT_SETTERS, false);
    mapper.configure(MapperFeature.AUTO_DETECT_IS_GETTERS, false);
    mapper.setVisibilityChecker(mapper.getSerializationConfig().getDefaultVisibilityChecker()
            .withFieldVisibility(JsonAutoDetect.Visibility.ANY));

    RetroProxy retroProxy = new RetroProxy.Builder().baseUrl(server.url("/").toString())
            .addConverterFactory(JacksonConverterFactory.create(mapper)).requestQueue(queue).build();
    service = retroProxy.create(Service.class);
}

From source file:com.joey.Fujikom.common.mapper.JsonMapper.java

public JsonMapper(Include include) {
    // ?/*from   w ww  .j a va  2  s. co m*/
    if (include != null) {
        this.setSerializationInclusion(include);
    }
    // ?????????
    this.enableSimple();
    // JSONJava
    this.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
    // ?
    this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
        @Override
        public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider)
                throws IOException, JsonProcessingException {
            jgen.writeString("");
        }
    });
    // HTML?
    this.registerModule(new SimpleModule().addSerializer(String.class, new JsonSerializer<String>() {
        @Override
        public void serialize(String value, JsonGenerator jgen, SerializerProvider provider)
                throws IOException, JsonProcessingException {
            jgen.writeString(StringEscapeUtils.unescapeHtml4(value));
        }
    }));
    // 
    this.setTimeZone(TimeZone.getDefault());//getTimeZone("GMT+8:00")
}

From source file:org.jaqpot.core.data.serialize.JacksonMongoSerializer.java

public JacksonMongoSerializer() {
    this.mapper = new ObjectMapper();
    SimpleModule module = new SimpleModule();
    module.addSerializer(DataEntry.class, new DataEntrySerializer());
    mapper.registerModule(module.setDeserializerModifier(new DataEntryDeSerializeModifier()));
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}

From source file:com.netflix.discovery.converters.jackson.EurekaXmlJacksonCodec.java

public EurekaXmlJacksonCodec(final KeyFormatter keyFormatter, boolean compact) {
    xmlMapper = new XmlMapper() {
        public ObjectMapper registerModule(Module module) {
            setSerializerFactory(getSerializerFactory().withSerializerModifier(
                    EurekaJacksonXmlModifiers.createXmlSerializerModifier(keyFormatter)));
            return super.registerModule(module);
        }//  w  ww. j a va 2 s  .c  o m
    };
    xmlMapper.setSerializationInclusion(Include.NON_NULL);
    xmlMapper.addMixIn(DataCenterInfo.class, DataCenterInfoXmlMixIn.class);
    xmlMapper.addMixIn(InstanceInfo.PortWrapper.class, PortWrapperXmlMixIn.class);
    xmlMapper.addMixIn(Application.class, ApplicationXmlMixIn.class);
    xmlMapper.addMixIn(Applications.class, ApplicationsXmlMixIn.class);
    SimpleModule xmlModule = new SimpleModule();
    xmlMapper.registerModule(xmlModule);

    if (compact) {
        addMiniConfig(xmlMapper);
    }
}

From source file:org.moserp.common.rest.ObjectMapperCustomizer.java

private void registerQuantitySerializer(ObjectMapper mapper) {
    SimpleModule module = new SimpleModule();
    module.addSerializer(Quantity.class,
            new WithConverterSerializer<>(new BigDecimalWrapperToStringConverter()));
    module.addSerializer(Price.class, new WithConverterSerializer<>(new BigDecimalWrapperToStringConverter()));
    module.addSerializer(RestUri.class, new WithConverterSerializer<>(new RestUriToStringConverter()));
    mapper.registerModule(module);// ww  w.  j a va  2s.c  o m
}

From source file:org.n52.tamis.core.test.serialize.ExecuteInputBodySerializer_Test.java

public void setupMapper() {
    input_Serializer = new ExecuteInputSerializer();
    output_Serializer = new ExecuteOutputSerializer();

    mapper = new ObjectMapper();

    SimpleModule module = new SimpleModule();
    module.addSerializer(ExecuteInput.class, input_Serializer);
    module.addSerializer(ExecuteOutput.class, output_Serializer);
    mapper.registerModule(module);//from  ww  w  .  ja v  a  2s  . c o m
}