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); } })
@Override public ColumnHandle deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { return new ObjectMapperProvider().get().readValue(jsonParser, TestingColumnHandle.class); } }));
@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()); }
mapper = objectMapperProvider.get();
@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)); } }
@BeforeMethod public void setUp() { ObjectMapper objectMapper = new ObjectMapperProvider().get(); TestingHttpClient httpClient = new TestingHttpClient(httpRequest -> httpResponse); this.queryStatsClient = new HttpQueryStatsClient(httpClient, objectMapper, BASE_URL); }
@Test public void testJsonSerialization() throws Exception { ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule() .addDeserializer(ColumnHandle.class, new JsonDeserializer<ColumnHandle>() { @Override public ColumnHandle deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { return new ObjectMapperProvider().get().readValue(jsonParser, TestingColumnHandle.class); } })); TestingColumnHandle columnHandle = new TestingColumnHandle("a"); LocalProperty<ColumnHandle> property1 = new ConstantProperty<>(columnHandle); assertEquals(property1, mapper.readValue(mapper.writeValueAsString(property1), new TypeReference<LocalProperty<ColumnHandle>>() {})); LocalProperty<ColumnHandle> property2 = new SortingProperty<>(columnHandle, SortOrder.ASC_NULLS_FIRST); assertEquals(property2, mapper.readValue(mapper.writeValueAsString(property2), new TypeReference<LocalProperty<ColumnHandle>>() {})); LocalProperty<ColumnHandle> property3 = new GroupingProperty<>(ImmutableList.of(columnHandle)); assertEquals(property3, mapper.readValue(mapper.writeValueAsString(property3), new TypeReference<LocalProperty<ColumnHandle>>() {})); }
@Test public void testJsonSerialization() throws Exception { TestingTypeManager typeManager = new TestingTypeManager(); TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(typeManager); ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule() .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager)) .addSerializer(Block.class, new TestingBlockJsonSerde.Serializer(blockEncodingSerde)) .addDeserializer(Block.class, new TestingBlockJsonSerde.Deserializer(blockEncodingSerde))); EquatableValueSet set = EquatableValueSet.all(ID); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); set = EquatableValueSet.none(ID); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); set = EquatableValueSet.of(ID, 1L); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); set = EquatableValueSet.of(ID, 1L, 2L); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); set = EquatableValueSet.of(ID, 1L, 2L).complement(); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); } }
TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(typeManager); ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule() .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager))
TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(typeManager); ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule() .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager))
@Test public void testJsonSerialization() throws Exception { TestingTypeManager typeManager = new TestingTypeManager(); TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(typeManager); ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule() .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager)) .addSerializer(Block.class, new TestingBlockJsonSerde.Serializer(blockEncodingSerde)) .addDeserializer(Block.class, new TestingBlockJsonSerde.Deserializer(blockEncodingSerde))); SortedRangeSet set = SortedRangeSet.all(BIGINT); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), SortedRangeSet.class)); set = SortedRangeSet.none(DOUBLE); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), SortedRangeSet.class)); set = SortedRangeSet.of(VARCHAR, utf8Slice("abc")); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), SortedRangeSet.class)); set = SortedRangeSet.of(Range.equal(BOOLEAN, true), Range.equal(BOOLEAN, false)); assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), SortedRangeSet.class)); }
@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'"); } }
@Test public void testJsonSerialization() throws Exception { TestingTypeManager typeManager = new TestingTypeManager(); TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(typeManager); ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule() .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager)) .addSerializer(Block.class, new TestingBlockJsonSerde.Serializer(blockEncodingSerde)) .addDeserializer(Block.class, new TestingBlockJsonSerde.Deserializer(blockEncodingSerde))); Domain domain = Domain.all(BIGINT); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); domain = Domain.none(DOUBLE); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); domain = Domain.notNull(BOOLEAN); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); domain = Domain.notNull(HYPER_LOG_LOG); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); domain = Domain.onlyNull(VARCHAR); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); domain = Domain.onlyNull(HYPER_LOG_LOG); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); domain = Domain.singleValue(BIGINT, Long.MIN_VALUE); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); domain = Domain.singleValue(ID, Long.MIN_VALUE); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); domain = Domain.create(ValueSet.ofRanges(Range.lessThan(BIGINT, 0L), Range.equal(BIGINT, 1L), Range.range(BIGINT, 2L, true, 3L, true)), true); assertEquals(domain, mapper.readValue(mapper.writeValueAsString(domain), Domain.class)); }
@Test public void testJsonSerialization() throws Exception { TestingTypeManager typeManager = new TestingTypeManager(); TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(typeManager); ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule() .addDeserializer(ColumnHandle.class, new JsonDeserializer<ColumnHandle>() { @Override public ColumnHandle deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { return new ObjectMapperProvider().get().readValue(jsonParser, TestingColumnHandle.class); } }) .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager)) .addSerializer(Block.class, new TestingBlockJsonSerde.Serializer(blockEncodingSerde)) .addDeserializer(Block.class, new TestingBlockJsonSerde.Deserializer(blockEncodingSerde))); TupleDomain<ColumnHandle> tupleDomain = TupleDomain.all(); assertEquals(tupleDomain, mapper.readValue(mapper.writeValueAsString(tupleDomain), new TypeReference<TupleDomain<ColumnHandle>>() {})); tupleDomain = TupleDomain.none(); assertEquals(tupleDomain, mapper.readValue(mapper.writeValueAsString(tupleDomain), new TypeReference<TupleDomain<ColumnHandle>>() {})); tupleDomain = TupleDomain.fromFixedValues(ImmutableMap.of(A, NullableValue.of(BIGINT, 1L), B, NullableValue.asNull(VARCHAR))); assertEquals(tupleDomain, mapper.readValue(mapper.writeValueAsString(tupleDomain), new TypeReference<TupleDomain<ColumnHandle>>() {})); }
@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 static SplitMonitor createTestSplitMonitor() { return new SplitMonitor( new EventListenerManager(), new ObjectMapperProvider().get()); } }
@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); }
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(); }
@VisibleForTesting void loadRecording() throws IOException { Recording recording = new ObjectMapperProvider().get().readValue(new File(recordingPath), Recording.class); allDatabases = recording.getAllDatabases(); databaseCache.putAll(toMap(recording.getDatabases())); tableCache.putAll(toMap(recording.getTables())); supportedColumnStatisticsCache.putAll(toMap(recording.getSupportedColumnStatistics())); tableStatisticsCache.putAll(toMap(recording.getTableStatistics())); partitionStatisticsCache.putAll(toMap(recording.getPartitionStatistics())); allTablesCache.putAll(toMap(recording.getAllTables())); allViewsCache.putAll(toMap(recording.getAllViews())); partitionCache.putAll(toMap(recording.getPartitions())); partitionNamesCache.putAll(toMap(recording.getPartitionNames())); partitionNamesByPartsCache.putAll(toMap(recording.getPartitionNamesByParts())); partitionsByNamesCache.putAll(toMap(recording.getPartitionsByNames())); rolesCache.putAll(toMap(recording.getRoles())); databasePrivilegesCache.putAll(toMap(recording.getDatabasePrivileges())); tablePrivilegesCache.putAll(toMap(recording.getTablePrivileges())); }