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()); }
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 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)); } }
public CodecSupplier(Class<T> clazz, Metadata metadata) { this.clazz = requireNonNull(clazz, "clazz is null"); this.metadata = requireNonNull(metadata, "metadata is null"); ObjectMapperProvider objectMapperProvider = new ObjectMapperProvider(); objectMapperProvider.setJsonDeserializers(ImmutableMap.of(Type.class, new TypeDeserializer())); this.codecFactory = new JsonCodecFactory(objectMapperProvider); }
public static SplitMonitor createTestSplitMonitor() { return new SplitMonitor( new EventListenerManager(), new ObjectMapperProvider().get()); } }
@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 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'"); } }
@BeforeMethod public void setUp() { ObjectMapper objectMapper = new ObjectMapperProvider().get(); TestingHttpClient httpClient = new TestingHttpClient(httpRequest -> httpResponse); this.queryStatsClient = new HttpQueryStatsClient(httpClient, objectMapper, BASE_URL); }
public CodecSupplier(Class<T> clazz, Metadata metadata) { this.clazz = clazz; ObjectMapperProvider objectMapperProvider = new ObjectMapperProvider(); objectMapperProvider.setJsonDeserializers(ImmutableMap.of(Type.class, new TypeDeserializer(metadata))); this.codecFactory = new JsonCodecFactory(objectMapperProvider); }
public CodecSupplier(Class<T> clazz, Metadata metadata) { this.clazz = clazz; this.metadata = metadata; ObjectMapperProvider objectMapperProvider = new ObjectMapperProvider(); objectMapperProvider.setJsonDeserializers(ImmutableMap.of(Type.class, new TypeDeserializer())); this.codecFactory = new JsonCodecFactory(objectMapperProvider); }
@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))
@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 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(); }
@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()); } }
@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())); }