Example usage for com.fasterxml.jackson.databind.node JsonNodeFactory JsonNodeFactory

List of usage examples for com.fasterxml.jackson.databind.node JsonNodeFactory JsonNodeFactory

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.node JsonNodeFactory JsonNodeFactory.

Prototype

protected JsonNodeFactory(boolean paramBoolean) 

Source Link

Usage

From source file:org.kiji.rest.TestRowsResource.java

protected final String createJsonArray(String... components) throws IOException {
    final JsonNodeFactory factory = new JsonNodeFactory(true);
    ArrayNode arrayNode = factory.arrayNode();
    for (String component : components) {
        JsonNode node;//from w  w  w  .ja va2 s.  com
        if (component.startsWith(KijiRestEntityId.HBASE_ROW_KEY_PREFIX)
                || component.startsWith(KijiRestEntityId.HBASE_HEX_ROW_KEY_PREFIX)) {
            node = factory.textNode(component);
        } else {
            node = stringToJsonNode(component);
        }
        arrayNode.add(node);
    }
    return arrayNode.toString();
}

From source file:org.kiji.rest.TestKijiRestEntityId.java

@Test
public void testShouldCreateListsOfEntityIds() throws Exception {
    final TableLayoutDesc desc = KijiTableLayouts.getLayout("org/kiji/rest/layouts/rkf_hashprefixed.json");
    final KijiTableLayout layout = KijiTableLayout.newLayout(desc);
    final EntityIdFactory factory = EntityIdFactory.getFactory(layout);
    final byte[] rowKey = Bytes.toBytes(UNUSUAL_STRING_EID);
    final EntityId originalEid = factory.getEntityIdFromHBaseRowKey(rowKey);

    // test the creation of entity ids from raw hbase rowkey
    final KijiRestEntityId restEid1 = KijiRestEntityId.createFromUrl(
            String.format("hbase_hex=%s", new String(Hex.encodeHex(originalEid.getHBaseRowKey()))), layout);
    final KijiRestEntityId restEid2 = KijiRestEntityId.createFromUrl(
            String.format("hbase=%s", Bytes.toStringBinary(originalEid.getHBaseRowKey())), layout);

    final JsonNodeFactory jsonNodeFactory = new JsonNodeFactory(true);
    final JsonNode hbaseHexStringNode = jsonNodeFactory
            .textNode(String.format("hbase_hex=%s", new String(Hex.encodeHex(originalEid.getHBaseRowKey()))));
    final JsonNode hbaseBinaryStringNode = jsonNodeFactory
            .textNode(String.format("hbase_hex=%s", new String(Hex.encodeHex(originalEid.getHBaseRowKey()))));
    ArrayNode hbaseListNode = jsonNodeFactory.arrayNode();
    hbaseListNode.add(hbaseHexStringNode);
    hbaseListNode.add(hbaseBinaryStringNode);

    final List<KijiRestEntityId> restEidList1 = KijiRestEntityId.createListFromUrl(hbaseListNode.toString(),
            layout);/*from w ww.  j  a v a 2 s  .  c  o m*/

    assertEquals(restEid1.resolve(layout), restEidList1.get(0).resolve(layout));
    assertEquals(restEid2.resolve(layout), restEidList1.get(1).resolve(layout));

    // test the creation of entity ids from various json strings
    final KijiRestEntityId restEid3 = KijiRestEntityId.createFromUrl("[\"Hello\",\"World\"]", layout);
    final List<KijiRestEntityId> restEidList3 = KijiRestEntityId.createListFromUrl("[[\"Hello\",\"World\"]]",
            layout);
    final KijiRestEntityId restEid4 = KijiRestEntityId.createFromUrl("[[],\"World\"]", layout);
    final List<KijiRestEntityId> restEidList4 = KijiRestEntityId
            .createListFromUrl("[[[],\"World\"],[\"Hello\",\"World\"]]", layout);

    assertEquals(restEid3.resolve(layout), restEidList3.get(0).resolve(layout));
    assertEquals(restEid4.getStringEntityId(), restEidList4.get(0).getStringEntityId());
    assertEquals(1, restEidList3.size());
    assertEquals(2, restEidList4.size());
}

From source file:squash.booking.lambdas.core.PageManager.java

/**
 * Returns JSON-encoded booking data for a specified date.
 * //from   w w  w  .  ja  v a2  s.  c  o m
 * <p>This is not private only so that it can be unit-tested.
 * 
 * @param date the date in YYYY-MM-DD format.
 * @param validDates the dates for which bookings can be made, in YYYY-MM-DD format.
 * @param bookings the bookings for the specified date.
 * @throws Exception 
 */
protected String createCachedBookingData(String date, List<String> validDates, List<Booking> bookings)
        throws Exception {

    ImmutablePair<LifecycleState, Optional<String>> lifecycleState = lifecycleManager.getLifecycleState();

    // N.B. we assume that the date is known to be a valid date
    logger.log("About to create cached booking data");
    logger.log("Lifecycle state is: " + lifecycleState.left.name());
    if (lifecycleState.left.equals(LifecycleState.RETIRED)) {
        logger.log("Lifecycle state forwarding url is: " + lifecycleState.right.get());
    }

    // Encode bookings as JSON
    // Create the node factory that gives us nodes.
    JsonNodeFactory factory = new JsonNodeFactory(false);
    // Create a json factory to write the treenode as json.
    JsonFactory jsonFactory = new JsonFactory();
    ObjectNode rootNode = factory.objectNode();

    rootNode.put("date", date);
    ArrayNode validDatesNode = rootNode.putArray("validdates");
    for (int i = 0; i < validDates.size(); i++) {
        validDatesNode.add(validDates.get(i));
    }
    ArrayNode bookingsNode = rootNode.putArray("bookings");
    for (int i = 0; i < bookings.size(); i++) {
        Booking booking = bookings.get(i);
        ObjectNode bookingNode = factory.objectNode();
        bookingNode.put("court", booking.getCourt());
        bookingNode.put("courtSpan", booking.getCourtSpan());
        bookingNode.put("slot", booking.getSlot());
        bookingNode.put("slotSpan", booking.getSlotSpan());
        bookingNode.put("name", booking.getName());
        bookingsNode.add(bookingNode);
    }
    // This gives the Angularjs app access to the lifecycle state.
    ObjectNode lifecycleStateNode = rootNode.putObject("lifecycleState");
    lifecycleStateNode.put("state", lifecycleState.left.name());
    lifecycleStateNode.put("url", lifecycleState.right.isPresent() ? lifecycleState.right.get() : "");

    ByteArrayOutputStream bookingDataStream = new ByteArrayOutputStream();
    PrintStream printStream = new PrintStream(bookingDataStream);
    try (JsonGenerator generator = jsonFactory.createGenerator(printStream)) {
        ObjectMapper mapper = new ObjectMapper();
        mapper.writeTree(generator, rootNode);
    }
    String bookingData = bookingDataStream.toString(StandardCharsets.UTF_8.name());
    logger.log("Created cached booking data: " + bookingData);

    return bookingData;
}

From source file:io.debezium.data.VerifyRecord.java

protected static void printJson(SourceRecord record) {
    JsonNode keyJson = null;/*from w  w w .  j a v a  2s  .co  m*/
    JsonNode valueJson = null;
    try {
        // First serialize and deserialize the key ...
        byte[] keyBytes = keyJsonConverter.fromConnectData(record.topic(), record.keySchema(), record.key());
        keyJson = keyJsonDeserializer.deserialize(record.topic(), keyBytes);
        // then the value ...
        byte[] valueBytes = valueJsonConverter.fromConnectData(record.topic(), record.valueSchema(),
                record.value());
        valueJson = valueJsonDeserializer.deserialize(record.topic(), valueBytes);
        // And finally get ready to print it ...
        JsonNodeFactory nodeFactory = new JsonNodeFactory(false);
        ObjectNode message = nodeFactory.objectNode();
        message.set("key", keyJson);
        message.set("value", valueJson);
        Testing.print("Message on topic '" + record.topic() + "':");
        Testing.print(prettyJson(message));
    } catch (Throwable t) {
        Testing.printError(t);
        Testing.print("Problem with message on topic '" + record.topic() + "':");
        if (keyJson != null) {
            Testing.print("valid key = " + prettyJson(keyJson));
        } else {
            Testing.print("invalid key");
        }
        if (valueJson != null) {
            Testing.print("valid value = " + prettyJson(valueJson));
        } else {
            Testing.print("invalid value");
        }
        fail(t.getMessage());
    }
}

From source file:squash.booking.lambdas.core.PageManager.java

/**
 * Returns JSON-encoded valid-dates data for a specified date.
 * //  w  w w. j a  v a  2 s  .com
 * <p>This is not private only so that it can be unit-tested.
 * 
 * @param validDates the dates for which bookings can be made, in YYYY-MM-DD format.
 * @throws IOException
 */
protected String createValidDatesData(List<String> validDates) throws IllegalArgumentException, IOException {

    // N.B. we assume that the date is known to be a valid date
    logger.log("About to create cached valid dates data");

    // Encode valid dates as JSON
    // Create the node factory that gives us nodes.
    JsonNodeFactory factory = new JsonNodeFactory(false);
    // Create a json factory to write the treenode as json.
    JsonFactory jsonFactory = new JsonFactory();
    ObjectNode rootNode = factory.objectNode();
    ArrayNode validDatesNode = rootNode.putArray("dates");
    for (int i = 0; i < validDates.size(); i++) {
        validDatesNode.add(validDates.get(i));
    }

    ByteArrayOutputStream validDatesStream = new ByteArrayOutputStream();
    PrintStream printStream = new PrintStream(validDatesStream);
    try (JsonGenerator generator = jsonFactory.createGenerator(printStream)) {
        ObjectMapper mapper = new ObjectMapper();
        mapper.writeTree(generator, rootNode);
    }
    String validDatesString = validDatesStream.toString(StandardCharsets.UTF_8.name());
    logger.log("Created cached valid dates data : " + validDatesString);

    return validDatesString;
}

From source file:com.redhat.lightblue.metadata.mongo.MongoMetadataTest.java

@Test
public void getAccessEntityVersion() throws IOException, JSONException {
    // setup parser
    Extensions<JsonNode> extensions = new Extensions<>();
    extensions.addDefaultExtensions();/*from w ww  .jav  a2  s  .  c o m*/
    extensions.registerDataStoreParser("mongo", new MongoDataStoreParser<JsonNode>());
    JSONMetadataParser parser = new JSONMetadataParser(extensions, new DefaultTypes(),
            new JsonNodeFactory(true));

    // get JsonNode representing metadata
    JsonNode jsonMetadata = AbstractJsonNodeTest
            .loadJsonNode(getClass().getSimpleName() + "-access-entity-version.json");

    // parser into EntityMetadata
    EntityMetadata e = parser.parseEntityMetadata(jsonMetadata);

    // persist
    md.createNewMetadata(e);

    // ready to test!
    Response response = md.getAccess(e.getName(), e.getVersion().getValue());

    Assert.assertNotNull(response);

    // verify response content
    Assert.assertEquals(OperationStatus.COMPLETE, response.getStatus());
    Assert.assertTrue(response.getDataErrors().isEmpty());

    // verify data
    Assert.assertNotNull(response.getEntityData());
    String jsonEntityData = response.getEntityData().toString();
    String jsonExpected = "[{\"role\":\"field.find\",\"find\":[\"test.name\"]},{\"role\":\"field.insert\",\"insert\":[\"test.name\"]},{\"role\":\"noone\",\"update\":[\"test.objectType\"]},{\"role\":\"field.update\",\"update\":[\"test.name\"]},{\"role\":\"anyone\",\"find\":[\"test.objectType\"]},{\"role\":\"entity.insert\",\"insert\":[\"test\"]},{\"role\":\"entity.update\",\"update\":[\"test\"]},{\"role\":\"entity.find\",\"find\":[\"test\"]},{\"role\":\"entity.delete\",\"delete\":[\"test\"]}]";
    JSONAssert.assertEquals(jsonExpected, jsonEntityData, false);
}

From source file:com.redhat.lightblue.metadata.mongo.MongoMetadataTest.java

@Test
public void getAccessEntityMissingDefaultVersion() throws IOException, JSONException {
    // setup parser
    Extensions<JsonNode> extensions = new Extensions<>();
    extensions.addDefaultExtensions();// w  ww. ja  v a2s .co  m
    extensions.registerDataStoreParser("mongo", new MongoDataStoreParser<JsonNode>());
    JSONMetadataParser parser = new JSONMetadataParser(extensions, new DefaultTypes(),
            new JsonNodeFactory(true));

    // get JsonNode representing metadata
    JsonNode jsonMetadata = AbstractJsonNodeTest
            .loadJsonNode(getClass().getSimpleName() + "-access-entity-missing-default-version.json");

    // parser into EntityMetadata
    EntityMetadata e = parser.parseEntityMetadata(jsonMetadata);

    // persist
    md.createNewMetadata(e);

    // ready to test!
    Response response = md.getAccess(e.getName(), null);

    Assert.assertNotNull(response);

    // verify response content
    Assert.assertEquals(OperationStatus.ERROR, response.getStatus());
    Assert.assertFalse(response.getDataErrors().isEmpty());

    // verify data
    Assert.assertNull(response.getEntityData());
}

From source file:com.redhat.lightblue.metadata.mongo.MongoMetadataTest.java

/**
 * TODO enable once mongo metadata allows falling back on default version in
 * getEntityMetadata()//from   www .  java  2s.c  o m
 *
 * @throws IOException
 * @throws JSONException
 */
@Test
public void getAccessEntityDefaultVersion() throws IOException, JSONException {
    // setup parser
    Extensions<JsonNode> extensions = new Extensions<>();
    extensions.addDefaultExtensions();
    extensions.registerDataStoreParser("mongo", new MongoDataStoreParser<JsonNode>());
    JSONMetadataParser parser = new JSONMetadataParser(extensions, new DefaultTypes(),
            new JsonNodeFactory(true));

    // get JsonNode representing metadata
    JsonNode jsonMetadata = AbstractJsonNodeTest
            .loadJsonNode(getClass().getSimpleName() + "-access-entity-default-version.json");

    // parser into EntityMetadata
    EntityMetadata e = parser.parseEntityMetadata(jsonMetadata);

    // persist
    md.createNewMetadata(e);

    // ready to test!
    Response response = md.getAccess(e.getName(), null);

    Assert.assertNotNull(response);

    // verify response content
    Assert.assertEquals(OperationStatus.COMPLETE, response.getStatus());
    Assert.assertTrue(response.getDataErrors().isEmpty());

    // verify data
    Assert.assertNotNull(response.getEntityData());
    String jsonEntityData = response.getEntityData().toString();
    String jsonExpected = "[{\"role\":\"field.find\",\"find\":[\"test.name\"]},{\"role\":\"field.insert\",\"insert\":[\"test.name\"]},{\"role\":\"field.update\",\"update\":[\"test.name\"]},{\"role\":\"noone\",\"update\":[\"test.objectType\"]},{\"role\":\"anyone\",\"find\":[\"test.objectType\"]},{\"role\":\"entity.insert\",\"insert\":[\"test\"]},{\"role\":\"entity.update\",\"update\":[\"test\"]},{\"role\":\"entity.find\",\"find\":[\"test\"]},{\"role\":\"entity.delete\",\"delete\":[\"test\"]}]";
    JSONAssert.assertEquals(jsonExpected, jsonEntityData, false);
}

From source file:com.redhat.lightblue.metadata.mongo.MongoMetadataTest.java

/**
 * TODO enable once mongo metadata allows falling back on default version in
 * getEntityMetadata()/*  ww w. j  a va2s.co  m*/
 *
 * @throws IOException
 * @throws JSONException
 */
@Test
public void getAccessSingleEntityDefaultVersion() throws IOException, JSONException {
    // setup parser
    Extensions<JsonNode> extensions = new Extensions<>();
    extensions.addDefaultExtensions();
    extensions.registerDataStoreParser("mongo", new MongoDataStoreParser<JsonNode>());
    JSONMetadataParser parser = new JSONMetadataParser(extensions, new DefaultTypes(),
            new JsonNodeFactory(true));

    // get JsonNode representing metadata
    JsonNode jsonMetadata = AbstractJsonNodeTest
            .loadJsonNode(getClass().getSimpleName() + "-access-single-entity-default-version.json");

    // parser into EntityMetadata
    EntityMetadata e = parser.parseEntityMetadata(jsonMetadata);
    // persist
    md.createNewMetadata(e);

    // ready to test!
    Response response = md.getAccess(null, null);

    Assert.assertNotNull(response);

    // verify response content
    Assert.assertEquals(OperationStatus.COMPLETE, response.getStatus());
    Assert.assertTrue(response.getDataErrors().isEmpty());

    // verify data
    Assert.assertNotNull(response.getEntityData());
    String jsonEntityData = response.getEntityData().toString();
    String jsonExpected = "[{\"role\":\"field.find\",\"find\":[\"test.name\"]},{\"role\":\"field.insert\",\"insert\":[\"test.name\"]},{\"role\":\"field.update\",\"update\":[\"test.name\"]},{\"role\":\"noone\",\"update\":[\"test.objectType\"]},{\"role\":\"anyone\",\"find\":[\"test.objectType\"]},{\"role\":\"entity.insert\",\"insert\":[\"test\"]},{\"role\":\"entity.update\",\"update\":[\"test\"]},{\"role\":\"entity.find\",\"find\":[\"test\"]},{\"role\":\"entity.delete\",\"delete\":[\"test\"]}]";
    JSONAssert.assertEquals(jsonExpected, jsonEntityData, false);
}

From source file:com.redhat.lightblue.metadata.mongo.MongoMetadataTest.java

/**
 * TODO enable once mongo metadata allows falling back on default version in
 * getEntityMetadata()//from   w w  w.  j a  va 2 s. com
 *
 * @throws IOException
 * @throws JSONException
 */
@Test
public void getAccessMultipleEntitiesDefaultVersion() throws IOException, JSONException {
    // setup parser
    Extensions<JsonNode> extensions = new Extensions<>();
    extensions.addDefaultExtensions();
    extensions.registerDataStoreParser("mongo", new MongoDataStoreParser<JsonNode>());
    JSONMetadataParser parser = new JSONMetadataParser(extensions, new DefaultTypes(),
            new JsonNodeFactory(true));

    // get JsonNode representing metadata
    JsonNode jsonMetadata = AbstractJsonNodeTest
            .loadJsonNode(getClass().getSimpleName() + "-access-multiple-entities-default-version.json");

    ArrayNode an = (ArrayNode) jsonMetadata;
    Iterator<JsonNode> itr = an.iterator();
    while (itr.hasNext()) {
        // parser into EntityMetadata
        EntityMetadata e = parser.parseEntityMetadata(itr.next());

        // persist
        md.createNewMetadata(e);
    }

    // ready to test!
    Response response = md.getAccess(null, null);

    Assert.assertNotNull(response);

    // verify response content
    Assert.assertEquals(OperationStatus.PARTIAL, response.getStatus());
    Assert.assertFalse(response.getDataErrors().isEmpty());
    Assert.assertEquals(1, response.getDataErrors().size());
    String jsonErrorExpected = "[{\"data\":{\"name\":\"test2\"},\"errors\":[{\"objectType\":\"error\",\"errorCode\":\"ERR_NO_METADATA\",\"msg\":\"Could not get metadata for given input. Error message: version\"}]}]";
    JSONAssert.assertEquals(jsonErrorExpected, response.getDataErrors().toString(), false);

    // verify data
    Assert.assertNotNull(response.getEntityData());
    String jsonEntityData = response.getEntityData().toString();
    String jsonExpected = "[{\"role\":\"field.find\",\"find\":[\"test1.name\",\"test3.name\"]},{\"role\":\"field.insert\",\"insert\":[\"test1.name\",\"test3.name\"]},{\"role\":\"noone\",\"update\":[\"test1.objectType\",\"test3.objectType\"]},{\"role\":\"field.update\",\"update\":[\"test1.name\",\"test3.name\"]},{\"role\":\"anyone\",\"find\":[\"test1.objectType\",\"test3.objectType\"]},{\"role\":\"entity.insert\",\"insert\":[\"test1\",\"test3\"]},{\"role\":\"entity.update\",\"update\":[\"test1\",\"test3\"]},{\"role\":\"entity.find\",\"find\":[\"test1\",\"test3\"]},{\"role\":\"entity.delete\",\"delete\":[\"test1\",\"test3\"]}]";
    JSONAssert.assertEquals(jsonExpected, jsonEntityData, false);
}