Skip to content

Commit 96fa666

Browse files
committed
Migrate to JsonMapper API with Airlift
1 parent fd2c8ff commit 96fa666

File tree

132 files changed

+561
-571
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+561
-571
lines changed

client/trino-client/src/main/java/io/trino/client/ClientTypeSignatureParameter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import com.fasterxml.jackson.databind.DeserializationContext;
2020
import com.fasterxml.jackson.databind.JsonDeserializer;
2121
import com.fasterxml.jackson.databind.JsonNode;
22-
import com.fasterxml.jackson.databind.ObjectMapper;
2322
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
23+
import com.fasterxml.jackson.databind.json.JsonMapper;
2424
import com.google.errorprone.annotations.Immutable;
2525

2626
import java.io.IOException;
@@ -165,7 +165,7 @@ public int hashCode()
165165
public static class ClientTypeSignatureParameterDeserializer
166166
extends JsonDeserializer<ClientTypeSignatureParameter>
167167
{
168-
private static final ObjectMapper MAPPER = TrinoJsonCodec.OBJECT_MAPPER_SUPPLIER.get();
168+
private static final JsonMapper MAPPER = TrinoJsonCodec.JSON_MAPPER_SUPPLIER.get();
169169

170170
@Override
171171
public ClientTypeSignatureParameter deserialize(JsonParser jp, DeserializationContext ctxt)

client/trino-client/src/main/java/io/trino/client/JsonDecodingUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import com.fasterxml.jackson.core.JsonParser;
1717
import com.fasterxml.jackson.core.JsonToken;
18-
import com.fasterxml.jackson.databind.ObjectMapper;
18+
import com.fasterxml.jackson.databind.json.JsonMapper;
1919
import com.google.common.collect.ImmutableList;
2020

2121
import java.io.IOException;
@@ -467,13 +467,13 @@ public Object decode(JsonParser parser)
467467
private static class ObjectDecoder
468468
implements TypeDecoder
469469
{
470-
private final ObjectMapper objectMapper = new ObjectMapper();
470+
private final JsonMapper jsonMapper = new JsonMapper();
471471

472472
@Override
473473
public Object decode(JsonParser parser)
474474
throws IOException
475475
{
476-
return objectMapper.readValue(parser, Object.class);
476+
return jsonMapper.readValue(parser, Object.class);
477477
}
478478
}
479479

client/trino-client/src/main/java/io/trino/client/JsonIterators.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import com.fasterxml.jackson.core.JsonFactory;
1717
import com.fasterxml.jackson.core.JsonParser;
1818
import com.fasterxml.jackson.core.JsonToken;
19-
import com.fasterxml.jackson.databind.ObjectMapper;
19+
import com.fasterxml.jackson.databind.json.JsonMapper;
2020
import com.google.common.base.VerifyException;
2121
import com.google.common.collect.AbstractIterator;
2222
import com.google.common.io.Closer;
@@ -41,7 +41,7 @@
4141

4242
public final class JsonIterators
4343
{
44-
private static final JsonFactory JSON_FACTORY = createJsonFactory();
44+
private static final JsonMapper JSON_MAPPER = new JsonMapper(createJsonFactory());
4545

4646
private JsonIterators() {}
4747

@@ -81,7 +81,7 @@ public JsonIterator(JsonParser parser, TypeDecoder[] decoders)
8181
public JsonIterator(InputStream stream, TypeDecoder[] decoders)
8282
throws IOException
8383
{
84-
this(JSON_FACTORY.createParser(requireNonNull(stream, "stream is null")), decoders);
84+
this(JSON_MAPPER.createParser(requireNonNull(stream, "stream is null")), decoders);
8585
closer.register(stream);
8686
}
8787

@@ -154,7 +154,6 @@ public static CloseableIterator<List<Object>> forInputStream(InputStream stream,
154154
static JsonFactory createJsonFactory()
155155
{
156156
return new JsonFactory()
157-
.setCodec(new ObjectMapper())
158157
.enable(USE_FAST_DOUBLE_PARSER)
159158
.enable(USE_FAST_BIG_NUMBER_PARSER)
160159
.disable(AUTO_CLOSE_SOURCE); // We want to close source explicitly

client/trino-client/src/main/java/io/trino/client/TrinoJsonCodec.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.fasterxml.jackson.databind.DeserializationFeature;
2222
import com.fasterxml.jackson.databind.JavaType;
2323
import com.fasterxml.jackson.databind.MapperFeature;
24-
import com.fasterxml.jackson.databind.ObjectMapper;
2524
import com.fasterxml.jackson.databind.json.JsonMapper;
2625
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
2726

@@ -38,8 +37,8 @@
3837

3938
public class TrinoJsonCodec<T>
4039
{
41-
// copy of https://github.com/airlift/airlift/blob/master/json/src/main/java/io/airlift/json/ObjectMapperProvider.java
42-
static final Supplier<ObjectMapper> OBJECT_MAPPER_SUPPLIER = () -> {
40+
// copy of https://github.com/airlift/airlift/blob/master/json/src/main/java/io/airlift/json/JsonMapperProvider.java
41+
static final Supplier<JsonMapper> JSON_MAPPER_SUPPLIER = () -> {
4342
JsonFactory jsonFactory = JsonFactory.builder()
4443
/*
4544
* When multiple threads deserialize JSON responses concurrently,
@@ -82,14 +81,14 @@ public class TrinoJsonCodec<T>
8281

8382
public static <T> TrinoJsonCodec<T> jsonCodec(Class<T> type)
8483
{
85-
return new TrinoJsonCodec<>(OBJECT_MAPPER_SUPPLIER.get(), type);
84+
return new TrinoJsonCodec<>(JSON_MAPPER_SUPPLIER.get(), type);
8685
}
8786

88-
private final ObjectMapper mapper;
87+
private final JsonMapper mapper;
8988
private final Type type;
9089
private final JavaType javaType;
9190

92-
private TrinoJsonCodec(ObjectMapper mapper, Type type)
91+
private TrinoJsonCodec(JsonMapper mapper, Type type)
9392
{
9493
this.mapper = requireNonNull(mapper, "mapper is null");
9594
this.type = requireNonNull(type, "type is null");

client/trino-jdbc/src/test/java/io/trino/jdbc/TestProgressMonitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import com.google.common.collect.ImmutableSet;
1818
import io.airlift.json.JsonCodec;
1919
import io.airlift.json.JsonCodecFactory;
20-
import io.airlift.json.ObjectMapperProvider;
20+
import io.airlift.json.JsonMapperProvider;
2121
import io.trino.client.ClientTypeSignature;
2222
import io.trino.client.Column;
2323
import io.trino.client.QueryData;
@@ -55,7 +55,7 @@
5555
@Execution(SAME_THREAD)
5656
public class TestProgressMonitor
5757
{
58-
private static final JsonCodec<QueryResults> QUERY_RESULTS_CODEC = new JsonCodecFactory(new ObjectMapperProvider()
58+
private static final JsonCodec<QueryResults> QUERY_RESULTS_CODEC = new JsonCodecFactory(new JsonMapperProvider()
5959
.withModules(ImmutableSet.of(new ServerQueryDataJacksonModule())))
6060
.jsonCodec(QueryResults.class);
6161

core/trino-main/src/main/java/io/trino/operator/scalar/ArrayToJsonCast.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
*/
1414
package io.trino.operator.scalar;
1515

16-
import com.fasterxml.jackson.core.JsonFactory;
1716
import com.fasterxml.jackson.core.JsonGenerator;
17+
import com.fasterxml.jackson.databind.json.JsonMapper;
1818
import com.google.common.collect.ImmutableList;
1919
import io.airlift.slice.DynamicSliceOutput;
2020
import io.airlift.slice.Slice;
@@ -50,7 +50,7 @@ public class ArrayToJsonCast
5050

5151
private static final MethodHandle METHOD_HANDLE = methodHandle(ArrayToJsonCast.class, "toJson", JsonGeneratorWriter.class, Block.class);
5252

53-
private static final JsonFactory JSON_FACTORY = createJsonFactory();
53+
private static final JsonMapper JSON_MAPPER = new JsonMapper(createJsonFactory());
5454

5555
private ArrayToJsonCast()
5656
{
@@ -82,7 +82,7 @@ public static Slice toJson(JsonGeneratorWriter writer, Block block)
8282
{
8383
try {
8484
SliceOutput output = new DynamicSliceOutput(40);
85-
try (JsonGenerator jsonGenerator = createJsonGenerator(JSON_FACTORY, output)) {
85+
try (JsonGenerator jsonGenerator = createJsonGenerator(JSON_MAPPER, output)) {
8686
jsonGenerator.writeStartArray();
8787
for (int i = 0; i < block.getPositionCount(); i++) {
8888
writer.writeJsonValue(jsonGenerator, block, i);

core/trino-main/src/main/java/io/trino/operator/scalar/JsonExtract.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
*/
1414
package io.trino.operator.scalar;
1515

16-
import com.fasterxml.jackson.core.JsonFactory;
1716
import com.fasterxml.jackson.core.JsonGenerator;
1817
import com.fasterxml.jackson.core.JsonParseException;
1918
import com.fasterxml.jackson.core.JsonParser;
2019
import com.fasterxml.jackson.core.JsonToken;
2120
import com.fasterxml.jackson.core.io.SerializedString;
21+
import com.fasterxml.jackson.databind.json.JsonMapper;
2222
import com.google.common.collect.ImmutableList;
2323
import io.airlift.slice.DynamicSliceOutput;
2424
import io.airlift.slice.Slice;
@@ -118,16 +118,16 @@ public final class JsonExtract
118118
{
119119
private static final int ESTIMATED_JSON_OUTPUT_SIZE = 512;
120120

121-
private static final JsonFactory JSON_FACTORY = jsonFactoryBuilder()
121+
private static final JsonMapper JSON_MAPPER = new JsonMapper(jsonFactoryBuilder()
122122
.disable(CANONICALIZE_FIELD_NAMES)
123-
.build();
123+
.build());
124124

125125
private JsonExtract() {}
126126

127127
public static <T> T extract(Slice jsonInput, JsonExtractor<T> jsonExtractor)
128128
{
129129
requireNonNull(jsonInput, "jsonInput is null");
130-
try (JsonParser jsonParser = createJsonParser(JSON_FACTORY, jsonInput)) {
130+
try (JsonParser jsonParser = createJsonParser(JSON_MAPPER, jsonInput)) {
131131
return extract(jsonParser, jsonExtractor);
132132
}
133133
catch (IOException e) {
@@ -299,7 +299,7 @@ public Slice extract(JsonParser jsonParser)
299299
}
300300

301301
DynamicSliceOutput dynamicSliceOutput = new DynamicSliceOutput(ESTIMATED_JSON_OUTPUT_SIZE);
302-
try (JsonGenerator jsonGenerator = createJsonGenerator(JSON_FACTORY, dynamicSliceOutput)) {
302+
try (JsonGenerator jsonGenerator = createJsonGenerator(JSON_MAPPER, dynamicSliceOutput)) {
303303
jsonGenerator.copyCurrentStructure(jsonParser);
304304
}
305305
return dynamicSliceOutput.slice();

core/trino-main/src/main/java/io/trino/operator/scalar/JsonFunctions.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
*/
1414
package io.trino.operator.scalar;
1515

16-
import com.fasterxml.jackson.core.JsonFactory;
1716
import com.fasterxml.jackson.core.JsonParser;
1817
import com.fasterxml.jackson.core.JsonToken;
1918
import com.fasterxml.jackson.databind.MappingJsonFactory;
19+
import com.fasterxml.jackson.databind.json.JsonMapper;
2020
import com.google.common.primitives.Doubles;
2121
import io.airlift.slice.Slice;
2222
import io.trino.plugin.base.util.JsonTypeUtil;
@@ -54,12 +54,13 @@
5454

5555
public final class JsonFunctions
5656
{
57-
private static final JsonFactory JSON_FACTORY = jsonFactoryBuilder()
57+
private static final JsonMapper JSON_MAPPER = new JsonMapper(jsonFactoryBuilder()
5858
.disable(CANONICALIZE_FIELD_NAMES)
59-
.build();
59+
.build());
6060

61-
private static final JsonFactory MAPPING_JSON_FACTORY = new MappingJsonFactory()
62-
.disable(CANONICALIZE_FIELD_NAMES);
61+
private static final JsonMapper MAPPING_JSON_MAPPER = new JsonMapper(MappingJsonFactory.builder()
62+
.disable(CANONICALIZE_FIELD_NAMES)
63+
.build());
6364

6465
private JsonFunctions() {}
6566

@@ -91,7 +92,7 @@ public static boolean varcharIsJsonScalar(@SqlType("varchar(x)") Slice json)
9192
@SqlType(StandardTypes.BOOLEAN)
9293
public static boolean isJsonScalar(@SqlType(StandardTypes.JSON) Slice json)
9394
{
94-
try (JsonParser parser = createJsonParser(JSON_FACTORY, json)) {
95+
try (JsonParser parser = createJsonParser(JSON_MAPPER, json)) {
9596
JsonToken nextToken = parser.nextToken();
9697
if (nextToken == null) {
9798
throw new TrinoException(INVALID_FUNCTION_ARGUMENT, "Invalid JSON value: " + truncateIfNecessaryForErrorMessage(json));
@@ -146,7 +147,7 @@ public static Long varcharJsonArrayLength(@SqlType("varchar(x)") Slice json)
146147
@SqlType(StandardTypes.BIGINT)
147148
public static Long jsonArrayLength(@SqlType(StandardTypes.JSON) Slice json)
148149
{
149-
try (JsonParser parser = createJsonParser(JSON_FACTORY, json)) {
150+
try (JsonParser parser = createJsonParser(JSON_MAPPER, json)) {
150151
if (parser.nextToken() != START_ARRAY) {
151152
return null;
152153
}
@@ -183,7 +184,7 @@ public static Boolean varcharJsonArrayContains(@SqlType("varchar(x)") Slice json
183184
@SqlType(StandardTypes.BOOLEAN)
184185
public static Boolean jsonArrayContains(@SqlType(StandardTypes.JSON) Slice json, @SqlType(StandardTypes.BOOLEAN) boolean value)
185186
{
186-
try (JsonParser parser = createJsonParser(JSON_FACTORY, json)) {
187+
try (JsonParser parser = createJsonParser(JSON_MAPPER, json)) {
187188
if (parser.nextToken() != START_ARRAY) {
188189
return null;
189190
}
@@ -223,7 +224,7 @@ public static Boolean varcharJsonArrayContains(@SqlType("varchar(x)") Slice json
223224
@SqlType(StandardTypes.BOOLEAN)
224225
public static Boolean jsonArrayContains(@SqlType(StandardTypes.JSON) Slice json, @SqlType(StandardTypes.BIGINT) long value)
225226
{
226-
try (JsonParser parser = createJsonParser(JSON_FACTORY, json)) {
227+
try (JsonParser parser = createJsonParser(JSON_MAPPER, json)) {
227228
if (parser.nextToken() != START_ARRAY) {
228229
return null;
229230
}
@@ -268,7 +269,7 @@ public static Boolean jsonArrayContains(@SqlType(StandardTypes.JSON) Slice json,
268269
return false;
269270
}
270271

271-
try (JsonParser parser = createJsonParser(JSON_FACTORY, json)) {
272+
try (JsonParser parser = createJsonParser(JSON_MAPPER, json)) {
272273
if (parser.nextToken() != START_ARRAY) {
273274
return null;
274275
}
@@ -312,7 +313,7 @@ public static Boolean jsonArrayContains(@SqlType(StandardTypes.JSON) Slice json,
312313
{
313314
String valueString = value.toStringUtf8();
314315

315-
try (JsonParser parser = createJsonParser(JSON_FACTORY, json)) {
316+
try (JsonParser parser = createJsonParser(JSON_MAPPER, json)) {
316317
if (parser.nextToken() != START_ARRAY) {
317318
return null;
318319
}
@@ -356,7 +357,7 @@ public static Slice jsonArrayGet(@SqlType(StandardTypes.JSON) Slice json, @SqlTy
356357
return null;
357358
}
358359

359-
try (JsonParser parser = createJsonParser(MAPPING_JSON_FACTORY, json)) {
360+
try (JsonParser parser = createJsonParser(MAPPING_JSON_MAPPER, json)) {
360361
if (parser.nextToken() != START_ARRAY) {
361362
return null;
362363
}

0 commit comments

Comments
 (0)