List of usage examples for com.fasterxml.jackson.databind ObjectMapper configure
public ObjectMapper configure(JsonGenerator.Feature f, boolean state)
From source file:org.apache.nifi.processors.att.m2x.GetM2XStream.java
@Override public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { final ProcessorLog logger = getLogger(); final OkHttpClient httpClient = getHttpClient(); final StateManager stateManager = context.getStateManager(); final String apiKey = context.getProperty(M2X_API_KEY).getValue(); final String apiUrl = context.getProperty(M2X_API_URL).getValue(); final String deviceId = context.getProperty(M2X_DEVICE_ID).getValue(); final String streamName = context.getProperty(M2X_STREAM_NAME).getValue(); final String streamType = context.getProperty(M2X_STREAM_TYPE).getValue(); final String startTime = getLastStartTime(context, stateManager); final String streamUrl = getStreamUrl(apiUrl, deviceId, streamName, startTime); String responseBody;// www. j av a2 s . com try { final Request request = new Request.Builder().url(streamUrl).addHeader("X-M2X-KEY", apiKey).build(); final Response response = httpClient.newCall(request).execute(); if (!response.isSuccessful()) { logger.error(response.message()); context.yield(); return; } responseBody = response.body().string(); } catch (IOException e) { logger.error(e.getMessage(), e); context.yield(); return; } final ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JodaModule()); mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); try { final M2XStreamValues m2xValues = mapper.readValue(responseBody, M2XStreamValues.class); final List<M2XStreamValue> m2xValueList = m2xValues.getValues(); if (!CollectionUtils.isEmpty(m2xValueList)) { for (final M2XStreamValue m2xValue : m2xValueList) { final DateTime timestamp = m2xValue.getTimestamp(); final Object valueObj = m2xValue.getValue(); final Set<Map.Entry<String, Object>> properties = m2xValue.getAdditionalProperties().entrySet(); final ByteArrayInputStream bytes = new ByteArrayInputStream( String.valueOf(valueObj).getBytes(StandardCharsets.UTF_8)); FlowFile newFlowFile = session.create(); newFlowFile = session.importFrom(bytes, newFlowFile); newFlowFile = session.putAttribute(newFlowFile, "m2x.device.id", deviceId); newFlowFile = session.putAttribute(newFlowFile, "m2x.stream.name", streamName); newFlowFile = session.putAttribute(newFlowFile, "m2x.stream.start", m2xValues.getStart().toString()); newFlowFile = session.putAttribute(newFlowFile, "m2x.stream.end", m2xValues.getEnd().toString()); newFlowFile = session.putAttribute(newFlowFile, "m2x.stream.limit", String.valueOf(m2xValues.getLimit())); newFlowFile = session.putAttribute(newFlowFile, "m2x.stream.value.timestamp", timestamp.toString()); newFlowFile = session.putAttribute(newFlowFile, "m2x.stream.value.millis", String.valueOf(timestamp.getMillis())); for (final Map.Entry<String, Object> e : properties) { newFlowFile = session.putAttribute(newFlowFile, "m2x.stream.value." + e.getKey(), String.valueOf(e.getValue())); } session.getProvenanceReporter().create(newFlowFile); session.transfer(newFlowFile, REL_SUCCESS); } } setLastStartTime(stateManager, m2xValues.getEnd().toString()); } catch (Throwable t) { logger.error(t.getMessage(), t); context.yield(); } }
From source file:com.xebialabs.xlt.ci.server.XLTestServerImpl.java
private ObjectMapper createMapper() { ObjectMapper mapper = new ObjectMapper(); // make things lenient... mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return mapper; }
From source file:eu.europa.ec.fisheries.uvms.spatial.service.MapConfigServiceTest.java
@Test public void TestDefaultAdminConfig() throws IOException { //Given// w w w .j a v a 2 s . co m //Read JSON from resources InputStream is = new FileInputStream("src/test/resources/Config.json"); String jsonTxt = IOUtils.toString(is); ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); ConfigurationDto configDto = mapper.readValue(jsonTxt, ConfigurationDto.class); //Test assertNotNull(configDto); }
From source file:eu.europa.ec.fisheries.uvms.spatial.service.MapConfigServiceTest.java
@Test public void TestUserConfig() throws IOException { //Given/*w ww . j a v a 2s. co m*/ //Read JSON from resources InputStream is = new FileInputStream("src/test/resources/UserConfig.json"); String jsonTxt = IOUtils.toString(is); ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); ConfigurationDto configDto = mapper.readValue(jsonTxt, ConfigurationDto.class); //Test assertNotNull(configDto); }
From source file:org.terracotta.management.entity.tms.TmsAgentTest.java
@Test public void test_basic_tms_entity() throws Exception { ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.INDENT_OUTPUT, true); try (org.terracotta.connection.Connection connection = ConnectionFactory .connect(URI.create("passthrough://server-1:9510/cluster-1"), new Properties())) { EntityRef<TmsAgentEntity, TmsAgentConfig> ref = connection.getEntityRef(TmsAgentEntity.class, TmsAgentVersion.LATEST.version(), getClass().getSimpleName()); ref.create(new TmsAgentConfig()); TmsAgentEntity entity = ref.fetchEntity(); Cluster cluster = entity.readTopology().get(); // reset runtime data expectedCluster.serverStream().forEach(expectedServer -> { Server server = cluster.getStripe("stripe-1").get().getServerByName(expectedServer.getServerName()) .get();// www . j a va 2s . c om expectedServer.setUpTimeSec(server.getUpTimeSec()); expectedServer.setStartTime(server.getStartTime()); expectedServer.setActivateTime(server.getActivateTime()); expectedServer.setBuildId(server.getBuildId()); }); long realConnectionPort = cluster.getClients().values().iterator().next().connectionStream().findFirst() .get().getClientEndpoint().getPort(); String uuid = cluster.getClients().values().iterator().next().getLogicalConnectionUid(); String expected = mapper.writeValueAsString(expectedCluster.toMap()).replace("uuid", uuid) .replace(":-1", ":" + realConnectionPort).replace(": -1", ": " + realConnectionPort); System.out.println("EXPECTED:"); System.out.println(expected); String actual = mapper.writeValueAsString(cluster.toMap()); System.out.println("ACTUAL"); System.out.println(actual); assertEquals(expected, actual); List<Message> messages = entity.readMessages().get(); assertEquals(3, messages.size()); // ensure a second read without any topology modifications leads to 0 messages assertEquals(0, entity.readMessages().get().size()); System.out.println(messages.stream().map(Message::toString).collect(Collectors.joining("\n"))); assertEquals("TOPOLOGY", messages.get(messages.size() - 1).getType()); assertEquals(cluster, messages.get(messages.size() - 1).unwrap(Cluster.class)); assertEquals("NOTIFICATION", messages.get(0).getType()); ContextualNotification firstNotif = messages.get(0).unwrap(ContextualNotification.class); assertEquals("SERVER_ENTITY_CREATED", firstNotif.getType()); assertEquals(expectedCluster.serverEntityStream().findFirst().get().getContext(), firstNotif.getContext()); assertEquals("NOTIFICATION", messages.get(1).getType()); ContextualNotification secondNotif = messages.get(1).unwrap(ContextualNotification.class); assertEquals("SERVER_ENTITY_FETCHED", secondNotif.getType()); assertEquals(expectedCluster.serverEntityStream().findFirst().get().getContext(), firstNotif.getContext()); assertEquals(expectedCluster.clientStream().findFirst().get().getClientId().replace("uuid", uuid), secondNotif.getAttributes().get(Client.KEY)); entity.readMessages().get(); // not connects a client management registry ManagementRegistry registry = new AbstractManagementRegistry() { @Override public ContextContainer getContextContainer() { return new ContextContainer("cacheManagerName", "my-cm-name"); } }; registry.addManagementProvider(new MyManagementProvider()); try (org.terracotta.connection.Connection secondConnection = ConnectionFactory .connect(URI.create("passthrough://server-1:9510/cluster-1"), new Properties())) { ManagementAgentService managementAgent = new ManagementAgentService( new ManagementAgentEntityFactory(secondConnection) .retrieveOrCreate(new ManagementAgentConfig())); managementAgent.setManagementCallExecutor(executorService); ClientIdentifier clientIdentifier = managementAgent.getClientIdentifier(); //System.out.println(clientIdentifier); assertEquals(Long.parseLong(ManagementFactory.getRuntimeMXBean().getName().split("@")[0]), clientIdentifier.getPid()); assertEquals("UNKNOWN", clientIdentifier.getName()); assertNotNull(clientIdentifier.getConnectionUid()); managementAgent.bridge(registry); managementAgent.setTags("EhcachePounder", "webapp-1", "app-server-node-1"); messages = entity.readMessages().get(); System.out.println(messages.stream().map(Message::toString).collect(Collectors.joining("\n"))); assertEquals(6, messages.size()); for (int i = 0; i < 5; i++) { assertEquals("NOTIFICATION", messages.get(0).getType()); } assertEquals("CLIENT_CONNECTED", messages.get(0).unwrap(ContextualNotification.class).getType()); assertEquals("SERVER_ENTITY_CREATED", messages.get(1).unwrap(ContextualNotification.class).getType()); assertEquals("SERVER_ENTITY_FETCHED", messages.get(2).unwrap(ContextualNotification.class).getType()); assertEquals("CLIENT_REGISTRY_UPDATED", messages.get(3).unwrap(ContextualNotification.class).getType()); assertEquals("CLIENT_TAGS_UPDATED", messages.get(4).unwrap(ContextualNotification.class).getType()); assertEquals("TOPOLOGY", messages.get(5).getType()); registry.register(new MyObject("myCacheManagerName", "myCacheName1")); registry.register(new MyObject("myCacheManagerName", "myCacheName2")); messages = entity.readMessages().get(); System.out.println(messages.stream().map(Message::toString).collect(Collectors.joining("\n"))); assertEquals(3, messages.size()); assertEquals("NOTIFICATION", messages.get(0).getType()); assertEquals("NOTIFICATION", messages.get(1).getType()); assertEquals("CLIENT_REGISTRY_UPDATED", messages.get(0).unwrap(ContextualNotification.class).getType()); assertEquals("CLIENT_REGISTRY_UPDATED", messages.get(1).unwrap(ContextualNotification.class).getType()); assertEquals("TOPOLOGY", messages.get(2).getType()); } } }
From source file:com.esri.geoportal.commons.gpt.client.Client.java
/** * Publishes a document.// w ww . jav a 2s. c o m * * @param data data to publish * @param forceAdd <code>true</code> to force add. * @return response information * @throws IOException if reading response fails * @throws URISyntaxException if URL has invalid syntax */ public PublishResponse publish(PublishRequest data, boolean forceAdd) throws IOException, URISyntaxException { ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); String json = mapper.writeValueAsString(data); StringEntity entity = new StringEntity(json); List<String> ids = !forceAdd ? queryIds(data.src_uri_s) : Collections.emptyList(); HttpRequestBase request; switch (ids.size()) { case 0: { HttpPut put = new HttpPut(url.toURI().resolve(REST_ITEM_URL)); put.setConfig(DEFAULT_REQUEST_CONFIG); put.setEntity(entity); put.setHeader("Content-Type", "application/json"); request = put; } break; case 1: { HttpPut put = new HttpPut(url.toURI().resolve(REST_ITEM_URL + "/" + ids.get(0))); put.setConfig(DEFAULT_REQUEST_CONFIG); put.setEntity(entity); put.setHeader("Content-Type", "application/json"); request = put; } break; default: throw new IOException(String.format("Error updating item: %s", data.src_uri_s)); } try (CloseableHttpResponse httpResponse = execute(request); InputStream contentStream = httpResponse.getEntity().getContent();) { if (httpResponse.getStatusLine().getStatusCode() >= 400) { throw new HttpResponseException(httpResponse.getStatusLine().getStatusCode(), httpResponse.getStatusLine().getReasonPhrase()); } String reasonMessage = httpResponse.getStatusLine().getReasonPhrase(); String responseContent = IOUtils.toString(contentStream, "UTF-8"); LOG.trace(String.format("RESPONSE: %s, %s", responseContent, reasonMessage)); return mapper.readValue(responseContent, PublishResponse.class); } }
From source file:edu.cornell.kfs.sys.web.controller.DataObjectRestServiceController.java
@RequestMapping(value = "/{namespace}/{dataobject}.json", method = RequestMethod.GET, produces = "application/json") @ResponseBody//from ww w. j a va 2 s . c om public ResponseEntity<String> getDataObjectsAsJSON(@PathVariable("namespace") String namespace, @PathVariable("dataobject") String dataobject, HttpServletRequest request) throws Exception { FinancialSystemBusinessObjectEntry boe = getBusinessObject(dataobject); validateRequest(boe, namespace, dataobject, request); try { List<Map<String, String>> resultMap = generateResultMap(request, boe); ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true); String jsonData = null; if (resultMap.size() == 1) { jsonData = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(resultMap.get(0)) .replaceFirst(HashMap.class.getSimpleName(), boe.getBusinessObjectClass().getName()); } else { jsonData = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(resultMap).replaceFirst( ArrayList.class.getSimpleName(), ArrayList.class.getSimpleName() + "<" + boe.getBusinessObjectClass().getName() + ">"); } return new ResponseEntity<String>(jsonData, HttpStatus.OK); } catch (Exception e) { LOG.error("Unexpected exception has occured.", e); throw new RuntimeException("Unexpected exception has occured."); } }
From source file:com.nesscomputing.jackson.NessObjectMapperProvider.java
@Override public ObjectMapper get() { final ObjectMapper mapper = new ObjectMapper(jsonFactory); // Set the features for (Map.Entry<Enum<?>, Boolean> entry : featureMap.entrySet()) { final Enum<?> key = entry.getKey(); if (key instanceof JsonGenerator.Feature) { mapper.configure(((JsonGenerator.Feature) key), entry.getValue()); } else if (key instanceof JsonParser.Feature) { mapper.configure(((JsonParser.Feature) key), entry.getValue()); } else if (key instanceof SerializationFeature) { mapper.configure(((SerializationFeature) key), entry.getValue()); } else if (key instanceof DeserializationFeature) { mapper.configure(((DeserializationFeature) key), entry.getValue()); } else if (key instanceof MapperFeature) { mapper.configure(((MapperFeature) key), entry.getValue()); } else {/*from w w w.j a v a 2 s. co m*/ throw new IllegalArgumentException("Can not configure ObjectMapper with " + key.name()); } } for (Module module : modules) { mapper.registerModule(module); } // by default, don't serialize null values. mapper.setSerializationInclusion(Include.NON_NULL); return mapper; }
From source file:com.github.fge.jsonschema.core.load.configuration.LoadingConfiguration.java
/** * Construct a {@link JsonNodeReader}/*from w w w .ja va 2 s . c om*/ * * @return a JSON reader * @see JsonNodeReader * @see JacksonUtils#newMapper() */ private JsonNodeReader buildReader() { final ObjectMapper mapper = JacksonUtils.newMapper(); // enable JsonParser feature configurations for (final JsonParser.Feature feature : parserFeatures) mapper.configure(feature, true); return new JsonNodeReader(mapper); }
From source file:sg.yeefan.searchenginewrapper.clients.BingClient.java
/** * Makes a query to Bing Search using a default query. *///from w w w .j ava 2s .c o m private SearchEngineResults getResults(DefaultSearchEngineQuery query) throws SearchEngineException { if (query == null) throw new SearchEngineFatalException("Missing query."); String key = query.getKey(); String label = query.getLabel(); String queryString = query.getQuery(); long startIndex = query.getStartIndex(); if (startIndex < 1) throw new SearchEngineFatalException("Start index must be at least 1."); String encodedQuery = null; try { encodedQuery = URLEncoder.encode("'" + queryString + "'", "UTF-8"); } catch (UnsupportedEncodingException e) { throw new SearchEngineFatalException(e); } long startTime = System.currentTimeMillis(); FileDownloader downloader = new FileDownloader(); String jsonString = null; try { downloader.setUserAgent( "Search Engine Wrapper (http://wing.comp.nus.edu.sg/~tanyeefa/downloads/searchenginewrapper/)"); downloader.setUsername(key); downloader.setPassword(key); String requestUrl = "https://api.datamarket.azure.com/Bing/SearchWeb/Composite?$format=json&$skip=" + (startIndex - 1) + "&Query=" + encodedQuery; byte[] bytes = downloader.download(requestUrl); jsonString = new String(bytes, "UTF-8"); } catch (FileDownloaderException e) { int code = downloader.getResponseCode(); if (code == 401) throw new SearchEngineFatalException(e); // TODO: Handle response code and error stream to check // whether quota is exceeded. throw new SearchEngineException(e); } catch (UnsupportedEncodingException e) { throw new SearchEngineException(e); } long endTime = System.currentTimeMillis(); Response response = null; try { ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); response = mapper.readValue(jsonString, Response.class); } catch (IOException e) { throw new SearchEngineException(e); } Result[] _results = response.getD().getResults(); Result result = ((_results.length > 0) ? _results[0] : new Result()); long total = 0; try { total = Long.parseLong(result.getWebTotal()); } catch (NumberFormatException e) { throw new SearchEngineException(e); } SearchEngineResults results = new SearchEngineResults(); results.setLabel(label); results.setQuery(queryString); results.setTotalResults(total); results.setStartIndex(startIndex); Web[] items = result.getWeb(); SearchEngineResult[] resultArray = new SearchEngineResult[items.length]; for (int i = 0; i < items.length; i++) { String url = items[i].getUrl(); String title = items[i].getTitle(); String snippet = items[i].getDescription(); resultArray[i] = new SearchEngineResult(); resultArray[i].setURL(url); resultArray[i].setTitle(processTitle(title)); resultArray[i].setSnippet(processSnippet(snippet)); } results.setResults(resultArray); results.setStartTime(startTime); results.setEndTime(endTime); if (items.length >= 10) { DefaultSearchEngineQuery nextQuery = new DefaultSearchEngineQuery(); nextQuery.setKey(key); nextQuery.setLabel(label); nextQuery.setQuery(queryString); nextQuery.setStartIndex(startIndex + items.length); results.setNextQuery(nextQuery); } return results; }