aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2019-05-24 15:09:18 +0200
committergjoranv <gv@verizonmedia.com>2019-05-24 17:09:07 +0200
commitef338fb8cd3d0ee9614dee792d7f3f2269973ce2 (patch)
tree5e0944abbc1aefca89219fdc79604a3030e1fa33 /metrics-proxy
parenta74d3f42dfbe0f896b84fc612c0143e9180ac0fa (diff)
Extract creation of ObjectMapper to a new utility class.
Diffstat (limited to 'metrics-proxy')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JacksonUtil.java47
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasArrayJsonModel.java27
2 files changed, 49 insertions, 25 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JacksonUtil.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JacksonUtil.java
new file mode 100644
index 00000000000..5c04f933c4a
--- /dev/null
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/JacksonUtil.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+ */
+
+package ai.vespa.metricsproxy.metric.model.json;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+
+import java.io.IOException;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.Locale;
+
+/**
+ * @author smorgrav
+ * @author gjoranv
+ */
+class JacksonUtil {
+
+ /**
+ * Returns an object mapper with a custom floating point serializer to avoid scientific notation
+ */
+ static ObjectMapper createObjectMapper() {
+ ObjectMapper mapper = new ObjectMapper();
+ SimpleModule module = new SimpleModule("DoubleSerializer",
+ new Version(1, 0, 0, "", null, null));
+ module.addSerializer(Double.class, new DoubleSerializer());
+ mapper.registerModule(module);
+ return mapper;
+ }
+
+ public static class DoubleSerializer extends JsonSerializer<Double> {
+ @Override
+ public void serialize(Double value, JsonGenerator jgen,
+ SerializerProvider provider) throws IOException {
+ DecimalFormat df = new DecimalFormat("#.####", new DecimalFormatSymbols(Locale.ENGLISH));
+ df.setMaximumFractionDigits(13);
+ jgen.writeNumber(df.format(value));
+ }
+ }
+
+}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasArrayJsonModel.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasArrayJsonModel.java
index fdac0521256..86249ba6e31 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasArrayJsonModel.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasArrayJsonModel.java
@@ -7,20 +7,11 @@ package ai.vespa.metricsproxy.metric.model.json;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-import java.io.IOException;
-import java.text.DecimalFormat;
-import java.text.DecimalFormatSymbols;
import java.util.ArrayList;
import java.util.List;
-import java.util.Locale;
/**
* Datamodel for the metricsproxy representation of multiple yamas checks.
@@ -51,11 +42,7 @@ public class YamasArrayJsonModel {
* @return Serialized json
*/
public String serialize() {
- ObjectMapper mapper = new ObjectMapper();
- SimpleModule module = new SimpleModule("DoubleSerializer",
- new Version(1, 0, 0, "", null, null));
- module.addSerializer(Double.class, new DoubleSerializer());
- mapper.registerModule(module);
+ ObjectMapper mapper = JacksonUtil.createObjectMapper();
if (metrics.size() > 0) {
try {
@@ -64,17 +51,7 @@ public class YamasArrayJsonModel {
e.printStackTrace();
}
}
-
- return "{}"; // Backwards compatability
+ return "{}"; // Backwards compatibility
}
- public class DoubleSerializer extends JsonSerializer<Double> {
- @Override
- public void serialize(Double value, JsonGenerator jgen,
- SerializerProvider provider) throws IOException, JsonProcessingException {
- DecimalFormat df = new DecimalFormat("#.####", new DecimalFormatSymbols(Locale.ENGLISH));
- df.setMaximumFractionDigits(13);
- jgen.writeNumber(df.format(value));
- }
- }
}