List of usage examples for com.fasterxml.jackson.databind ObjectMapper registerModule
public ObjectMapper registerModule(Module module)
From source file:com.linecorp.bot.model.event.CallbackRequestTest.java
private void parse(String resourceName, RequestTester callback) throws IOException { try (InputStream resource = getClass().getClassLoader().getResourceAsStream(resourceName)) { String json = StreamUtils.copyToString(resource, StandardCharsets.UTF_8); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.registerModule(new JavaTimeModule()) .configure(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS, false); CallbackRequest callbackRequest = objectMapper.readValue(json, CallbackRequest.class); callback.call(callbackRequest);// www. j a va 2 s. co m } }
From source file:org.efaps.cli.rest.PrintCall.java
/** * Compile the target in the server./*from ww w.ja v a 2 s. c o m*/ * * @param _eql the _eql * @param _exportFormat the _export format * @param _fileName the _file name * @return the string */ public String execute(final String _eql, final ExportFormat _exportFormat, final String _fileName) { init(); final String fileName = StringUtils.isEmpty(_fileName) ? "export" : _fileName; final StringBuilder ret = new StringBuilder(); final Response response = getWebTarget().queryParam("origin", "eFaps-CLI").queryParam("stmt", _eql) .request(MediaType.TEXT_PLAIN_TYPE, MediaType.APPLICATION_JSON_TYPE).get(); LOG.debug("Response: {}", response); if (MediaType.APPLICATION_JSON_TYPE.equals(response.getMediaType())) { final BufferedReader br = new BufferedReader( new InputStreamReader(response.readEntity(InputStream.class))); final ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JodaModule()); try { final Object obj = mapper.readValue(br, AbstractEFapsJSON.class); StringWriter writer = null; if (obj instanceof AbstractCI) { final AbstractCI<?> ciObject = (AbstractCI<?>) obj; writer = new StringWriter(); final TreeExporter treeWriter = new TreeExporter(writer); final Row root = new Row(ciObject.getName()); root.addChild(new Row("Nature: Type")); root.addChild(new Row("UUID: " + ciObject.getUUID())); root.addChild(new Row("ID: " + ciObject.getId())); final Row attrNode = new Row("Attributes"); root.addChild(attrNode); for (final Attribute attr : ((Type) ciObject).getAttributes()) { attrNode.addChild( new Row(attr.getName(), attr.getType().getName(), attr.getType().getInfo())); } treeWriter.addRows(root); } else if (obj instanceof DataList) { final DataList tmp = (DataList) obj; final DataExporter tableWriter; boolean permitNUll = true; switch (_exportFormat) { case CSV: tableWriter = new CsvExporter(new FileOutputStream(fileName + ".csv")); ret.append("Exported to CSV."); break; case TXT: tableWriter = new TextExporter(new FileOutputStream(fileName + ".txt")); ret.append("Exported to txt."); break; case XML: tableWriter = new XmlExporter(new FileOutputStream(fileName + ".xml")); ret.append("Exported to xml."); break; default: writer = new StringWriter(); tableWriter = new TextTableExporter(writer); final LineNumberColumn lineNumberCol = new LineNumberColumn("", 1); lineNumberCol.setWidth(lineNumberCol.format(tmp.size()).length()); tableWriter.addColumns(lineNumberCol); permitNUll = false; break; } final Map<String, Column> key2Column = new LinkedHashMap<>(); for (final ObjectData objData : tmp) { for (final AbstractValue<?> val : objData.getValues()) { int length = 0; if (key2Column.containsKey(val.getKey())) { length = String.valueOf(val.getValue()).length() + 2; } else { if (val instanceof StringValue) { key2Column.put(val.getKey(), new StringColumn(val.getKey())); } else if (val instanceof DateTimeValue) { key2Column.put(val.getKey(), new StringColumn(val.getKey())); } else if (val instanceof DecimalValue) { key2Column.put(val.getKey(), new NumberColumn(val.getKey(), 1, 2)); } else if (val instanceof LongValue) { key2Column.put(val.getKey(), new NumberColumn(val.getKey(), 1, 0)); } else { key2Column.put(val.getKey(), new StringColumn(val.getKey())); } length = val.getKey().length() > String.valueOf(val.getValue()).length() ? val.getKey().length() : String.valueOf(val.getValue()).length(); } if (length > key2Column.get(val.getKey()).getWidth()) { key2Column.get(val.getKey()).setWidth(length); } } } tableWriter.addColumns(key2Column.values().toArray(new Column[key2Column.size()])); for (final ObjectData objData : tmp) { final Row row = new Row(); for (final AbstractValue<?> val : objData.getValues()) { Object value = val.getValue(); if (!permitNUll) { if (value instanceof String && ((String) value).isEmpty()) { value = " "; } } if (val instanceof StringListValue) { final StringBuilder bldr = new StringBuilder(); boolean first = true; for (final String strVal : ((StringListValue) val).getValue()) { if (first) { first = false; } else { bldr.append("\n"); } bldr.append(strVal); } value = bldr.toString(); } row.addCellValue(value); } tableWriter.addRows(row); } } else if (obj instanceof ErrorReply) { writer = new StringWriter(); writer.append(getErrorReply(response, (ErrorReply) obj)); } if (writer != null) { ret.append(writer); } } catch (final IOException e) { LOG.error("Catched", e); } } else if (MediaType.TEXT_PLAIN_TYPE.equals(response.getMediaType())) { ret.append(response.readEntity(String.class)); } else { ret.append(response.getStatusInfo().toString()); } return ret.toString(); }
From source file:io.druid.cli.validate.DruidJsonValidator.java
private void registerModules(ObjectMapper jsonMapper, Iterable<DruidModule> fromExtensions) { for (DruidModule druidModule : fromExtensions) { for (Module module : druidModule.getJacksonModules()) { jsonMapper.registerModule(module); }//from ww w .j av a 2 s . c om } }
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); // 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>() { });/*from w w w . j a va2 s . c o m*/ // 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)); } }
From source file:com.bazaarvoice.jolt.jsonUtil.testdomain.one.MappingTest1.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 QueryFilter1Deserializer()); mapper.registerModule(testModule); // Verifying that we can pass in a custom Mapper and create a new JsonUtil JsonUtil jsonUtil = JsonUtils.customJsonUtil(mapper); String testFixture = "/jsonUtils/testdomain/one/queryFilter-realAndLogical.json"; // TEST JsonUtil and our deserialization logic QueryFilter queryFilter = jsonUtil.classpathToType(testFixture, new TypeReference<QueryFilter>() { });//from ww w. j a v a 2 s.c o m // Make sure the hydrated queryFilter looks right AssertJUnit.assertTrue(queryFilter instanceof LogicalFilter1); 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)); } }
From source file:eu.trentorise.opendata.semtext.jackson.test.SemTextModuleTest.java
/** * Example with manual modules registration *//*w w w . j a va2 s . c om*/ @Test public void example1() throws JsonProcessingException, IOException { ObjectMapper om = new ObjectMapper(); om.registerModule(new GuavaModule()); om.registerModule(new OdtCommonsModule()); om.registerModule(new SemTextModule()); String json = om.writeValueAsString(SemText.of(Locale.ITALIAN, "ciao")); SemText reconstructedSemText = om.readValue(json, SemText.class); }
From source file:org.lambdamatic.internal.elasticsearch.codec.ObjectMapperFactory.java
/** * Initializes an {@link ObjectMapper} configured with mixins to support serialization and * deserialization of all built-in and user-defined domain types. * <p>/*w ww. j ava 2 s.c o m*/ * <strong>Note:</strong>The {@link ObjectMapper} is instantiated and initialized once and then * kept in cache, so multiple calls will retrieve the same instance. * </p> * * @return the {@link ObjectMapper} * */ public static ObjectMapper getObjectMapper() { if (instance.objectMapper == null) { LOGGER.info("Initializing the ObjectMapper"); final ObjectMapper mapper = new ObjectMapper(); final ExecutorService availableProcessorsThreadPool = Executors .newFixedThreadPool(Runtime.getRuntime().availableProcessors()); final Reflections reflections = new Reflections(new ConfigurationBuilder() // TODO: allow for configuration settings to reduce the scope of searching, using package // names instead of a classloader .setUrls(ClasspathHelper.forJavaClassPath()) // .setUrls(ClasspathHelper.forClassLoader()) .setScanners(new SubTypesScanner(), new TypeAnnotationsScanner()) .setExecutorService(availableProcessorsThreadPool)); // thread pool must be closed after it has been used, to avoid leaking threads in the JVM. availableProcessorsThreadPool.shutdown(); // final Reflections reflections = new Reflections(); reflections.getTypesAnnotatedWith(Mixin.class).stream().forEach(mixin -> { final Mixin mixinAnnotation = mixin.getAnnotation(Mixin.class); LOGGER.info("Adding mixin {} to {}", mixin, mixinAnnotation.target()); mapper.addMixIn(mixinAnnotation.target(), mixin); }); mapper.registerModule(new JavaTimeModule()); // configure LocalDate serialization as string with pattern: YYYY-mm-dd mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); instance.objectMapper = mapper; } return instance.objectMapper; }
From source file:com.bazaarvoice.jolt.jsonUtil.testdomain.four.MappingTest4.java
@Test public void testPolymorphicJacksonSerializationAndDeserialization() { ObjectMapper mapper = new ObjectMapper(); SimpleModule testModule = new SimpleModule("testModule", new Version(1, 0, 0, null, null, null)) .addDeserializer(QueryFilter4.class, new QueryFilter4Deserializer()); mapper.registerModule(testModule); // Verifying that we can pass in a custom Mapper and create a new JsonUtil JsonUtil jsonUtil = JsonUtils.customJsonUtil(mapper); String testFixture = "/jsonUtils/testdomain/four/queryFilter-realAndLogical4.json"; // TEST JsonUtil and our deserialization logic QueryFilter4 queryFilter = jsonUtil.classpathToType(testFixture, new TypeReference<QueryFilter4>() { });// w w w.ja v a 2s . com // Make sure the hydrated QFilter looks right AssertJUnit.assertTrue(queryFilter instanceof LogicalFilter4); 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 QueryFilter4 productIdFilter = queryFilter.getFilters().get(QueryParam.PRODUCTID); AssertJUnit.assertTrue(productIdFilter.isReal()); AssertJUnit.assertTrue(productIdFilter instanceof StringRealFilter4); StringRealFilter4 stringRealProductIdFilter = (StringRealFilter4) productIdFilter; AssertJUnit.assertEquals(QueryParam.PRODUCTID, stringRealProductIdFilter.getQueryParam()); AssertJUnit.assertEquals("Acme-1234", stringRealProductIdFilter.getValue()); // Make sure the nested OR looks right QueryFilter4 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 QueryFilter4 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)); } }
From source file:org.springframework.cloud.dataflow.rest.client.JobExecutionDeserializationTests.java
@Test public void testDeserializationOfMultipleJobExecutions() throws IOException { final ObjectMapper objectMapper = new ObjectMapper(); final InputStream inputStream = JobExecutionDeserializationTests.class .getResourceAsStream("/JobExecutionJson.txt"); final String json = new String(StreamUtils.copyToByteArray(inputStream)); objectMapper.registerModule(new Jackson2HalModule()); objectMapper.addMixIn(JobExecution.class, JobExecutionJacksonMixIn.class); objectMapper.addMixIn(JobParameters.class, JobParametersJacksonMixIn.class); objectMapper.addMixIn(JobParameter.class, JobParameterJacksonMixIn.class); objectMapper.addMixIn(JobInstance.class, JobInstanceJacksonMixIn.class); objectMapper.addMixIn(StepExecution.class, StepExecutionJacksonMixIn.class); objectMapper.addMixIn(StepExecutionHistory.class, StepExecutionHistoryJacksonMixIn.class); objectMapper.addMixIn(ExecutionContext.class, ExecutionContextJacksonMixIn.class); objectMapper.addMixIn(ExitStatus.class, ExitStatusJacksonMixIn.class); PagedResources<Resource<JobExecutionResource>> paged = objectMapper.readValue(json, new TypeReference<PagedResources<Resource<JobExecutionResource>>>() { });// w w w .ja va 2 s.c o m JobExecutionResource jobExecutionResource = paged.getContent().iterator().next().getContent(); Assert.assertEquals("Expect 1 JobExecutionInfoResource", 6, paged.getContent().size()); Assert.assertEquals(Long.valueOf(6), jobExecutionResource.getJobId()); Assert.assertEquals("job200616815", jobExecutionResource.getName()); Assert.assertEquals("COMPLETED", jobExecutionResource.getJobExecution().getStatus().name()); }