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

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

Introduction

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

Prototype

public ObjectMapper configure(JsonGenerator.Feature f, boolean state) 

Source Link

Document

Method for changing state of an on/off JsonGenerator feature for JsonFactory instance this object mapper uses.

Usage

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;
}