public Batch(JsonArray jsonArray) { this.buffer = jsonArray.toBuffer(); this.type = 'A'; }
@Override public void encodeToWire(Buffer buffer, JsonArray jsonArray) { Buffer encoded = jsonArray.toBuffer(); buffer.appendInt(encoded.length()); buffer.appendBuffer(encoded); }
@Test public void testArrayMappingWithTypeReference() { JsonParser parser = JsonParser.newParser(); List<Object> values = new ArrayList<>(); parser.arrayValueMode(); parser.handler(event -> values.add(event.mapTo(new TypeReference<LinkedList<Long>>() {}))); parser.handle(new JsonArray().add(0).add(1).add(2).toBuffer()); assertEquals(Collections.singletonList(Arrays.asList(0L, 1L, 2L)), values); assertEquals(LinkedList.class, values.get(0).getClass()); }
@Test public void testArrayMapping() { JsonParser parser = JsonParser.newParser(); List<Object> values = new ArrayList<>(); parser.arrayValueMode(); parser.handler(event -> values.add(event.mapTo(LinkedList.class))); parser.handle(new JsonArray().add(0).add(1).add(2).toBuffer()); assertEquals(Collections.singletonList(Arrays.asList(0L, 1L, 2L)), values); assertEquals(LinkedList.class, values.get(0).getClass()); }
@Test public void testEncodeToBuffer() throws Exception { jsonArray.add("foo"); jsonArray.add(123); jsonArray.add(1234l); jsonArray.add(1.23f); jsonArray.add(2.34d); jsonArray.add(true); byte[] bytes = TestUtils.randomByteArray(10); jsonArray.add(bytes); jsonArray.addNull(); jsonArray.add(new JsonObject().put("foo", "bar")); jsonArray.add(new JsonArray().add("foo").add(123)); String strBytes = Base64.getEncoder().encodeToString(bytes); Buffer expected = Buffer.buffer("[\"foo\",123,1234,1.23,2.34,true,\"" + strBytes + "\",null,{\"foo\":\"bar\"},[\"foo\",123]]", "UTF-8"); Buffer json = jsonArray.toBuffer(); assertArrayEquals(expected.getBytes(), json.getBytes()); }
@Test public void testParseArrayValue() { JsonParser parser = JsonParser.newParser(); AtomicInteger status = new AtomicInteger(); parser.arrayValueMode(); JsonArray expected = new JsonArray() .add(3) .add(3.5d) .add(true) .add(false) .add("s") .addNull() .add(new JsonObject().put("foo", "bar")) .add(new JsonArray().add(0).add(1).add(2)) .add(new byte[]{1, 2, 3}); parser.handler(event -> { assertEquals(expected, event.value()); assertEquals(0, status.getAndIncrement()); }); parser.handle(expected.toBuffer()); assertEquals(1, status.get()); }
@Override public void encodeToWire(Buffer buffer, JsonArray jsonArray) { Buffer encoded = jsonArray.toBuffer(); buffer.appendInt(encoded.length()); buffer.appendBuffer(encoded); }
@Test public void testArrayMapping() { JsonParser parser = JsonParser.newParser(); List<Object> values = new ArrayList<>(); parser.arrayValueMode(); parser.handler(event -> values.add(event.mapTo(LinkedList.class))); parser.handle(new JsonArray().add(0).add(1).add(2).toBuffer()); assertEquals(Collections.singletonList(Arrays.asList(0L, 1L, 2L)), values); assertEquals(LinkedList.class, values.get(0).getClass()); }
@Test public void testArrayMappingWithTypeReference() { JsonParser parser = JsonParser.newParser(); List<Object> values = new ArrayList<>(); parser.arrayValueMode(); parser.handler(event -> values.add(event.mapTo(new TypeReference<LinkedList<Long>>() {}))); parser.handle(new JsonArray().add(0).add(1).add(2).toBuffer()); assertEquals(Collections.singletonList(Arrays.asList(0L, 1L, 2L)), values); assertEquals(LinkedList.class, values.get(0).getClass()); }
@Test public void testEncodeToBuffer() throws Exception { jsonArray.add("foo"); jsonArray.add(123); jsonArray.add(1234l); jsonArray.add(1.23f); jsonArray.add(2.34d); jsonArray.add(true); byte[] bytes = TestUtils.randomByteArray(10); jsonArray.add(bytes); jsonArray.addNull(); jsonArray.add(new JsonObject().put("foo", "bar")); jsonArray.add(new JsonArray().add("foo").add(123)); String strBytes = Base64.getEncoder().encodeToString(bytes); Buffer expected = Buffer.buffer("[\"foo\",123,1234,1.23,2.34,true,\"" + strBytes + "\",null,{\"foo\":\"bar\"},[\"foo\",123]]", "UTF-8"); Buffer json = jsonArray.toBuffer(); assertArrayEquals(expected.getBytes(), json.getBytes()); }
@Test public void testParseArrayValue() { JsonParser parser = JsonParser.newParser(); AtomicInteger status = new AtomicInteger(); parser.arrayValueMode(); JsonArray expected = new JsonArray() .add(3) .add(3.5d) .add(true) .add(false) .add("s") .addNull() .add(new JsonObject().put("foo", "bar")) .add(new JsonArray().add(0).add(1).add(2)) .add(new byte[]{1, 2, 3}); parser.handler(event -> { assertEquals(expected, event.value()); assertEquals(0, status.getAndIncrement()); }); parser.handle(expected.toBuffer()); assertEquals(1, status.get()); }
@Override public Buffer toMessages(KafkaConsumerRecords<String, byte[]> records) { JsonArray jsonArray = new JsonArray(); for (int i = 0; i <records.size(); i++){ JsonObject jsonObject = new JsonObject(); jsonObject.put("topic", records.recordAt(i).topic()); jsonObject.put("key", records.recordAt(i).key()); jsonObject.put("value", new String(records.recordAt(i).value())); jsonObject.put("partition", records.recordAt(i).partition()); jsonObject.put("offset", records.recordAt(i).offset()); jsonArray.add(jsonObject); } return jsonArray.toBuffer(); } }
.putHeader("content-type", "application/json") .setStatusCode(200) .end(operations.toBuffer()); } else { ar.cause().printStackTrace();