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(String name, Version version) 

Source Link

Document

Constructor to use for actual reusable modules.

Usage

From source file:com.mastfrog.acteur.mongo.impl.JacksonMongoDB.java

@Override
public ObjectMapper configure(ObjectMapper om) {
    om.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
    SimpleModule sm = new SimpleModule("mongo", new Version(1, 0, 0, null, "com.timboudreau", "trackerapi"));
    sm.addSerializer(new ObjectIdSerializer());
    sm.addDeserializer(ObjectId.class, new ObjectIdDeserializer());
    om.registerModule(sm);/*ww w. j  av  a 2 s .  c  om*/
    return om;
}

From source file:org.apache.unomi.persistence.spi.CustomObjectMapper.java

public CustomObjectMapper() {
    super();//ww  w  .  ja v a  2s . co  m
    super.registerModule(new JaxbAnnotationModule());
    configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    ISO8601DateFormat dateFormat = new ISO8601DateFormat();
    dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    setDateFormat(dateFormat);
    SimpleModule deserializerModule = new SimpleModule("PropertyTypedObjectDeserializerModule",
            new Version(1, 0, 0, null, "org.apache.unomi.rest", "deserializer"));

    PropertyTypedObjectDeserializer propertyTypedObjectDeserializer = new PropertyTypedObjectDeserializer();
    propertyTypedObjectDeserializer.registerMapping("type=.*Condition", Condition.class);
    deserializerModule.addDeserializer(Object.class, propertyTypedObjectDeserializer);

    ItemDeserializer itemDeserializer = new ItemDeserializer();
    deserializerModule.addDeserializer(Item.class, itemDeserializer);

    Map<String, Class<? extends Item>> classes = new HashMap<>();
    classes.put(Campaign.ITEM_TYPE, Campaign.class);
    classes.put(CampaignEvent.ITEM_TYPE, CampaignEvent.class);
    classes.put(Event.ITEM_TYPE, Event.class);
    classes.put(Goal.ITEM_TYPE, Goal.class);
    classes.put(Persona.ITEM_TYPE, Persona.class);
    classes.put(Rule.ITEM_TYPE, Rule.class);
    classes.put(Scoring.ITEM_TYPE, Scoring.class);
    classes.put(Segment.ITEM_TYPE, Segment.class);
    classes.put(Session.ITEM_TYPE, Session.class);
    classes.put(ConditionType.ITEM_TYPE, ConditionType.class);
    classes.put(ActionType.ITEM_TYPE, ActionType.class);
    for (Map.Entry<String, Class<? extends Item>> entry : classes.entrySet()) {
        propertyTypedObjectDeserializer.registerMapping("itemType=" + entry.getKey(), entry.getValue());
        itemDeserializer.registerMapping(entry.getKey(), entry.getValue());
    }
    propertyTypedObjectDeserializer.registerMapping("itemType=.*", CustomItem.class);

    super.registerModule(deserializerModule);
}

From source file:org.jboss.aerogear.simplepush.protocol.impl.json.JsonUtil.java

private static ObjectMapper createObjectMapper() {
    om = new ObjectMapper();
    final SimpleModule module = new SimpleModule("MyModule",
            new Version(0, 10, 0, null, "org.jboss.aerogear", "aerogear-simplepush-server"));
    module.addDeserializer(MessageType.class, new MessageTypeDeserializer());

    module.addDeserializer(RegisterMessageImpl.class, new RegisterDeserializer());
    module.addSerializer(RegisterMessageImpl.class, new RegisterSerializer());
    module.addDeserializer(RegisterResponseImpl.class, new RegisterResponseDeserializer());
    module.addSerializer(RegisterResponseImpl.class, new RegisterResponseSerializer());

    module.addDeserializer(HelloMessageImpl.class, new HelloDeserializer());
    module.addSerializer(HelloMessageImpl.class, new HelloSerializer());
    module.addDeserializer(HelloResponseImpl.class, new HelloResponseDeserializer());
    module.addSerializer(HelloResponseImpl.class, new HelloResponseSerializer());

    module.addDeserializer(AckMessageImpl.class, new AckDeserializer());
    module.addSerializer(AckMessageImpl.class, new AckSerializer());

    module.addDeserializer(PingMessageImpl.class, new PingDeserializer());
    module.addSerializer(PingMessageImpl.class, new PingSerializer());

    module.addDeserializer(NotificationMessageImpl.class, new NotificationDeserializer());
    module.addSerializer(NotificationMessageImpl.class, new NotificationSerializer());

    module.addDeserializer(UnregisterMessageImpl.class, new UnregisterDeserializer());
    module.addSerializer(UnregisterMessageImpl.class, new UnregisterMessageSerializer());
    module.addDeserializer(UnregisterResponseImpl.class, new UnregisterResponseDeserializer());
    module.addSerializer(UnregisterResponseImpl.class, new UnregisterResponseSerializer());

    om.registerModule(module);/*from   w w  w  .j  a va2s . co  m*/
    return om;
}

From source file:com.cloudera.exhibit.server.main.ExhibitApplication.java

void setupMapper(ObjectMapper mapper) {
    SimpleModule mod = new SimpleModule("exhibit", Version.unknownVersion());
    mod.addSerializer(Exhibit.class, new ExhibitSerializer());
    mod.addSerializer(Frame.class, new FrameSerializer());
    mapper.registerModule(mod);// w  w w.  j  av  a  2s.c o  m
}

From source file:net.roboconf.dm.rest.commons.json.JSonBindingUtils.java

/**
 * Creates a mapper with specific binding for Roboconf types.
 * @return a non-null, configured mapper
 *//*ww w. j  a  v  a 2s  .c  om*/
public static ObjectMapper createObjectMapper() {

    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

    SimpleModule module = new SimpleModule("RoboconfModule", new Version(1, 0, 0, null, null, null));

    module.addSerializer(Instance.class, new InstanceSerializer());
    module.addDeserializer(Instance.class, new InstanceDeserializer());

    module.addSerializer(Application.class, new ApplicationSerializer());
    module.addDeserializer(Application.class, new ApplicationDeserializer());

    module.addSerializer(Component.class, new ComponentSerializer());
    module.addDeserializer(Component.class, new ComponentDeserializer());

    mapper.registerModule(module);
    return mapper;
}

From source file:ar.com.wolox.base.json.DateTimeJsonSerializationTest.java

/** Tests the serialization/deserialization process */
@Test/*from ww  w. j  a  v a  2  s.  co m*/
public void testSerializationProcess() throws Exception {
    final DateTime date = new DateTime(1988, 11, 29, 12, 0);
    final ObjectMapper mapper = new ObjectMapper();
    mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    final SimpleModule testModule = new SimpleModule("MyModule", new Version(1, 0, 0, null))
            .addDeserializer(DateTime.class, new DateTimeJsonDeserializer())
            .addSerializer(DateTime.class, new DateTimeJsonSerializer());
    mapper.registerModule(testModule);

    final String json = mapper.writeValueAsString(new Foo(date));
    final Foo deserialized = mapper.readValue(json, Foo.class);
    assertEquals(date, deserialized.getDate());
}

From source file:org.dawnsci.persistence.json.JacksonMarshaller.java

public JacksonMarshaller() {
    mapper = new ObjectMapper();
    // mapping for deserializing FunctionBean
    SimpleModule module = new SimpleModule("ParameterMapping", Version.unknownVersion());
    module.addAbstractTypeMapping(IParameter.class, Parameter.class);
    mapper.registerModule(module);/*from   w w  w .ja v  a 2 s . co m*/
}

From source file:it.eng.spagobi.behaviouralmodel.lov.service.GridMetadataContainer.java

/**
 * JSON serializer for this object/*from   w  w  w.ja  v a2  s .  c  o m*/
 * @return the network serialized
 * @throws SerializationException
 */
@JsonIgnore
public String toJSONString() throws it.eng.spagobi.commons.serializer.SerializationException {
    ObjectMapper mapper = new ObjectMapper();
    String s = "";
    try {
        SimpleModule simpleModule = new SimpleModule("SimpleModule", new Version(1, 0, 0, null));
        simpleModule.addSerializer(GridMetadataContainer.class, new GridMetadataContainerJSONSerializer());
        mapper.registerModule(simpleModule);
        s = mapper.writeValueAsString((GridMetadataContainer) this);

    } catch (Exception e) {

        throw new org.apache.commons.lang.SerializationException("Error serializing the network", e);
    }
    s = StringEscapeUtils.unescapeJavaScript(s);
    return s;
}

From source file:be.wegenenverkeer.common.resteasy.json.RestJsonMapper.java

/**
 * Add a custom serializer./* w w  w  .j  a  va2  s  . c om*/
 *
 * @param classToMap class to map
 * @param classSerializer serializer
 * @param <T> class to map
 */
public <T> void addClassSerializer(Class<? extends T> classToMap, JsonSerializer<T> classSerializer) {
    SimpleModule testModule = new SimpleModule("MyModule", new Version(1, 0, 0, null));
    testModule.addSerializer(classToMap, classSerializer);
    this.registerModule(testModule);
}

From source file:com.bazaarvoice.jolt.jsonUtil.testdomain.three.MappingTest3.java

@Test
public void testPolymorphicJacksonSerializationAndDeserialization() {
    ObjectMapper mapper = new ObjectMapper();

    SimpleModule testModule = new SimpleModule("testModule", new Version(1, 0, 0, null, null, null))
            .addDeserializer(QueryFilter.class, new QueryFilterDeserializer());

    mapper.registerModule(testModule);//  w  w w  .j a v  a  2s  .com

    // Verifying that we can pass in a custom Mapper and create a new JsonUtil
    JsonUtil jsonUtil = JsonUtils.customJsonUtil(mapper);

    String testFixture = "/jsonUtils/testdomain/two/queryFilter-realAndLogical2.json";

    // TEST JsonUtil and our deserialization logic
    QueryFilter queryFilter = jsonUtil.classpathToType(testFixture, new TypeReference<QueryFilter>() {
    });

    // Make sure the hydrated QFilter looks right
    AssertJUnit.assertTrue(queryFilter instanceof LogicalFilter3);
    AssertJUnit.assertEquals(QueryParam.AND, queryFilter.getQueryParam());
    AssertJUnit.assertTrue(queryFilter.isLogical());
    AssertJUnit.assertEquals(3, queryFilter.getFilters().size());
    AssertJUnit.assertNotNull(queryFilter.getFilters().get(QueryParam.OR));

    // Make sure one of the top level RealFilters looks right
    QueryFilter productIdFilter = queryFilter.getFilters().get(QueryParam.PRODUCTID);
    AssertJUnit.assertTrue(productIdFilter.isReal());
    AssertJUnit.assertEquals(QueryParam.PRODUCTID, productIdFilter.getQueryParam());
    AssertJUnit.assertEquals("Acme-1234", productIdFilter.getValue());

    // Make sure the nested OR looks right
    QueryFilter orFilter = queryFilter.getFilters().get(QueryParam.OR);
    AssertJUnit.assertTrue(orFilter.isLogical());
    AssertJUnit.assertEquals(QueryParam.OR, orFilter.getQueryParam());
    AssertJUnit.assertEquals(2, orFilter.getFilters().size());

    // Make sure nested AND looks right
    QueryFilter nestedAndFilter = orFilter.getFilters().get(QueryParam.AND);
    AssertJUnit.assertTrue(nestedAndFilter.isLogical());
    AssertJUnit.assertEquals(QueryParam.AND, nestedAndFilter.getQueryParam());
    AssertJUnit.assertEquals(2, nestedAndFilter.getFilters().size());

    // SERIALIZE TO STRING to test serialization logic
    String unitTestString = jsonUtil.toJsonString(queryFilter);

    // LOAD and Diffy the plain vanilla JSON versions of the documents
    Map<String, Object> actual = JsonUtils.jsonToMap(unitTestString);
    Map<String, Object> expected = JsonUtils.classpathToMap(testFixture);

    // Diffy the vanilla versions
    Diffy.Result result = diffy.diff(expected, actual);
    if (!result.isEmpty()) {
        AssertJUnit.fail("Failed.\nhere is a diff:\nexpected: " + JsonUtils.toJsonString(result.expected)
                + "\n  actual: " + JsonUtils.toJsonString(result.actual));
    }
}