List of usage examples for com.fasterxml.jackson.databind.node JsonNodeFactory JsonNodeFactory
protected JsonNodeFactory(boolean paramBoolean)
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); }