1 package com.atlassian.vcache.internal.core.metrics;
2
3 import com.atlassian.json.marshal.Jsonable;
4 import com.atlassian.vcache.internal.JsonableFactory;
5 import com.atlassian.vcache.internal.RequestMetrics;
6 import org.codehaus.jackson.annotate.JsonAutoDetect;
7 import org.codehaus.jackson.annotate.JsonMethod;
8 import org.codehaus.jackson.map.ObjectMapper;
9
10
11
12
13
14
15 public class JacksonJsonableFactory implements JsonableFactory {
16
17 private static final ObjectMapper OBJECT_MAPPER;
18
19 static {
20 final ObjectMapper mapper = new ObjectMapper();
21 mapper.setVisibility(JsonMethod.FIELD, JsonAutoDetect.Visibility.ANY);
22 OBJECT_MAPPER = mapper;
23 }
24
25 @Override
26 public Jsonable apply(final RequestMetrics requestMetrics) {
27 return writer -> OBJECT_MAPPER.writeValue(writer, requestMetrics);
28 }
29 }