diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-11-23 16:07:43 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-11-23 16:12:51 +0100 |
commit | ef535f6c51393d945d9fe07de38de224d5ae443f (patch) | |
tree | 2f5976537a200aebbf6644b8e1ef93f2c669319d /container-search | |
parent | f966346429c85fc31c8ea962b518e02a19f77f46 (diff) |
jackson 2.16 changes some of its default settings so we consolidate our use of the ObjectMapper.
Unless special options are used, use a common instance, or create via factory metod.
Diffstat (limited to 'container-search')
6 files changed, 21 insertions, 27 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java b/container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java index 2fc032c0e44..d04ddc0c2ac 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java +++ b/container-search/src/main/java/com/yahoo/search/handler/Json2SingleLevelMap.java @@ -1,6 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.handler; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.core.JsonFactoryBuilder; import com.fasterxml.jackson.core.JsonLocation; import com.fasterxml.jackson.core.JsonParseException; @@ -42,11 +43,9 @@ class Json2SingleLevelMap { } private static ObjectMapper createMapper() { - var jsonFactory = new JsonFactoryBuilder() + return Jackson.createMapper(new JsonFactoryBuilder() .streamReadConstraints(StreamReadConstraints.builder().maxStringLength(Integer.MAX_VALUE).build()) - .configure(JsonReadFeature.ALLOW_SINGLE_QUOTES, true) - .build(); - return new ObjectMapper(jsonFactory); + .configure(JsonReadFeature.ALLOW_SINGLE_QUOTES, true)); } Map<String, String> parse() { diff --git a/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java index 2a44250904b..e2fc5baa4e3 100644 --- a/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java +++ b/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java @@ -1,13 +1,13 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.rendering; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonFactoryBuilder; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.StreamReadConstraints; import com.fasterxml.jackson.core.TreeNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Preconditions; import com.yahoo.container.logging.TraceRenderer; import com.yahoo.data.JsonProducer; @@ -177,11 +177,9 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> { } private static JsonFactory createGeneratorFactory() { - var factory = new JsonFactoryBuilder() - .streamReadConstraints(StreamReadConstraints.builder().maxStringLength(Integer.MAX_VALUE).build()) - .build(); - factory.setCodec(new ObjectMapper(factory).disable(FLUSH_AFTER_WRITE_VALUE)); - return factory; + return Jackson.createMapper(new JsonFactoryBuilder() + .streamReadConstraints(StreamReadConstraints.builder().maxStringLength(Integer.MAX_VALUE).build())) + .disable(FLUSH_AFTER_WRITE_VALUE).getFactory(); } @Override @@ -358,7 +356,7 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> { generator.writeNumberField(RELEVANCE, hit.getRelevance().getScore()); - if (hit.types().size() > 0) { + if (!hit.types().isEmpty()) { generator.writeArrayFieldStart(TYPES); for (String t : hit.types()) { generator.writeString(t); @@ -505,7 +503,7 @@ public class JsonRenderer extends AsynchronousSectionedRenderer<Result> { private boolean shouldRenderJsonCallback() { String jsonCallback = getJsonCallback(); - return jsonCallback != null && !"".equals(jsonCallback); + return jsonCallback != null && !jsonCallback.isEmpty(); } private String getJsonCallback() { diff --git a/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java index 9159728e24a..0ac527c6ce1 100644 --- a/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/handler/JSONSearchHandlerTestCase.java @@ -1,6 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.handler; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; @@ -44,7 +45,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; */ public class JSONSearchHandlerTestCase { - private static final ObjectMapper jsonMapper = new ObjectMapper(); + private static final ObjectMapper jsonMapper = Jackson.mapper(); private static final String testDir = "src/test/java/com/yahoo/search/handler/test/config"; private static final String myHostnameHeader = "my-hostname-header"; diff --git a/container-search/src/test/java/com/yahoo/search/rendering/AsyncGroupPopulationTestCase.java b/container-search/src/test/java/com/yahoo/search/rendering/AsyncGroupPopulationTestCase.java index a726a7d3c46..6c976011db1 100644 --- a/container-search/src/test/java/com/yahoo/search/rendering/AsyncGroupPopulationTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/rendering/AsyncGroupPopulationTestCase.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.rendering; -import com.fasterxml.jackson.databind.ObjectMapper; +import ai.vespa.json.Jackson; import com.yahoo.concurrent.Receiver; import com.yahoo.processing.response.Data; import com.yahoo.processing.response.DataList; @@ -88,8 +88,6 @@ public class AsyncGroupPopulationTestCase { } private static class InstrumentedGroup extends HitGroup { - private static final long serialVersionUID = 4585896586414935558L; - InstrumentedGroup(String id) { super(id, new Relevance(1), new ObservableIncoming<Hit>()); ((ObservableIncoming<Hit>) incoming()).assignOwner(this); @@ -135,9 +133,8 @@ public class AsyncGroupPopulationTestCase { Boolean b = f.get(); assertTrue(b); String rawGot = Utf8.toString(out.toByteArray()); - ObjectMapper m = new ObjectMapper(); - Map<?, ?> expected = m.readValue(rawExpected, Map.class); - Map<?, ?> got = m.readValue(rawGot, Map.class); + Map<?, ?> expected = Jackson.mapper().readValue(rawExpected, Map.class); + Map<?, ?> got = Jackson.mapper().readValue(rawGot, Map.class); assertEquals(expected, got); } diff --git a/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java b/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java index 63fbc6568c0..73cd958ee33 100644 --- a/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.rendering; -import com.fasterxml.jackson.databind.ObjectMapper; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.databind.node.ObjectNode; import com.yahoo.component.ComponentId; import com.yahoo.component.chain.Chain; @@ -90,8 +90,6 @@ import static org.junit.jupiter.api.Assertions.fail; */ public class JsonRendererTestCase { - private static final ObjectMapper jsonMapper = new ObjectMapper(); - private static ThreadPoolExecutor executor; private static JsonRenderer blueprint; private JsonRenderer renderer; @@ -571,7 +569,7 @@ public class JsonRendererTestCase { execution.search(q); new Execution(new Chain<>(), execution.context()); String summary = render(execution, r); - ObjectMapper m = new ObjectMapper(); + var m = Jackson.mapper(); Map<String, Object> exp = m.readValue(expected, Map.class); Map<String, Object> gen = m.readValue(summary, Map.class); @@ -1187,7 +1185,7 @@ public class JsonRendererTestCase { + "}"; Result r = newEmptyResult(); Hit h = new Hit("json objects"); - ObjectNode j = jsonMapper.createObjectNode(); + ObjectNode j = Jackson.mapper().createObjectNode(); JSONString s = new JSONString("{\"a\": \"b\"}"); Slime slime = new Slime(); Cursor c = slime.setObject(); @@ -1613,7 +1611,7 @@ public class JsonRendererTestCase { assertEquals("", validateJSON(expected)); assertEquals("", validateJSON(generated)); - ObjectMapper m = new ObjectMapper(); + var m = Jackson.mapper(); Map<String, Object> exp = m.readValue(expected, Map.class); Map<String, Object> gen = m.readValue(generated, Map.class); assertEquals(exp, gen); @@ -1621,7 +1619,7 @@ public class JsonRendererTestCase { private String validateJSON(String presumablyValidJson) { try { - jsonMapper.readTree(presumablyValidJson); + Jackson.mapper().readTree(presumablyValidJson); return ""; } catch (IOException e) { return e.getMessage(); diff --git a/container-search/src/test/java/com/yahoo/select/SelectTestCase.java b/container-search/src/test/java/com/yahoo/select/SelectTestCase.java index 655c47b4e6e..35609d1e209 100644 --- a/container-search/src/test/java/com/yahoo/select/SelectTestCase.java +++ b/container-search/src/test/java/com/yahoo/select/SelectTestCase.java @@ -1,6 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.select; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -48,7 +49,7 @@ import static org.junit.jupiter.api.Assertions.*; */ public class SelectTestCase { - private static final ObjectMapper jsonMapper = new ObjectMapper(); + private static final ObjectMapper jsonMapper = Jackson.mapper(); private final SelectParser parser = new SelectParser(new ParserEnvironment()); |