diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/IterableXSerializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/IterableXSerializer.java index cfe78ab551..ffa2d2c055 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/IterableXSerializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/IterableXSerializer.java @@ -16,7 +16,7 @@ public void serialize(Iterable value, JsonGenerator gen, SerializerProvider s } gen.writeStartArray(); for(Object o : value) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple1Serializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple1Serializer.java index a0cc962183..f480b4d232 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple1Serializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple1Serializer.java @@ -25,7 +25,7 @@ public void serialize(Tuple1 value, JsonGenerator gen, SerializerProvider ser Object[] array = new Object[]{value._1()}; gen.writeStartArray(); for(Object o : array) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple2Serializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple2Serializer.java index 9db5dced37..9364dc627f 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple2Serializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple2Serializer.java @@ -24,7 +24,7 @@ public void serialize(Tuple2 value, JsonGenerator gen, SerializerProvider s Object[] array = new Object[]{value._1(),value._2()}; gen.writeStartArray(); for(Object o : array) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple3Serializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple3Serializer.java index 45d751773b..f70581daa8 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple3Serializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple3Serializer.java @@ -23,7 +23,7 @@ public void serialize(Tuple3 value, JsonGenerator gen, SerializerProvider Object[] array = new Object[]{value._1(),value._2(),value._3()}; gen.writeStartArray(); for(Object o : array) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple4Serializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple4Serializer.java index accb40834f..2e3b46fceb 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple4Serializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple4Serializer.java @@ -23,7 +23,7 @@ public void serialize(Tuple4 value, JsonGenerator gen, SerializerProvid Object[] array = new Object[]{value._1(),value._2(),value._3(),value._4()}; gen.writeStartArray(); for(Object o : array) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple5Serializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple5Serializer.java index 66dca8181c..367c4059bc 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple5Serializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple5Serializer.java @@ -22,7 +22,7 @@ public void serialize(Tuple5 value, JsonGenerator gen, SerializerProv Object[] array = new Object[]{value._1(),value._2(),value._3(),value._4(),value._5()}; gen.writeStartArray(); for(Object o : array) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple6Serializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple6Serializer.java index 63f8fb5d8c..aa09bdcb65 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple6Serializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple6Serializer.java @@ -23,7 +23,7 @@ public void serialize(Tuple6 value, JsonGenerator gen, SerializerPr Object[] array = new Object[]{value._1(),value._2(),value._3(),value._4(),value._5(),value._6()}; gen.writeStartArray(); for(Object o : array) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple7Serializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple7Serializer.java index e55ffa964c..3dfb7662eb 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple7Serializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple7Serializer.java @@ -22,7 +22,7 @@ public void serialize(Tuple7 value, JsonGenerator gen, Serializer Object[] array = new Object[]{value._1(),value._2(),value._3(),value._4(),value._5(),value._6(),value._7()}; gen.writeStartArray(); for(Object o : array) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple8Serializer.java b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple8Serializer.java index a5cd50effb..85aeb7b434 100644 --- a/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple8Serializer.java +++ b/cyclops-jackson-integration/src/main/java/com/oath/cyclops/jackson/serializers/Tuple8Serializer.java @@ -23,7 +23,7 @@ public void serialize(Tuple8 value, JsonGenerator gen, Serializ Object[] array = new Object[]{value._1(),value._2(),value._3(),value._4(),value._5(),value._6(),value._7(),value._8()}; gen.writeStartArray(); for(Object o : array) { - JsonSerializer ser = serializers.findValueSerializer(o.getClass()); + JsonSerializer ser = serializers.findTypedValueSerializer(o.getClass(),true,null); ser.serialize(o, gen, serializers); } gen.writeEndArray(); diff --git a/cyclops-jackson-integration/src/test/java/com/oath/cyclops/jackson/fix/Query.java b/cyclops-jackson-integration/src/test/java/com/oath/cyclops/jackson/fix/Query.java new file mode 100644 index 0000000000..87ab3ab2c2 --- /dev/null +++ b/cyclops-jackson-integration/src/test/java/com/oath/cyclops/jackson/fix/Query.java @@ -0,0 +1,30 @@ +package com.oath.cyclops.jackson.fix; + +import cyclops.data.Seq; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.xml.bind.annotation.XmlElement; + +@AllArgsConstructor +@ToString +@EqualsAndHashCode +public class Query { + + + @XmlElement(name = "name") + public final String name; + + + @XmlElement(name = "queries") + public final Seq queries; + + public Query(){ + this.queries = null; + this.name = null; + } + + + +} diff --git a/cyclops-jackson-integration/src/test/java/com/oath/cyclops/jackson/fix/SerTest.java b/cyclops-jackson-integration/src/test/java/com/oath/cyclops/jackson/fix/SerTest.java new file mode 100644 index 0000000000..b95be1d1dc --- /dev/null +++ b/cyclops-jackson-integration/src/test/java/com/oath/cyclops/jackson/fix/SerTest.java @@ -0,0 +1,29 @@ +package com.oath.cyclops.jackson.fix; + +import com.oath.cyclops.jackson.JacksonUtil; +import org.junit.Test; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; + +public class SerTest { + + String testQuery = "{\n" + + " \"queries\": [{\n" + + " \"name\": \"BidLandscape/ui/query\",\n" + + " \"queries\": [{\n" + + " \"name\": \"BidLandscape/ui/query/facets/query\"\n" + + " }]\n" + + " }]\n" + + "}"; + + @Test + public void issue(){ + Query q = JacksonUtil.convertFromJson(testQuery,Query.class); + System.out.println(q); + + String json = JacksonUtil.serializeToJson(q); + + assertThat(JacksonUtil.convertFromJson(json,Query.class),equalTo(q)); + } +}