Refine search
@Test public void testJsonSerialization() throws Exception { TestingTypeManager typeManager = new TestingTypeManager(); ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule().addDeserializer(Type.class, new TestingTypeDeserializer(typeManager))); AllOrNoneValueSet all = AllOrNoneValueSet.all(HYPER_LOG_LOG); assertEquals(all, mapper.readValue(mapper.writeValueAsString(all), AllOrNoneValueSet.class)); AllOrNoneValueSet none = AllOrNoneValueSet.none(HYPER_LOG_LOG); assertEquals(none, mapper.readValue(mapper.writeValueAsString(none), AllOrNoneValueSet.class)); } }
@Test public void testSerializationRoundTrip() { ObjectMapperProvider objectMapperProvider = new ObjectMapperProvider(); objectMapperProvider.setJsonDeserializers(ImmutableMap.of(Type.class, new TypeDeserializer(new TypeRegistry()))); JsonCodec<Signature> codec = new JsonCodecFactory(objectMapperProvider, true).jsonCodec(Signature.class); Signature expected = new Signature( "function", SCALAR, parseTypeSignature(StandardTypes.BIGINT), ImmutableList.of(parseTypeSignature(StandardTypes.BOOLEAN), parseTypeSignature(StandardTypes.DOUBLE), parseTypeSignature(StandardTypes.VARCHAR))); String json = codec.toJson(expected); Signature actual = codec.fromJson(json); assertEquals(actual.getName(), expected.getName()); assertEquals(actual.getKind(), expected.getKind()); assertEquals(actual.getReturnType(), expected.getReturnType()); assertEquals(actual.getArgumentTypes(), expected.getArgumentTypes()); } }
public static <T> T parseJson(Path path, Class<T> javaType) { if (!path.isAbsolute()) { path = path.toAbsolutePath(); } checkArgument(exists(path), "File does not exist: %s", path); checkArgument(isReadable(path), "File is not readable: %s", path); try { byte[] json = Files.readAllBytes(path); ObjectMapper mapper = new ObjectMapperProvider().get() .enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); return mapper.readValue(json, javaType); } catch (IOException e) { throw new IllegalArgumentException(format("Invalid JSON file '%s' for '%s'", path, javaType), e); } } }
@Override public ColumnHandle deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { return new ObjectMapperProvider().get().readValue(jsonParser, TestingColumnHandle.class); } })
private static JsonCodec<ViewDefinition> createTestingViewCodec() { ObjectMapperProvider provider = new ObjectMapperProvider(); provider.setJsonDeserializers(ImmutableMap.of(Type.class, new TypeDeserializer(new TypeRegistry()))); return new JsonCodecFactory(provider).jsonCodec(ViewDefinition.class); }
@Test public void testNonExistent() throws Exception { byte[] json = "{}".getBytes(StandardCharsets.UTF_8); JsonRowDecoder rowDecoder = new JsonRowDecoder(PROVIDER.get()); DecoderTestColumnHandle row1 = new DecoderTestColumnHandle("", 0, "row1", VarcharType.VARCHAR, "very/deep/varchar", null, null, false, false, false); DecoderTestColumnHandle row2 = new DecoderTestColumnHandle("", 1, "row2", BigintType.BIGINT, "no_bigint", null, null, false, false, false); DecoderTestColumnHandle row3 = new DecoderTestColumnHandle("", 2, "row3", DoubleType.DOUBLE, "double/is_missing", null, null, false, false, false); DecoderTestColumnHandle row4 = new DecoderTestColumnHandle("", 3, "row4", BooleanType.BOOLEAN, "hello", null, null, false, false, false); List<DecoderColumnHandle> columns = ImmutableList.of(row1, row2, row3, row4); Set<FieldValueProvider> providers = new HashSet<>(); boolean corrupt = rowDecoder.decodeRow(json, null, providers, columns, buildMap(columns)); assertFalse(corrupt); assertEquals(providers.size(), columns.size()); checkIsNull(providers, row1); checkIsNull(providers, row2); checkIsNull(providers, row3); checkIsNull(providers, row4); }
@Test public void testHeartbeatStatsSerialization() throws Exception { ObjectMapper objectMapper = new ObjectMapperProvider().get(); Stats stats = new Stats(new URI("http://example.com")); String serialized = objectMapper.writeValueAsString(stats); JsonNode deserialized = objectMapper.readTree(serialized); assertFalse(deserialized.has("lastFailureInfo")); stats.recordFailure(new SocketTimeoutException("timeout")); serialized = objectMapper.writeValueAsString(stats); deserialized = objectMapper.readTree(serialized); assertFalse(deserialized.get("lastFailureInfo").isNull()); assertEquals(deserialized.get("lastFailureInfo").get("type").asText(), SocketTimeoutException.class.getName()); }
@Test public void testHashCounts() throws Exception { SetDigest digest1 = new SetDigest(); digest1.add(0); digest1.add(0); digest1.add(1); SetDigest digest2 = new SetDigest(); digest2.add(0); digest2.add(0); digest2.add(2); digest2.add(2); ObjectMapper mapper = new ObjectMapperProvider().get(); Slice slice = hashCounts(digest1.serialize()); Map<Long, Short> counts = mapper.readValue(slice.toStringUtf8(), new TypeReference<Map<Long, Short>>() {}); Set<Short> expected = ImmutableSet.of((short) 1, (short) 2); assertEquals(counts.values(), expected); digest1.mergeWith(digest2); slice = hashCounts(digest1.serialize()); counts = mapper.readValue(slice.toStringUtf8(), new TypeReference<Map<Long, Short>>() {}); expected = ImmutableSet.of((short) 1, (short) 2, (short) 4); assertEquals(ImmutableSet.copyOf(counts.values()), expected); }
@Override public ObjectMapper get() ObjectMapper objectMapper = new ObjectMapper(); objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); objectMapper.disable(DeserializationFeature.ACCEPT_FLOAT_AS_INT); SimpleModule module = new SimpleModule(getClass().getName(), new Version(1, 0, 0, null, null, null)); if (jsonSerializers != null) { for (Entry<Class<?>, JsonSerializer<?>> entry : jsonSerializers.entrySet()) { addSerializer(module, entry.getKey(), entry.getValue()); addDeserializer(module, entry.getKey(), entry.getValue()); addKeySerializer(module, entry.getKey(), entry.getValue()); module.addKeyDeserializer(entry.getKey(), entry.getValue());
private JsonNode jsonpRequest(URI uri) throws IOException { uri = uriBuilderFrom(uri) .addParameter("jsonp", "test") .build(); Request request = prepareGet().setUri(uri).build(); StringResponse response = client.execute(request, createStringResponseHandler()); assertEquals(response.getStatusCode(), 200, response.getBody()); assertContentType(response, JSON_UTF_8); String jsonp = response.getBody().trim(); assertTrue(jsonp.startsWith("test("), jsonp); assertTrue(jsonp.endsWith(")"), jsonp); jsonp = jsonp.substring(5, jsonp.length() - 1); return new ObjectMapperProvider().get().readTree(jsonp); }
@Test public void testInvalidFormatHint() { DecoderTestColumnHandle columnHandle = new DecoderTestColumnHandle( 0, "some_column", TIMESTAMP, "mappedField", "custom-date-time", "XXMM/yyyy/dd H:m:sXX", false, false, false); assertThatThrownBy(() -> new JsonRowDecoderFactory(new ObjectMapperProvider().get()).create(emptyMap(), ImmutableSet.of(columnHandle))) .isInstanceOf(PrestoException.class) .hasMessageMatching("invalid joda pattern 'XXMM/yyyy/dd H:m:sXX' passed as format hint for column 'some_column'"); } }
@Managed public void writeRecording() throws IOException { if (replay) { throw new IllegalStateException("Cannot write recording in replay mode"); } Recording recording = new Recording( allDatabases, toPairs(databaseCache), toPairs(tableCache), toPairs(supportedColumnStatisticsCache), toPairs(tableStatisticsCache), toPairs(partitionStatisticsCache), toPairs(allTablesCache), toPairs(allViewsCache), toPairs(partitionCache), toPairs(partitionNamesCache), toPairs(partitionNamesByPartsCache), toPairs(partitionsByNamesCache), toPairs(rolesCache), toPairs(databasePrivilegesCache), toPairs(tablePrivilegesCache)); new ObjectMapperProvider().get() .writerWithDefaultPrettyPrinter() .writeValue(new File(recordingPath), recording); }
public ObjectMapper get() { return new ObjectMapperProvider().get().enable(INDENT_OUTPUT); } });
@BeforeMethod public void setUp() { ObjectMapper objectMapper = new ObjectMapperProvider().get(); TestingHttpClient httpClient = new TestingHttpClient(httpRequest -> httpResponse); this.queryStatsClient = new HttpQueryStatsClient(httpClient, objectMapper, BASE_URL); }
public TestWindowNode() { // dependencies copied from ServerMainModule.java to avoid depending on whole ServerMainModule here SqlParser sqlParser = new SqlParser(); ObjectMapperProvider provider = new ObjectMapperProvider(); provider.setJsonSerializers(ImmutableMap.of( Slice.class, new SliceSerializer(), Expression.class, new Serialization.ExpressionSerializer())); provider.setJsonDeserializers(ImmutableMap.of( Slice.class, new SliceDeserializer(), Expression.class, new Serialization.ExpressionDeserializer(sqlParser), FunctionCall.class, new Serialization.FunctionCallDeserializer(sqlParser))); objectMapper = provider.get(); }
ObjectMapperProvider objectMapperProvider = new ObjectMapperProvider(); objectMapperProvider.setJsonDeserializers(ImmutableMap.of(Type.class, new AccumuloModule.TypeDeserializer(typeManager))); mapper = objectMapperProvider.get();
public JsonCodecFactory() { this(new ObjectMapperProvider()); }
@Test public void testStringNumber() throws Exception { byte[] json = "{\"a_number\":481516,\"a_string\":\"2342\"}".getBytes(StandardCharsets.UTF_8); JsonRowDecoder rowDecoder = new JsonRowDecoder(PROVIDER.get()); DecoderTestColumnHandle row1 = new DecoderTestColumnHandle("", 0, "row1", VarcharType.VARCHAR, "a_number", null, null, false, false, false); DecoderTestColumnHandle row2 = new DecoderTestColumnHandle("", 1, "row2", BigintType.BIGINT, "a_number", null, null, false, false, false); DecoderTestColumnHandle row3 = new DecoderTestColumnHandle("", 2, "row3", VarcharType.VARCHAR, "a_string", null, null, false, false, false); DecoderTestColumnHandle row4 = new DecoderTestColumnHandle("", 3, "row4", BigintType.BIGINT, "a_string", null, null, false, false, false); List<DecoderColumnHandle> columns = ImmutableList.of(row1, row2, row3, row4); Set<FieldValueProvider> providers = new HashSet<>(); boolean corrupt = rowDecoder.decodeRow(json, null, providers, columns, buildMap(columns)); assertFalse(corrupt); assertEquals(providers.size(), columns.size()); checkValue(providers, row1, "481516"); checkValue(providers, row2, 481516); checkValue(providers, row3, "2342"); checkValue(providers, row4, 2342); } }
@Test public void testHeartbeatStatsSerialization() throws Exception { ObjectMapper objectMapper = new ObjectMapperProvider().get(); Stats stats = new Stats(new URI("http://example.com")); String serialized = objectMapper.writeValueAsString(stats); JsonNode deserialized = objectMapper.readTree(serialized); assertFalse(deserialized.has("lastFailureInfo")); stats.recordFailure(new SocketTimeoutException("timeout")); serialized = objectMapper.writeValueAsString(stats); deserialized = objectMapper.readTree(serialized); assertFalse(deserialized.get("lastFailureInfo").isNull()); assertEquals(deserialized.get("lastFailureInfo").get("type").asText(), SocketTimeoutException.class.getName()); }
@Test public void testHashCounts() throws Exception { SetDigest digest1 = new SetDigest(); digest1.add(0); digest1.add(0); digest1.add(1); SetDigest digest2 = new SetDigest(); digest2.add(0); digest2.add(0); digest2.add(2); digest2.add(2); ObjectMapper mapper = new ObjectMapperProvider().get(); Slice slice = hashCounts(digest1.serialize()); Map<Long, Short> counts = mapper.readValue(slice.toStringUtf8(), new TypeReference<Map<Long, Short>>() {}); Set<Short> expected = ImmutableSet.of((short) 1, (short) 2); assertEquals(counts.values(), expected); digest1.mergeWith(digest2); slice = hashCounts(digest1.serialize()); counts = mapper.readValue(slice.toStringUtf8(), new TypeReference<Map<Long, Short>>() {}); expected = ImmutableSet.of((short) 1, (short) 2, (short) 4); assertEquals(ImmutableSet.copyOf(counts.values()), expected); }