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/24 16:16:52 UTC

[1/2] tinkerpop git commit: Add GraphSON 2.0 to message serializers and better handle GraphSON results in driver.

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 98efcef17 -> 8ce282ebe


Add GraphSON 2.0 to message serializers and better handle GraphSON results in driver.


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

Branch: refs/heads/TINKERPOP-1278
Commit: 9153f3c61f117722cd3bc4393d905fd75b5cab09
Parents: 136531e
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Aug 24 12:11:24 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Aug 24 12:11:24 2016 -0400

----------------------------------------------------------------------
 .../org/apache/tinkerpop/gremlin/driver/ResultQueue.java  | 10 ++++++++--
 .../apache/tinkerpop/gremlin/driver/ser/Serializers.java  |  3 +++
 .../gremlin/driver/remote/RemoteGraphProvider.java        |  2 ++
 3 files changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9153f3c6/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
index c499a20..dcde3fe 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
@@ -96,14 +96,20 @@ final class ResultQueue {
                 list.add(sideEffectValue);
                 break;
             case Tokens.VAL_AGGREGATE_TO_MAP:
-                if (!(sideEffectValue instanceof Map.Entry))
+                if (!(sideEffectValue instanceof Map.Entry) && !(sideEffectValue instanceof Map))
                     throw new IllegalStateException(String.format("Side-effect value %s is a %s which does not aggregate to %s",
                             sideEffectValue, sideEffectValue.getClass().getSimpleName(), aggregateTo));
 
+                // some serialization formats (e.g. graphson) may deserialize a Map.Entry to a Map with a single entry
+                if (sideEffectValue instanceof Map && ((Map) sideEffectValue).size() != 1)
+                    throw new IllegalStateException(String.format("Side-effect value %s is a %s which does not aggregate to %s as it is a Map that does not have one entry",
+                            sideEffectValue, sideEffectValue.getClass().getSimpleName(), aggregateTo));
+
                 if (null == aggregatedResult) aggregatedResult =  new HashMap();
 
                 final Map<Object,Object > m = validate(aggregateTo, Map.class);
-                final Map.Entry entry = (Map.Entry) sideEffectValue;
+                final Map.Entry entry = sideEffectValue instanceof Map.Entry ?
+                        (Map.Entry) sideEffectValue : (Map.Entry) ((Map) sideEffectValue).entrySet().iterator().next();
                 m.put(entry.getKey(), entry.getValue());
                 break;
             case Tokens.VAL_AGGREGATE_TO_NONE:

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9153f3c6/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
index 45ae301..bb0d377 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
@@ -28,6 +28,7 @@ import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
 public enum Serializers {
     GRAPHSON(SerTokens.MIME_JSON),
     GRAPHSON_V1D0(SerTokens.MIME_GRAPHSON_V1D0),
+    GRAPHSON_V2D0(SerTokens.MIME_GRAPHSON_V2D0),
     GRYO_V1D0(SerTokens.MIME_GRYO_V1D0),
     GRYO_LITE_V1D0(SerTokens.MIME_GRYO_LITE_V1D0);
 
@@ -61,6 +62,8 @@ public enum Serializers {
                 return new GraphSONMessageSerializerV1d0();
             case SerTokens.MIME_GRAPHSON_V1D0:
                 return new GraphSONMessageSerializerGremlinV1d0();
+            case SerTokens.MIME_GRAPHSON_V2D0:
+                return new GraphSONMessageSerializerGremlinV2d0();
             case SerTokens.MIME_GRYO_V1D0:
                 return new GryoMessageSerializerV1d0();
             case SerTokens.MIME_GRYO_LITE_V1D0:

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9153f3c6/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java
index c50d29a..a4dff94 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.AbstractGraphProvider;
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.driver.Client;
 import org.apache.tinkerpop.gremlin.driver.Cluster;
+import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteGraph;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.server.GremlinServer;
@@ -48,6 +49,7 @@ public class RemoteGraphProvider extends AbstractGraphProvider {
     private static GremlinServer server;
     private final Map<String, RemoteGraph> remoteCache = new HashMap<>();
     private final Cluster cluster = Cluster.open();
+    //private final Cluster cluster = Cluster.build().serializer(Serializers.GRAPHSON_V2D0).create();
     private final Client client = cluster.connect();
 
     static {


[2/2] tinkerpop git commit: Merge remote-tracking branch 'origin/TINKERPOP-1278' into TINKERPOP-1278

Posted by sp...@apache.org.
Merge remote-tracking branch 'origin/TINKERPOP-1278' into TINKERPOP-1278


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

Branch: refs/heads/TINKERPOP-1278
Commit: 8ce282ebe14ad35692ed5acedc42d526a42ef28f
Parents: 9153f3c 98efcef
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Aug 24 12:16:35 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Aug 24 12:16:35 2016 -0400

----------------------------------------------------------------------
 .../structure/io/graphson/GraphSONModule.java   |   6 +-
 .../GraphSONTraversalSerializersV2d0.java       |  11 +-
 .../jsr223/GremlinJythonScriptEngine.java       |   8 +-
 .../gremlin/python/jsr223/JythonTranslator.java |   8 +-
 .../driver/driver_remote_connection.py          |  12 +-
 .../jython/gremlin_python/process/__init__.py   |   4 +-
 .../jython/gremlin_python/process/graphson.py   | 164 ------------
 .../jython/gremlin_python/structure/__init__.py |   4 +
 .../jython/gremlin_python/structure/graph.py    |  39 +++
 .../gremlin_python/structure/io/__init__.py     |  25 ++
 .../gremlin_python/structure/io/graphson.py     | 263 +++++++++++++++++++
 gremlin-python/src/main/jython/setup.py         |   2 +-
 .../gremlin/python/GremlinPythonTest.java       |  37 +++
 .../python/jsr223/JythonScriptEngineSetup.java  |   2 +-
 14 files changed, 398 insertions(+), 187 deletions(-)
----------------------------------------------------------------------