You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2016/09/15 10:35:45 UTC
[20/37] tinkerpop git commit: Made sure the GraphSON message
serializers use extended graphson
Made sure the GraphSON message serializers use extended graphson
This should have made it into 3.2.2, but didn't - bad oversight. CTR
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0e4e8a1b
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0e4e8a1b
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0e4e8a1b
Branch: refs/heads/TINKERPOP-1280
Commit: 0e4e8a1b20bae7354ec74c4145d9d3550be8fafd
Parents: 2c57331
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Sep 12 14:41:10 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Sep 12 14:41:10 2016 -0400
----------------------------------------------------------------------
.../GraphSONMessageSerializerGremlinV2d0.java | 4 +-
.../ser/GraphSONMessageSerializerV2d0.java | 4 +-
.../server/GremlinDriverIntegrateTest.java | 39 +++++++++++++++++++-
3 files changed, 44 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0e4e8a1b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0.java
index a2d29fc..be1a26f 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0.java
@@ -20,12 +20,13 @@ package org.apache.tinkerpop.gremlin.driver.ser;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONXModuleV2d0;
import org.apache.tinkerpop.gremlin.structure.io.graphson.TypeInfo;
import java.nio.ByteBuffer;
/**
- * Serialize results to JSON with version 2.0.x schema.
+ * Serialize results to JSON with version 2.0.x schema and the extended module.
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
@@ -63,6 +64,7 @@ public final class GraphSONMessageSerializerGremlinV2d0 extends AbstractGraphSON
@Override
GraphSONMapper.Builder configureBuilder(final GraphSONMapper.Builder builder) {
return builder.version(GraphSONVersion.V2_0)
+ .addCustomModule(GraphSONXModuleV2d0.build().create(false))
.addCustomModule(new GremlinServerModule())
.typeInfo(TypeInfo.PARTIAL_TYPES);
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0e4e8a1b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java
index 2e8c96e..4386b5a 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.driver.message.ResponseMessage;
import org.apache.tinkerpop.gremlin.driver.message.ResponseStatusCode;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONXModuleV2d0;
import org.apache.tinkerpop.gremlin.structure.io.graphson.TypeInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,7 +33,7 @@ import java.util.Map;
import java.util.UUID;
/**
- * Serialize results to JSON with version 2.0.x schema.
+ * Serialize results to JSON with version 2.0.x schema and the extended module.
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
@@ -65,6 +66,7 @@ public final class GraphSONMessageSerializerV2d0 extends AbstractGraphSONMessage
@Override
GraphSONMapper.Builder configureBuilder(final GraphSONMapper.Builder builder) {
return builder.version(GraphSONVersion.V2_0)
+ .addCustomModule(GraphSONXModuleV2d0.build().create(false))
.addCustomModule(new GremlinServerModule())
.typeInfo(TypeInfo.PARTIAL_TYPES);
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0e4e8a1b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
index 4f255b9..d7f7896 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
@@ -33,16 +33,19 @@ import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0;
import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
import org.apache.tinkerpop.gremlin.server.channel.NioChannelizer;
import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
import org.apache.tinkerpop.gremlin.util.TimeUtil;
import groovy.json.JsonBuilder;
import org.apache.tinkerpop.gremlin.util.function.FunctionUtils;
+import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.hamcrest.core.IsInstanceOf;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -607,7 +610,7 @@ public class GremlinDriverIntegrateTest extends AbstractGremlinServerIntegration
}
@Test
- public void shouldWorkWithGraphSONSerialization() throws Exception {
+ public void shouldWorkWithGraphSONV1Serialization() throws Exception {
final Cluster cluster = Cluster.build("localhost").serializer(Serializers.GRAPHSON_V1D0).create();
final Client client = cluster.connect();
@@ -643,6 +646,40 @@ public class GremlinDriverIntegrateTest extends AbstractGremlinServerIntegration
}
@Test
+ public void shouldWorkWithGraphSONV2Serialization() throws Exception {
+ final Cluster cluster = Cluster.build("localhost").serializer(Serializers.GRAPHSON_V2D0).create();
+ final Client client = cluster.connect();
+
+ final List<Result> r = client.submit("TinkerFactory.createModern().traversal().V(1)").all().join();
+ assertEquals(1, r.size());
+
+ final Vertex v = r.get(0).get(DetachedVertex.class);
+ assertEquals(1, v.id());
+ assertEquals("person", v.label());
+
+ assertEquals(2, IteratorUtils.count(v.properties()));
+ assertEquals("marko", v.value("name"));
+ assertEquals(29, Integer.parseInt(v.value("age").toString()));
+
+ cluster.close();
+ }
+
+ @Test
+ public void shouldWorkWithGraphSONExtendedV2Serialization() throws Exception {
+ final Cluster cluster = Cluster.build("localhost").serializer(Serializers.GRAPHSON_V2D0).create();
+ final Client client = cluster.connect();
+
+ final Instant now = Instant.now();
+ final List<Result> r = client.submit("java.time.Instant.ofEpochMilli(" + now.toEpochMilli() + ")").all().join();
+ assertEquals(1, r.size());
+
+ final Instant then = r.get(0).get(Instant.class);
+ assertEquals(now, then);
+
+ cluster.close();
+ }
+
+ @Test
@org.junit.Ignore("Can't seem to make this test pass consistently")
public void shouldHandleRequestSentThatNeverReturns() throws Exception {
final Cluster cluster = Cluster.open();