You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2016/08/23 10:58:16 UTC

[1/2] tinkerpop git commit: Make Traverser serialization scalar based.

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 098b81f78 -> 0676a7768


Make Traverser serialization scalar based.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/41d79b87
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/41d79b87
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/41d79b87

Branch: refs/heads/TINKERPOP-1278
Commit: 41d79b87f9267e29e4ec6b12e03d67c766f93430
Parents: 098b81f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 23 06:52:02 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 23 06:52:02 2016 -0400

----------------------------------------------------------------------
 .../gremlin/structure/io/graphson/GraphSONTokens.java  |  2 +-
 .../io/graphson/GraphSONTraversalSerializersV2d0.java  | 13 ++-----------
 .../GraphSONMapperV2d0PartialEmbeddedTypeTest.java     |  1 -
 3 files changed, 3 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/41d79b87/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java
index 5171204..6833d11 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java
@@ -63,5 +63,5 @@ public final class GraphSONTokens {
     public static final String COUNTS = "counts";
     public static final String ANNOTATIONS = "annotations";
 
-    public static final String BULK = "Bulk";
+    public static final String BULK = "bulk";
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/41d79b87/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
index 88b6f63..7f02bfd 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
@@ -47,6 +47,7 @@ import org.apache.tinkerpop.shaded.jackson.databind.SerializerProvider;
 import org.apache.tinkerpop.shaded.jackson.databind.deser.std.StdDeserializer;
 import org.apache.tinkerpop.shaded.jackson.databind.jsontype.TypeSerializer;
 import org.apache.tinkerpop.shaded.jackson.databind.node.JsonNodeType;
+import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdScalarSerializer;
 import org.apache.tinkerpop.shaded.jackson.databind.ser.std.StdSerializer;
 
 import java.io.IOException;
@@ -193,7 +194,7 @@ final class GraphSONTraversalSerializersV2d0 {
 
     }
 
-    final static class TraverserSerializer extends StdSerializer<Traverser> {
+    final static class TraverserSerializer extends StdScalarSerializer<Traverser> {
 
         public TraverserSerializer() {
             super(Traverser.class);
@@ -202,16 +203,6 @@ final class GraphSONTraversalSerializersV2d0 {
         @Override
         public void serialize(final Traverser traverserInstance, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
-            ser(traverserInstance, jsonGenerator);
-        }
-
-        @Override
-        public void serializeWithType(final Traverser traverser, final JsonGenerator jsonGenerator,
-                                      final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
-            ser(traverser, jsonGenerator);
-        }
-
-        private void ser(final Traverser traverserInstance, final JsonGenerator jsonGenerator) throws IOException {
             jsonGenerator.writeStartObject();
             jsonGenerator.writeObjectField(GraphSONTokens.BULK, traverserInstance.bulk());
             jsonGenerator.writeObjectField(GraphSONTokens.VALUE, traverserInstance.get());

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/41d79b87/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
index d1b7b52..0654283 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
@@ -276,7 +276,6 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
     public <T> T serializeDeserialize(final Object o, final Class<T> clazz) throws Exception {
         try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
             mapper.writeValue(stream, o);
-            final String s=mapper.writeValueAsString(o);
             try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
                 return mapper.readValue(inputStream, clazz);
             }


[2/2] tinkerpop git commit: Added a base graphson test class to centralize ser/der logic

Posted by sp...@apache.org.
Added a base graphson test class to centralize ser/der logic


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0676a776
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0676a776
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0676a776

Branch: refs/heads/TINKERPOP-1278
Commit: 0676a77683f86c3095202e8da9486c7045205ed2
Parents: 41d79b8
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 23 06:57:53 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 23 06:57:53 2016 -0400

----------------------------------------------------------------------
 .../io/graphson/AbstractGraphSONTest.java       | 51 ++++++++++++++++++++
 .../GraphSONMapperEmbeddedTypeTest.java         | 41 ++++++----------
 ...aphSONMapperV2d0PartialEmbeddedTypeTest.java | 29 ++---------
 3 files changed, 70 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0676a776/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractGraphSONTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractGraphSONTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractGraphSONTest.java
new file mode 100644
index 0000000..dbff941
--- /dev/null
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractGraphSONTest.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.structure.io.graphson;
+
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public abstract class AbstractGraphSONTest {
+
+    public static <T> T serializeDeserialize(final ObjectMapper mapper, final Object o, final Class<T> clazz) throws Exception {
+        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
+            mapper.writeValue(stream, o);
+            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
+                return mapper.readValue(inputStream, clazz);
+            }
+        }
+    }
+
+    public static <T> T serializeDeserializeAuto(final ObjectMapper mapper, final Object o) throws Exception {
+        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
+            mapper.writeValue(stream, o);
+
+            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
+                // Object.class is the wildcard that triggers the auto discovery.
+                return (T)mapper.readValue(inputStream, Object.class);
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0676a776/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
index 6060a6d..716a803 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
@@ -23,9 +23,6 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
 import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDate;
@@ -47,7 +44,7 @@ import static org.junit.Assert.assertEquals;
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 @RunWith(Parameterized.class)
-public class GraphSONMapperEmbeddedTypeTest {
+public class GraphSONMapperEmbeddedTypeTest extends AbstractGraphSONTest {
 
     @Parameterized.Parameters(name = "{0}")
     public static Iterable<Object[]> data() {
@@ -63,87 +60,77 @@ public class GraphSONMapperEmbeddedTypeTest {
     @Test
     public void shouldHandleDuration()throws Exception  {
         final Duration o = Duration.ZERO;
-        assertEquals(o, serializeDeserialize(o, Duration.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Duration.class));
     }
     @Test
     public void shouldHandleInstant()throws Exception  {
         final Instant o = Instant.ofEpochMilli(System.currentTimeMillis());
-        assertEquals(o, serializeDeserialize(o, Instant.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Instant.class));
     }
 
     @Test
     public void shouldHandleLocalDate()throws Exception  {
         final LocalDate o = LocalDate.now();
-        assertEquals(o, serializeDeserialize(o, LocalDate.class));
+        assertEquals(o, serializeDeserialize(mapper, o, LocalDate.class));
     }
 
     @Test
     public void shouldHandleLocalDateTime()throws Exception  {
         final LocalDateTime o = LocalDateTime.now();
-        assertEquals(o, serializeDeserialize(o, LocalDateTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, LocalDateTime.class));
     }
 
     @Test
     public void shouldHandleLocalTime()throws Exception  {
         final LocalTime o = LocalTime.now();
-        assertEquals(o, serializeDeserialize(o, LocalTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, LocalTime.class));
     }
 
     @Test
     public void shouldHandleMonthDay()throws Exception  {
         final MonthDay o = MonthDay.now();
-        assertEquals(o, serializeDeserialize(o, MonthDay.class));
+        assertEquals(o, serializeDeserialize(mapper, o, MonthDay.class));
     }
 
     @Test
     public void shouldHandleOffsetDateTime()throws Exception  {
         final OffsetDateTime o = OffsetDateTime.now();
-        assertEquals(o, serializeDeserialize(o, OffsetDateTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, OffsetDateTime.class));
     }
 
     @Test
     public void shouldHandleOffsetTime()throws Exception  {
         final OffsetTime o = OffsetTime.now();
-        assertEquals(o, serializeDeserialize(o, OffsetTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, OffsetTime.class));
     }
 
     @Test
     public void shouldHandlePeriod()throws Exception  {
         final Period o = Period.ofDays(3);
-        assertEquals(o, serializeDeserialize(o, Period.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Period.class));
     }
 
     @Test
     public void shouldHandleYear()throws Exception  {
         final Year o = Year.now();
-        assertEquals(o, serializeDeserialize(o, Year.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Year.class));
     }
 
     @Test
     public void shouldHandleYearMonth()throws Exception  {
         final YearMonth o = YearMonth.now();
-        assertEquals(o, serializeDeserialize(o, YearMonth.class));
+        assertEquals(o, serializeDeserialize(mapper, o, YearMonth.class));
     }
 
     @Test
     public void shouldHandleZonedDateTime()throws Exception  {
         final ZonedDateTime o = ZonedDateTime.now();
-        assertEquals(o, serializeDeserialize(o, ZonedDateTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, ZonedDateTime.class));
     }
 
     @Test
     public void shouldHandleZonedOffset()throws Exception  {
         final ZoneOffset o  = ZonedDateTime.now().getOffset();
-        assertEquals(o, serializeDeserialize(o, ZoneOffset.class));
-    }
-
-    public <T> T serializeDeserialize(final Object o, final Class<T> clazz) throws Exception {
-        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
-            mapper.writeValue(stream, o);
-
-            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
-                return mapper.readValue(inputStream, clazz);
-            }
-        }
+        assertEquals(o, serializeDeserialize(mapper, o, ZoneOffset.class));
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0676a776/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
index 0654283..ed10a93 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
@@ -46,7 +46,7 @@ import static org.junit.Assert.fail;
 /**
  * Tests automatic typed serialization/deserialization for GraphSON 2.0.
  */
-public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
+public class GraphSONMapperV2d0PartialEmbeddedTypeTest extends AbstractGraphSONTest {
 
     private final ObjectMapper mapper = GraphSONMapper.build()
             .version(GraphSONVersion.V2_0)
@@ -77,7 +77,7 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
 
         myList.add("kjkj");
         myList.add(UUID.randomUUID());
-        assertEquals(myList, serializeDeserializeAuto(myList));
+        assertEquals(myList, serializeDeserializeAuto(mapper, myList));
 
         // no "@value" property
         String s = "{\""+GraphSONTokens.VALUETYPE+"\":\""+GraphSONTokens.GREMLIN_TYPE_NAMESPACE +":uuid\", \"test\":2}";
@@ -139,8 +139,8 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
     public void shouldHandleRawPOJOs() throws Exception {
         final FunObject funObject = new FunObject();
         funObject.setVal("test");
-        assertEquals(funObject.toString(), serializeDeserialize(funObject, FunObject.class).toString());
-        assertEquals(funObject.getClass(), serializeDeserialize(funObject, FunObject.class).getClass());
+        assertEquals(funObject.toString(), serializeDeserialize(mapper, funObject, FunObject.class).toString());
+        assertEquals(funObject.getClass(), serializeDeserialize(mapper, funObject, FunObject.class).getClass());
     }
 
     @Test
@@ -250,7 +250,7 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
     @Test
     public void shouldHandleDefaultRemoteTraverser() throws Exception {
         final DefaultRemoteTraverser<String> o = new DefaultRemoteTraverser<>("test", 100);
-        assertEquals(o, serializeDeserialize(o, Traverser.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Traverser.class));
     }
 
     // Class needs to be defined as statics as it's a nested class.
@@ -273,24 +273,5 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
         }
     }
 
-    public <T> T serializeDeserialize(final Object o, final Class<T> clazz) throws Exception {
-        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
-            mapper.writeValue(stream, o);
-            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
-                return mapper.readValue(inputStream, clazz);
-            }
-        }
-    }
-
-    public <T> T serializeDeserializeAuto(final Object o) throws Exception {
-        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
-            mapper.writeValue(stream, o);
-
-            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
-                // Object.class is the wildcard that triggers the auto discovery.
-                return (T)mapper.readValue(inputStream, Object.class);
-            }
-        }
-    }
 
 }