aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-http-client
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-02-08 14:03:44 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-02-08 14:51:11 +0100
commitdf58faed7191c1844d8319242e20e27519d3c85e (patch)
tree2b20b6d697486bed5b79385fd983c2c7a3eff9c1 /vespa-http-client
parent21277de10864da6edd003c4537f1c069fa3501d1 (diff)
Upgrade all Jackson dependencies to 2.12.1
Diffstat (limited to 'vespa-http-client')
-rw-r--r--vespa-http-client/pom.xml10
-rw-r--r--vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/JsonReader.java3
-rw-r--r--vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/ClusterConnection.java17
-rw-r--r--vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationStats.java20
-rw-r--r--vespa-http-client/src/test/java/com/yahoo/vespa/http/client/JsonTestHelper.java15
5 files changed, 50 insertions, 15 deletions
diff --git a/vespa-http-client/pom.xml b/vespa-http-client/pom.xml
index e091af1f4f1..496b8043abb 100644
--- a/vespa-http-client/pom.xml
+++ b/vespa-http-client/pom.xml
@@ -43,6 +43,16 @@
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jsr310</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jdk8</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
<groupId>io.airlift</groupId>
<artifactId>airline</artifactId>
<version>0.6</version>
diff --git a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/JsonReader.java b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/JsonReader.java
index 7c19846b273..f4ac3326158 100644
--- a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/JsonReader.java
+++ b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/JsonReader.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.http.client.core;
import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.core.JsonFactoryBuilder;
import com.fasterxml.jackson.core.JsonParser;
import com.yahoo.vespa.http.client.FeedClient;
@@ -38,7 +39,7 @@ public class JsonReader {
*/
public static void read(InputStream inputStream, FeedClient feedClient, AtomicInteger numSent) {
try (InputStreamJsonElementBuffer jsonElementBuffer = new InputStreamJsonElementBuffer(inputStream)) {
- JsonFactory jfactory = new JsonFactory().disable(JsonFactory.Feature.CANONICALIZE_FIELD_NAMES);
+ JsonFactory jfactory = new JsonFactoryBuilder().disable(JsonFactory.Feature.CANONICALIZE_FIELD_NAMES).build();
JsonParser jParser = jfactory.createParser(jsonElementBuffer);
while (true) {
int documentStart = (int) jParser.getCurrentLocation().getCharOffset();
diff --git a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/ClusterConnection.java b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/ClusterConnection.java
index 8e55e59b3f4..16afd001c46 100644
--- a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/ClusterConnection.java
+++ b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/ClusterConnection.java
@@ -1,9 +1,10 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.http.client.core.communication;
-import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.yahoo.vespa.http.client.config.Cluster;
import com.yahoo.vespa.http.client.config.ConnectionParams;
import com.yahoo.vespa.http.client.config.Endpoint;
@@ -27,8 +28,7 @@ import java.util.concurrent.TimeUnit;
*/
public class ClusterConnection implements AutoCloseable {
- private static final JsonFactory jsonFactory = new JsonFactory();
- private static final ObjectMapper objectMapper = new ObjectMapper();
+ private static ObjectMapper jsonMapper = createMapper();
private final List<IOThread> ioThreads = new ArrayList<>();
private final int clusterId;
@@ -102,6 +102,13 @@ public class ClusterConnection implements AutoCloseable {
}
}
+ private static ObjectMapper createMapper() {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.registerModule(new Jdk8Module());
+ mapper.registerModule(new JavaTimeModule());
+ return mapper;
+ }
+
public int getClusterId() {
return clusterId;
}
@@ -149,7 +156,7 @@ public class ClusterConnection implements AutoCloseable {
public String getStatsAsJSon() throws IOException {
StringWriter stringWriter = new StringWriter();
- JsonGenerator jsonGenerator = jsonFactory.createGenerator(stringWriter);
+ JsonGenerator jsonGenerator = jsonMapper.createGenerator(stringWriter);
jsonGenerator.writeStartObject();
jsonGenerator.writeArrayFieldStart("session");
for (IOThread ioThread : ioThreads) {
@@ -160,7 +167,7 @@ public class ClusterConnection implements AutoCloseable {
jsonGenerator.writeEndObject();
jsonGenerator.writeFieldName("stats");
IOThread.ConnectionStats connectionStats = ioThread.getConnectionStats();
- objectMapper.writeValue(jsonGenerator, connectionStats);
+ jsonMapper.writeValue(jsonGenerator, connectionStats);
jsonGenerator.writeEndObject();
}
jsonGenerator.writeEndArray();
diff --git a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationStats.java b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationStats.java
index 22bc34f7dbe..c571b5d418b 100644
--- a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationStats.java
+++ b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/operationProcessor/OperationStats.java
@@ -1,9 +1,10 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.http.client.core.operationProcessor;
-import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.yahoo.vespa.http.client.config.SessionParams;
import com.yahoo.vespa.http.client.core.communication.ClusterConnection;
@@ -13,7 +14,8 @@ import java.util.List;
public class OperationStats {
- private static JsonFactory jsonFactory = new JsonFactory();
+ private static ObjectMapper jsonMapper = createMapper();
+
private final String sessionParamsAsXmlString;
private List<ClusterConnection> clusters;
private IncompleteResultsThrottler throttler;
@@ -27,12 +29,18 @@ public class OperationStats {
this.throttler = throttler;
}
+ private static ObjectMapper createMapper() {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.registerModule(new Jdk8Module());
+ mapper.registerModule(new JavaTimeModule());
+ return mapper;
+ }
+
private String generateSessionParamsAsXmlString(final SessionParams sessionParams) {
- ObjectMapper objectMapper = new ObjectMapper();
StringWriter stringWriter = new StringWriter();
try {
- JsonGenerator jsonGenerator = jsonFactory.createGenerator(stringWriter);
- objectMapper.writeValue(jsonGenerator, sessionParams); // TODO SessionParams should not be blindly serialized. This may serialize objects that are not really serializable.
+ JsonGenerator jsonGenerator = jsonMapper.createGenerator(stringWriter);
+ jsonMapper.writeValue(jsonGenerator, sessionParams); // TODO SessionParams should not be blindly serialized. This may serialize objects that are not really serializable.
return stringWriter.toString();
} catch (IOException e) {
return e.getMessage();
@@ -42,7 +50,7 @@ public class OperationStats {
public String getStatsAsJson() {
try {
StringWriter stringWriter = new StringWriter();
- JsonGenerator jsonGenerator = jsonFactory.createGenerator(stringWriter);
+ JsonGenerator jsonGenerator = jsonMapper.createGenerator(stringWriter);
jsonGenerator.writeStartObject();
jsonGenerator.writeArrayFieldStart("clusters");
for (ClusterConnection cluster : clusters) {
diff --git a/vespa-http-client/src/test/java/com/yahoo/vespa/http/client/JsonTestHelper.java b/vespa-http-client/src/test/java/com/yahoo/vespa/http/client/JsonTestHelper.java
index 0081497fb20..b2c8e7c2f4f 100644
--- a/vespa-http-client/src/test/java/com/yahoo/vespa/http/client/JsonTestHelper.java
+++ b/vespa-http-client/src/test/java/com/yahoo/vespa/http/client/JsonTestHelper.java
@@ -4,16 +4,25 @@ package com.yahoo.vespa.http.client;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.google.common.base.Joiner;
import org.hamcrest.MatcherAssert;
-import static uk.co.datumedge.hamcrest.json.SameJSONAs.sameJSONAs;
-
import java.io.UncheckedIOException;
+import static uk.co.datumedge.hamcrest.json.SameJSONAs.sameJSONAs;
+
public class JsonTestHelper {
- private static final ObjectMapper mapper = new ObjectMapper();
+ private static final ObjectMapper mapper = createMapper();
+
+ private static ObjectMapper createMapper() {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.registerModule(new Jdk8Module());
+ mapper.registerModule(new JavaTimeModule());
+ return mapper;
+ }
/**
* Convenience method to input JSON without escaping double quotes and newlines