diff --git a/json-view/pom.xml b/json-view/pom.xml index ee2fdd5..6ee5964 100644 --- a/json-view/pom.xml +++ b/json-view/pom.xml @@ -76,6 +76,26 @@ + + default + + true + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.19.1 + + + JsonViewSerializerPerformanceTest.java + + + + + + release diff --git a/json-view/src/main/java/com/monitorjbl/json/JsonViewSerializer.java b/json-view/src/main/java/com/monitorjbl/json/JsonViewSerializer.java index 04d6e42..1403860 100644 --- a/json-view/src/main/java/com/monitorjbl/json/JsonViewSerializer.java +++ b/json-view/src/main/java/com/monitorjbl/json/JsonViewSerializer.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Set; import java.util.Stack; +import java.util.UUID; import java.util.regex.Pattern; public class JsonViewSerializer extends JsonSerializer { @@ -174,6 +175,8 @@ boolean writeSpecial(Object obj) throws IOException { jgen.writeString(obj.toString()); } else if(obj instanceof URI) { jgen.writeString(obj.toString()); + } else if (obj instanceof UUID){ + jgen.writeString(obj.toString()); } else if(obj instanceof Class) { jgen.writeString(((Class) obj).getCanonicalName()); } else { diff --git a/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerPerformanceTest.java b/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerPerformanceTest.java index d5b0e06..0225113 100644 --- a/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerPerformanceTest.java +++ b/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerPerformanceTest.java @@ -108,4 +108,5 @@ String divide(long numerator, long denominator) { interface UncheckedRunnable { public void run() throws Exception; } + } \ No newline at end of file diff --git a/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerTest.java b/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerTest.java index dd0681f..97a5b25 100644 --- a/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerTest.java +++ b/json-view/src/test/java/com/monitorjbl/json/JsonViewSerializerTest.java @@ -36,6 +36,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; import static com.monitorjbl.json.Match.match; import static java.util.Arrays.asList; @@ -813,4 +814,16 @@ public void testDeepNestedObjects() throws Exception { assertEquals(subobject.getVal(), subMap.get("val")); assertNull(subMap.get("otherVal")); } + + @Test + public void testUUIDs() throws Exception { + TestObject ref = new TestObject(); + ref.setUuid(UUID.randomUUID()); + + String serialized = sut.writeValueAsString(JsonView.with(ref)); + Map obj = sut.readValue(serialized, HashMap.class); + + assertNotNull(obj.get("uuid")); + assertEquals(ref.getUuid().toString(), obj.get("uuid")); + } } diff --git a/json-view/src/test/java/com/monitorjbl/json/model/TestObject.java b/json-view/src/test/java/com/monitorjbl/json/model/TestObject.java index 2434f25..2d61964 100644 --- a/json-view/src/test/java/com/monitorjbl/json/model/TestObject.java +++ b/json-view/src/test/java/com/monitorjbl/json/model/TestObject.java @@ -12,6 +12,7 @@ import java.util.Date; import java.util.List; import java.util.Map; +import java.util.UUID; @JsonIgnoreProperties({"ignoredIndirect"}) public class TestObject implements TestInterface { @@ -52,6 +53,7 @@ public enum TestEnum {VALUE_A, VALUE_B} private String jsonProp; @JsonProperty private String jsonPropNoValue; + private UUID uuid; public String getStr1() { return str1; @@ -268,4 +270,12 @@ public String getJsonPropNoValue() { public void setJsonPropNoValue(String jsonPropNoValue) { this.jsonPropNoValue = jsonPropNoValue; } + + public UUID getUuid() { + return uuid; + } + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } }