HTRACE-148. Add deserialization utility method to MilliSpan for testing outside of htrace-core (iwasakims)
diff --git a/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java b/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
index c57eb25..c688858 100644
--- a/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
+++ b/htrace-core/src/main/java/org/apache/htrace/impl/MilliSpan.java
@@ -21,12 +21,13 @@
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectReader;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.apache.htrace.Span;
import org.apache.htrace.TimelineAnnotation;
import org.apache.htrace.Tracer;
-import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.StringWriter;
@@ -47,7 +48,9 @@
*/
@JsonDeserialize(using = MilliSpan.MilliSpanDeserializer.class)
public class MilliSpan implements Span {
- private static ObjectWriter JSON_WRITER = new ObjectMapper().writer();
+ private static ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+ private static ObjectReader JSON_READER = OBJECT_MAPPER.reader(MilliSpan.class);
+ private static ObjectWriter JSON_WRITER = OBJECT_MAPPER.writer();
private static final long EMPTY_PARENT_ARRAY[] = new long[0];
private static final String EMPTY_STRING = "";
@@ -384,4 +387,8 @@
return builder.build();
}
}
+
+ static MilliSpan fromJson(String json) throws IOException {
+ return JSON_READER.readValue(json);
+ }
}
diff --git a/htrace-core/src/test/java/org/apache/htrace/impl/TestMilliSpan.java b/htrace-core/src/test/java/org/apache/htrace/impl/TestMilliSpan.java
index 41ee108..2e0edde 100644
--- a/htrace-core/src/test/java/org/apache/htrace/impl/TestMilliSpan.java
+++ b/htrace-core/src/test/java/org/apache/htrace/impl/TestMilliSpan.java
@@ -16,8 +16,6 @@
*/
package org.apache.htrace.impl;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -81,8 +79,7 @@
spanId(989L).
traceId(444).build();
String json = span.toJson();
- ObjectMapper mapper = new ObjectMapper();
- MilliSpan dspan = mapper.readValue(json, MilliSpan.class);
+ MilliSpan dspan = MilliSpan.fromJson(json);
compareSpans(span, dspan);
}
@@ -97,8 +94,7 @@
spanId(-1L).
traceId(-1L).build();
String json = span.toJson();
- ObjectMapper mapper = new ObjectMapper();
- MilliSpan dspan = mapper.readValue(json, MilliSpan.class);
+ MilliSpan dspan = MilliSpan.fromJson(json);
compareSpans(span, dspan);
}
@@ -114,8 +110,7 @@
spanId(random.nextLong()).
traceId(random.nextLong()).build();
String json = span.toJson();
- ObjectMapper mapper = new ObjectMapper();
- MilliSpan dspan = mapper.readValue(json, MilliSpan.class);
+ MilliSpan dspan = MilliSpan.fromJson(json);
compareSpans(span, dspan);
}
@@ -140,8 +135,7 @@
builder.timeline(timeline);
MilliSpan span = builder.build();
String json = span.toJson();
- ObjectMapper mapper = new ObjectMapper();
- MilliSpan dspan = mapper.readValue(json, MilliSpan.class);
+ MilliSpan dspan = MilliSpan.fromJson(json);
compareSpans(span, dspan);
}
@@ -149,8 +143,7 @@
public void testJsonSerializationWithFieldsNotSet() throws Exception {
MilliSpan span = new MilliSpan.Builder().build();
String json = span.toJson();
- ObjectMapper mapper = new ObjectMapper();
- MilliSpan dspan = mapper.readValue(json, MilliSpan.class);
+ MilliSpan dspan = MilliSpan.fromJson(json);
compareSpans(span, dspan);
}
}
diff --git a/htrace-htraced/src/test/java/org/apache/htrace/impl/TestHTracedRESTReceiver.java b/htrace-htraced/src/test/java/org/apache/htrace/impl/TestHTracedRESTReceiver.java
index 9a01005..a6faa02 100644
--- a/htrace-htraced/src/test/java/org/apache/htrace/impl/TestHTracedRESTReceiver.java
+++ b/htrace-htraced/src/test/java/org/apache/htrace/impl/TestHTracedRESTReceiver.java
@@ -24,7 +24,6 @@
import java.io.File;
import java.net.URL;
-import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.htrace.HTraceConfiguration;
@@ -160,8 +159,7 @@
return false;
}
LOG.info("Got " + content + " for span " + i);
- ObjectMapper mapper = new ObjectMapper();
- MilliSpan dspan = mapper.readValue(content, MilliSpan.class);
+ MilliSpan dspan = MilliSpan.fromJson(content);
assertEquals((long)i, dspan.getSpanId());
// Every span should have the process ID we set in the
// configuration... except for the last span, which had