summaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/json/Jackson.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/main/java/com/yahoo/json/Jackson.java')
-rw-r--r--container-core/src/main/java/com/yahoo/json/Jackson.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/json/Jackson.java b/container-core/src/main/java/com/yahoo/json/Jackson.java
new file mode 100644
index 00000000000..41a1ada5cc8
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/json/Jackson.java
@@ -0,0 +1,27 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.json;
+
+import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.core.JsonFactoryBuilder;
+import com.fasterxml.jackson.core.StreamReadFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class Jackson {
+ private static final ObjectMapper mapperInstance = createMapper();
+ /// Create an ObjectMapper based on given factory, adds additional recommended settings
+ public static ObjectMapper createMapper() {
+ return createMapper(new JsonFactoryBuilder());
+ }
+
+ /// Create an ObjectMapper based on given factory, adds additional recommended settings
+ public static ObjectMapper createMapper(JsonFactoryBuilder jsonFactoryBuilder) {
+ JsonFactory jsonFactory = jsonFactoryBuilder
+ // This changes in 2.16, needs to consider what to do
+ .configure(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION, true)
+ .build();
+ return new ObjectMapper(jsonFactory);
+ }
+
+ /// Return a default ObjectMapper with recommended settings
+ public static ObjectMapper mapper() { return mapperInstance; }
+}