String newMapJsonPath(String rootPath, Value elementPathValue) { String elementPath = elementPathValue.asStringValue().asString(); String newPath = new StringBuilder(rootPath).append("['").append(elementPath).append("']").toString(); return newPath; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof Value)) { return false; } Value v = (Value) o; if (!v.isStringValue()) { return false; } if (v instanceof ImmutableStringValueImpl) { ImmutableStringValueImpl bv = (ImmutableStringValueImpl) v; return Arrays.equals(data, bv.data); } else { return Arrays.equals(data, v.asStringValue().asByteArray()); } }
@Override public String deserialize( Value value, BiFunction<Value, ValueType, Object> deserialize ) { return value.asStringValue().asString(); } }
@Override public Character deserialize( Value value, BiFunction<Value, ValueType, Object> deserialize ) { String string = value.asStringValue().asString(); return string.isEmpty() ? null : string.charAt( 0 ); } }
private static void addCsvValue(Writer out, Value value) throws IOException { if (value.isStringValue()) { addCsvText(out, value.asStringValue().asString()); } else if (value.isNilValue()) { // write nothing } else { addCsvText(out, value.toJson()); } }
@Override protected String getStringFromValueState( String state, String key ) throws Exception { return MessagePack.newDefaultUnpacker( Base64.getDecoder().decode( state ) ) .unpackValue().asMapValue() .map().get( ValueFactory.newString( key ) ) .asStringValue().asString(); } }
if( EnumType.class.isAssignableFrom( valueTypeClass ) ) return (T) Enum.valueOf( (Class) valueType.primaryType(), value.asStringValue().asString() );
private void assertRecord0(byte[] formatted, long expectedTime) throws IOException { try (MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(formatted)) { Map<Value, Value> map = unpacker.unpackValue().asMapValue().map(); assertEquals(4, map.size()); assertEquals(expectedTime, map.get(KEY_TIME).asNumberValue().toLong()); assertEquals("first", map.get(KEY_NAME).asStringValue().asString()); assertEquals(42, map.get(KEY_AGE).asNumberValue().toInt()); assertEquals("hello@world.com", map.get(KEY_EMAIL).asStringValue().asString()); } }
private void assertRecord1(byte[] formatted, long expectedTime) throws IOException { try (MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(formatted)) { Map<Value, Value> map = unpacker.unpackValue().asMapValue().map(); assertEquals(4, map.size()); assertEquals(expectedTime, map.get(KEY_TIME).asNumberValue().toLong()); assertEquals("second", map.get(KEY_NAME).asStringValue().asString()); assertEquals(55, map.get(KEY_AGE).asNumberValue().toInt()); assertEquals("zzzzzz", map.get(KEY_COMMENT).asStringValue().asString()); } }
private void assertRecord2(byte[] formatted, long expectedTime) throws IOException { try (MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(formatted)) { Map<Value, Value> map = unpacker.unpackValue().asMapValue().map(); assertEquals(4, map.size()); assertEquals(expectedTime, map.get(KEY_TIME).asNumberValue().toLong()); assertEquals("third", map.get(KEY_NAME).asStringValue().asString()); assertEquals(99, map.get(KEY_AGE).asNumberValue().toInt()); assertEquals("knight", map.get(KEY_JOB).asStringValue().asString()); } }
@Test public void ingestWithAck() throws IOException { FluentdIngester.Config config = new FluentdIngester.Config(); config.setAckResponseMode(true); Ingester ingester = new FluentdIngester(config, fluentdSender); ingester.ingest(TAG, ByteBuffer.wrap(DATA)); ArgumentCaptor<byte[]> ackTokenArgumentCaptor = ArgumentCaptor.forClass(byte[].class); verify(fluentdSender, times(1)) .sendWithAck(byteBuffersArgumentCaptor.capture(), ackTokenArgumentCaptor.capture()); List<ByteBuffer> byteBuffers = byteBuffersArgumentCaptor.getAllValues().get(0); byte[] ingested = getIngestedData(byteBuffers); MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(ingested); ImmutableArrayValue arrayValue = unpacker.unpackValue().asArrayValue(); assertEquals(3, arrayValue.size()); assertEquals(TAG, arrayValue.get(0).asStringValue().asString()); assertArrayEquals(DATA, arrayValue.get(1).asRawValue().asByteArray()); Map<Value, Value> options = arrayValue.get(2).asMapValue().map(); assertEquals(2, options.size()); assertEquals(DATA.length, options.get(ValueFactory.newString("size")).asIntegerValue().asInt()); String ackToken = options.get(ValueFactory.newString("chunk")).asRawValue().asString(); UUID uuidFromAckToken = UUID.fromString(ackToken); List<byte[]> ackTokenArgumentCaptorAllValues = ackTokenArgumentCaptor.getAllValues(); assertEquals(1, ackTokenArgumentCaptorAllValues.size()); assertEquals(uuidFromAckToken, UUID.fromString(new String(ackTokenArgumentCaptorAllValues.get(0), CHARSET))); }
@Test public void ingestWithoutAck() throws IOException { Ingester ingester = new FluentdIngester(new FluentdIngester.Config(), fluentdSender); ingester.ingest(TAG, ByteBuffer.wrap(DATA)); verify(fluentdSender, times(1)).send(byteBuffersArgumentCaptor.capture()); List<ByteBuffer> byteBuffers = byteBuffersArgumentCaptor.getAllValues().get(0); byte[] ingested = getIngestedData(byteBuffers); MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(ingested); ImmutableArrayValue arrayValue = unpacker.unpackValue().asArrayValue(); assertEquals(3, arrayValue.size()); assertEquals(TAG, arrayValue.get(0).asStringValue().asString()); assertArrayEquals(DATA, arrayValue.get(1).asRawValue().asByteArray()); Map<Value, Value> options = arrayValue.get(2).asMapValue().map(); assertEquals(1, options.size()); assertEquals(DATA.length, options.get(ValueFactory.newString("size")).asIntegerValue().asInt()); }