You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by da...@apache.org on 2016/09/26 17:26:27 UTC

[01/21] tinkerpop git commit: Fixed issue in NumberSerializer where a 64bit integer is misidentified as 32bit

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1458 b4301630d -> 5022cd2a0


Fixed issue in NumberSerializer where a 64bit integer is misidentified as 32bit

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

Branch: refs/heads/TINKERPOP-1458
Commit: 5573def4a93072a79b66b3bb2e8a1727256b2d3e
Parents: 9004b4b
Author: Carlos Cheung <ca...@tumvi.com>
Authored: Wed Sep 14 22:15:49 2016 -0400
Committer: GitHub <no...@github.com>
Committed: Wed Sep 14 22:15:49 2016 -0400

----------------------------------------------------------------------
 .../src/main/jython/gremlin_python/structure/io/graphson.py        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5573def4/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
index fd13ae9..aae3ab2 100644
--- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
+++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
@@ -181,7 +181,7 @@ class NumberSerializer(GraphSONSerializer):
     def _dictify(self, number):
         if isinstance(number, bool):  # python thinks that 0/1 integers are booleans
             return number
-        elif isinstance(number, long):
+        elif isinstance(number, long) or (number > 2147483647): # in python all numbers are int unless specified otherwise
             return _SymbolHelper.objectify("Int64", number)
         elif isinstance(number, int):
             return _SymbolHelper.objectify("Int32", number)


[07/21] tinkerpop git commit: Setting of "version" should be done in the abstract classes as they are specific to that version.

Posted by da...@apache.org.
Setting of "version" should be done in the abstract classes as they are specific to that version.

Not setting that explicitly and Using the default could leave potential for an extending class to get stuck with the wrong version being set. In this case, V2 would get a V1 setting. CTR


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

Branch: refs/heads/TINKERPOP-1458
Commit: 3e4953283df758394579a0163a3497f319d499b9
Parents: 01d035e
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Sep 22 08:36:36 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Sep 22 14:17:02 2016 -0400

----------------------------------------------------------------------
 docs/src/reference/gremlin-applications.asciidoc     |  3 +++
 .../ser/AbstractGraphSONMessageSerializerV1d0.java   | 14 +++++++++++---
 .../ser/AbstractGraphSONMessageSerializerV2d0.java   | 15 ++++++++++++---
 .../ser/GraphSONMessageSerializerGremlinV1d0.java    |  4 ++--
 .../ser/GraphSONMessageSerializerGremlinV2d0.java    |  8 ++------
 .../driver/ser/GraphSONMessageSerializerV1d0.java    |  4 ++--
 .../driver/ser/GraphSONMessageSerializerV2d0.java    |  6 ++----
 7 files changed, 34 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3e495328/docs/src/reference/gremlin-applications.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-applications.asciidoc b/docs/src/reference/gremlin-applications.asciidoc
index bff9f0f..2c093fa 100644
--- a/docs/src/reference/gremlin-applications.asciidoc
+++ b/docs/src/reference/gremlin-applications.asciidoc
@@ -1387,7 +1387,10 @@ trying to use TinkerPop from non-JVM languages.  JSON obviously has wide support
 programming languages and can be consumed by a wide variety of tools.
 
 [source,yaml]
+----
   - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0 }
+  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0 }
+----
 
 The above configuration represents the default serialization under the `application/json` MIME type and produces JSON
 consistent with standard JSON data types.  It has the following configuration option:

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3e495328/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java
index ac6a74f..e23fc9c 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java
@@ -30,6 +30,8 @@ import io.netty.buffer.ByteBufAllocator;
 import io.netty.util.ReferenceCountUtil;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONUtil;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONXModuleV2d0;
 import org.apache.tinkerpop.shaded.jackson.core.JsonGenerationException;
 import org.apache.tinkerpop.shaded.jackson.core.JsonGenerator;
 import org.apache.tinkerpop.shaded.jackson.core.JsonProcessingException;
@@ -61,7 +63,7 @@ public abstract class AbstractGraphSONMessageSerializerV1d0 extends AbstractMess
     };
 
     public AbstractGraphSONMessageSerializerV1d0() {
-        final GraphSONMapper.Builder builder = configureBuilder(GraphSONMapper.build());
+        final GraphSONMapper.Builder builder = configureBuilder(initBuilder(null));
         mapper = builder.create().createMapper();
     }
 
@@ -88,12 +90,12 @@ public abstract class AbstractGraphSONMessageSerializerV1d0 extends AbstractMess
 
             // a graph was found so use the mapper it constructs.  this allows graphson to be auto-configured with any
             // custom classes that the implementation allows for
-            initialBuilder = g.io(GraphSONIo.build()).mapper();
+            initialBuilder = initBuilder(g.io(GraphSONIo.build()).mapper());
         } else {
             // no graph was supplied so just use the default - this will likely be the case when using a graph
             // with no custom classes or a situation where the user needs complete control like when using two
             // distinct implementations each with their own custom classes.
-            initialBuilder = GraphSONMapper.build();
+            initialBuilder = initBuilder(null);
         }
 
         addIoRegistries(config, initialBuilder);
@@ -171,6 +173,12 @@ public abstract class AbstractGraphSONMessageSerializerV1d0 extends AbstractMess
         }
     }
 
+    private GraphSONMapper.Builder initBuilder(final GraphSONMapper.Builder builder) {
+        final GraphSONMapper.Builder b = null == builder ? GraphSONMapper.build() : builder;
+        return b.addCustomModule(new AbstractGraphSONMessageSerializerV1d0.GremlinServerModule())
+                .version(GraphSONVersion.V1_0);
+    }
+
     public final static class GremlinServerModule extends SimpleModule {
         public GremlinServerModule() {
             super("graphson-gremlin-server");

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3e495328/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
index d846a69..52cbda2 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
@@ -29,6 +29,8 @@ import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONIo;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONUtil;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONXModuleV2d0;
 import org.apache.tinkerpop.shaded.jackson.core.JsonGenerationException;
 import org.apache.tinkerpop.shaded.jackson.core.JsonGenerator;
 import org.apache.tinkerpop.shaded.jackson.core.type.TypeReference;
@@ -58,7 +60,7 @@ public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMess
     };
 
     public AbstractGraphSONMessageSerializerV2d0() {
-        final GraphSONMapper.Builder builder = configureBuilder(GraphSONMapper.build());
+        final GraphSONMapper.Builder builder = configureBuilder(initBuilder(null));
         mapper = builder.create().createMapper();
     }
 
@@ -85,12 +87,12 @@ public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMess
 
             // a graph was found so use the mapper it constructs.  this allows graphson to be auto-configured with any
             // custom classes that the implementation allows for
-            initialBuilder = g.io(GraphSONIo.build()).mapper();
+            initialBuilder = initBuilder(g.io(GraphSONIo.build()).mapper());
         } else {
             // no graph was supplied so just use the default - this will likely be the case when using a graph
             // with no custom classes or a situation where the user needs complete control like when using two
             // distinct implementations each with their own custom classes.
-            initialBuilder = GraphSONMapper.build();
+            initialBuilder = initBuilder(null);
         }
 
         addIoRegistries(config, initialBuilder);
@@ -168,6 +170,13 @@ public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMess
         }
     }
 
+    private GraphSONMapper.Builder initBuilder(final GraphSONMapper.Builder builder) {
+        final GraphSONMapper.Builder b = null == builder ? GraphSONMapper.build() : builder;
+        return b.addCustomModule(new AbstractGraphSONMessageSerializerV2d0.GremlinServerModule())
+                .addCustomModule(GraphSONXModuleV2d0.build().create(false))
+                .version(GraphSONVersion.V2_0);
+    }
+
     public final static class GremlinServerModule extends SimpleModule {
         public GremlinServerModule() {
             super("graphson-gremlin-server");

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3e495328/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0.java
index c8cf058..3564279 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0.java
@@ -61,8 +61,8 @@ public final class GraphSONMessageSerializerGremlinV1d0 extends AbstractGraphSON
 
     @Override
     GraphSONMapper.Builder configureBuilder(final GraphSONMapper.Builder builder) {
-        return builder.version(GraphSONVersion.V1_0)
-                .addCustomModule(new GraphSONMessageSerializerV1d0.GremlinServerModule())
+        // already set to 1.0 in AbstractGraphSONMessageSerializerV1d0
+        return builder.addCustomModule(new GraphSONMessageSerializerV1d0.GremlinServerModule())
                 .embedTypes(true);
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3e495328/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 be1a26f..9ae4798 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
@@ -19,8 +19,6 @@
 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;
@@ -63,9 +61,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);
+        // already set to 2.0 in AbstractGraphSONMessageSerializerV2d0
+        return builder.typeInfo(TypeInfo.PARTIAL_TYPES);
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3e495328/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java
index 7451f6c..e61e946 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java
@@ -63,8 +63,8 @@ public final class GraphSONMessageSerializerV1d0 extends AbstractGraphSONMessage
 
     @Override
     GraphSONMapper.Builder configureBuilder(final GraphSONMapper.Builder builder) {
-        return builder.version(GraphSONVersion.V1_0)
-                .addCustomModule(new GremlinServerModule())
+        // already set to 1.0 in AbstractGraphSONMessageSerializerV1d0
+        return builder.addCustomModule(new GremlinServerModule())
                 .embedTypes(false);
     }
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3e495328/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 4386b5a..89432d9 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
@@ -65,10 +65,8 @@ 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);
+        // already set to 2.0 in AbstractGraphSONMessageSerializerV2d0
+        return builder.typeInfo(TypeInfo.PARTIAL_TYPES);
     }
 
     @Override


[19/21] tinkerpop git commit: TraversalOpProcessor returns a success message upon receiveing a close command

Posted by da...@apache.org.
TraversalOpProcessor returns a success message upon receiveing a close command


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

Branch: refs/heads/TINKERPOP-1458
Commit: ffc98f7658a1d03e6a7265c31197b65de38c7501
Parents: 1421169
Author: davebshow <da...@apache.org>
Authored: Thu Sep 22 14:51:21 2016 -0400
Committer: davebshow <da...@apache.org>
Committed: Mon Sep 26 13:12:42 2016 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                                | 1 +
 .../gremlin/server/op/traversal/TraversalOpProcessor.java         | 3 +++
 2 files changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ffc98f76/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 1272598..c794db9 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -40,6 +40,7 @@ TinkerPop 3.2.3 (Release Date: NOT OFFICIALLY RELEASED YET)
 * VertexPrograms can now declare traverser requirements, e.g. to have access to the path when used with `.program()`.
 * New build options for `gremlin-python` where `-DglvPython` is no longer required.
 * Added missing `InetAddress` to GraphSON extension module.
+* Gremlin Server `TraversalOpProcessor` now returns confirmation upon `Op` `close`.
 
 [[release-3-2-2]]
 TinkerPop 3.2.2 (Release Date: September 6, 2016)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ffc98f76/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
index f5ff44d..1506372 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
@@ -198,6 +198,9 @@ public class TraversalOpProcessor extends AbstractOpProcessor {
 
                     final Optional<UUID> sideEffect = msg.optionalArgs(Tokens.ARGS_SIDE_EFFECT);
                     cache.invalidate(sideEffect.get());
+
+                    final String successMessage = String.format("Successfully cleared side effect cache for [%s].", Tokens.ARGS_SIDE_EFFECT);
+                    ctx.getChannelHandlerContext().writeAndFlush(ResponseMessage.build(message).code(ResponseStatusCode.NO_CONTENT).statusMessage(successMessage).create());
                 };
 
                 break;


[06/21] tinkerpop git commit: Fixed SerializerProvider for GraphSON 2.0.

Posted by da...@apache.org.
Fixed SerializerProvider for GraphSON 2.0.


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

Branch: refs/heads/TINKERPOP-1458
Commit: 5060dce47be41afb97669c86d0829a249292ef71
Parents: ec76c26
Author: Kevin Gallardo <ke...@datastax.com>
Authored: Thu Sep 22 11:56:20 2016 +0100
Committer: Kevin Gallardo <ke...@datastax.com>
Committed: Thu Sep 22 11:57:50 2016 +0100

----------------------------------------------------------------------
 .../io/graphson/GraphSONSerializerProvider.java | 12 +++++++---
 .../ser/GraphSONMessageSerializerV2d0Test.java  | 24 ++++++++++++++++++++
 2 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5060dce4/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializerProvider.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializerProvider.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializerProvider.java
index c373692..60c3200 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializerProvider.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializerProvider.java
@@ -33,7 +33,7 @@ import org.apache.tinkerpop.shaded.jackson.databind.ser.std.ToStringSerializer;
  */
 final class GraphSONSerializerProvider extends DefaultSerializerProvider {
     private static final long serialVersionUID = 1L;
-    private static JsonSerializer<Object> unknownTypeSerializer = new ToStringSerializer();
+    private final JsonSerializer<Object> unknownTypeSerializer;
 
     public GraphSONSerializerProvider(GraphSONVersion version) {
         super();
@@ -47,8 +47,10 @@ final class GraphSONSerializerProvider extends DefaultSerializerProvider {
     }
 
     protected GraphSONSerializerProvider(final SerializerProvider src,
-                                         final SerializationConfig config, final SerializerFactory f) {
+                                         final SerializationConfig config, final SerializerFactory f,
+                                         final JsonSerializer<Object> unknownTypeSerializer) {
         super(src, config, f);
+        this.unknownTypeSerializer = unknownTypeSerializer;
     }
 
     @Override
@@ -59,6 +61,10 @@ final class GraphSONSerializerProvider extends DefaultSerializerProvider {
     @Override
     public GraphSONSerializerProvider createInstance(final SerializationConfig config,
                                                      final SerializerFactory jsf) {
-        return new GraphSONSerializerProvider(this, config, jsf);
+        // createInstance is called pretty often to create a new SerializerProvider
+        // we give it the unknownTypeSerializer that we had in the first place,
+        // when the object was first constructed through the public constructor
+        // that has a GraphSONVersion.
+        return new GraphSONSerializerProvider(this, config, jsf, unknownTypeSerializer);
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5060dce4/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java
index de9b493..d3dbecc 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java
@@ -29,8 +29,12 @@ import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.io.AbstractIoRegistry;
+import org.apache.tinkerpop.gremlin.structure.io.GraphWriter;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONIo;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONWriter;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
 import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
@@ -46,6 +50,7 @@ import org.apache.tinkerpop.shaded.jackson.databind.util.StdDateFormat;
 import org.junit.Test;
 
 import java.awt.Color;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -467,6 +472,25 @@ public class GraphSONMessageSerializerV2d0Test {
                 .get(GraphSONTokens.VALUE).asText());
     }
 
+    @Test
+    public void shouldToStringUnknownObjects() {
+        GraphSONMapper gm20 = GraphSONMapper.build().version(GraphSONVersion.V2_0).create();
+        GraphSONMapper gm10 = GraphSONMapper.build().version(GraphSONVersion.V1_0).create();
+
+        GraphWriter writer = GraphSONWriter.build().mapper(gm20).create();
+        // subsequent creations of GraphWriters and GraphSONMappers should not affect
+        // each other.
+        GraphWriter writer2 = GraphSONWriter.build().mapper(gm10).create();
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try {
+            writer.writeObject(baos, new FunObject("value"));
+            assertEquals(baos.toString(), "\"value\"");
+        } catch (Exception e) {
+            fail("should have succeeded serializing the unknown object to a string");
+        }
+    }
+
     private class FunObject {
         private String val;
 


[14/21] tinkerpop git commit: Removed "todo" and created TINKERPOP-1465

Posted by da...@apache.org.
Removed "todo" and created TINKERPOP-1465


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

Branch: refs/heads/TINKERPOP-1458
Commit: 6f1ccb6f4e36f6da07e41496a9e373572f89de5d
Parents: 68188e2
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat Sep 24 20:41:44 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat Sep 24 20:41:44 2016 -0400

----------------------------------------------------------------------
 .../apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java   | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6f1ccb6f/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
index 2436c29..93a2096 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java
@@ -114,7 +114,6 @@ public class SimpleAuthenticator implements Authenticator {
     public SaslNegotiator newSaslNegotiator() {
         // While this method is deprecated, it remains here to ensure backward compatibility with the old method. In
         // this way the integration tests can continue to execute here
-        // todo: remove this method on a future version and implement the new one
         return new PlainTextSaslAuthenticator();
     }
 


[05/21] tinkerpop git commit: Query produces 2 results since 3.0.0

Posted by da...@apache.org.
Query produces 2 results since 3.0.0


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

Branch: refs/heads/TINKERPOP-1458
Commit: bf88829bc5ac7b012269b4207533bc6a70cfd6fb
Parents: 54ed33d
Author: Robert Dale <ro...@gmail.com>
Authored: Wed Sep 21 14:22:08 2016 -0400
Committer: Robert Dale <ro...@gmail.com>
Committed: Wed Sep 21 14:22:08 2016 -0400

----------------------------------------------------------------------
 docs/src/reference/the-traversal.asciidoc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bf88829b/docs/src/reference/the-traversal.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc
index e8d40e5..e907376 100644
--- a/docs/src/reference/the-traversal.asciidoc
+++ b/docs/src/reference/the-traversal.asciidoc
@@ -1874,8 +1874,8 @@ g.V().aggregate('x').limit(1).cap('x')
 g.V().store('x').limit(1).cap('x')
 ----
 
-It is interesting to note that there are three results in the `store()` side-effect even though the interval
-selection is for 2 objects. Realize that when the third object is on its way to the `range()` filter (i.e. `[0..1]`),
+It is interesting to note that there are two results in the `store()` side-effect even though the interval
+selection is for 1 object. Realize that when the second object is on its way to the `range()` filter (i.e. `[0..1]`),
 it passes through `store()` and thus, stored before filtered.
 
 [gremlin-groovy,modern]


[20/21] tinkerpop git commit: added close method to gremlin python sideeffects

Posted by da...@apache.org.
added close method to gremlin python sideeffects


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

Branch: refs/heads/TINKERPOP-1458
Commit: c6a8fb8e89c7e42f3aa85a088ba8cb9af3ccd1ae
Parents: ffc98f7
Author: davebshow <da...@apache.org>
Authored: Mon Sep 26 13:25:17 2016 -0400
Committer: davebshow <da...@apache.org>
Committed: Mon Sep 26 13:25:17 2016 -0400

----------------------------------------------------------------------
 .../driver/driver_remote_connection.py          | 22 +++++++++++++++++++-
 .../gremlin_python/driver/remote_connection.py  |  6 +++++-
 .../driver/test_driver_remote_connection.py     |  8 ++++++-
 3 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c6a8fb8e/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py b/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py
index cac5e73..e47c8e6 100644
--- a/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py
+++ b/gremlin-python/src/main/jython/gremlin_python/driver/driver_remote_connection.py
@@ -52,7 +52,8 @@ class DriverRemoteConnection(RemoteConnection):
         traversers = self._loop.run_sync(lambda: self.submit_traversal_bytecode(request_id, bytecode))
         side_effect_keys = lambda: self._loop.run_sync(lambda: self.submit_sideEffect_keys(request_id))
         side_effect_value = lambda key: self._loop.run_sync(lambda: self.submit_sideEffect_value(request_id, key))
-        return RemoteTraversal(iter(traversers), RemoteTraversalSideEffects(side_effect_keys, side_effect_value))
+        side_effect_close = lambda: self._loop.run_sync(lambda: self.submit_sideEffect_close(request_id))
+        return RemoteTraversal(iter(traversers), RemoteTraversalSideEffects(side_effect_keys, side_effect_value, side_effect_close))
 
     @gen.coroutine
     def submit_traversal_bytecode(self, request_id, bytecode):
@@ -115,6 +116,25 @@ class DriverRemoteConnection(RemoteConnection):
         raise gen.Return(value)
 
     @gen.coroutine
+    def submit_sideEffect_close(self, request_id):
+        message = {
+            "requestId": {
+                "@type": "g:UUID",
+                "@value": str(uuid.uuid4())
+            },
+            "op": "close",
+            "processor": "traversal",
+            "args": {
+                "sideEffect": {
+                    "@type": "g:UUID",
+                    "@value": request_id
+                }
+            }
+        }
+        result = yield self._execute_message(message)
+        raise gen.Return(result)
+
+    @gen.coroutine
     def _execute_message(self, send_message):
         send_message = b"".join([b"\x21",
                                  b"application/vnd.gremlin-v2.0+json",

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c6a8fb8e/gremlin-python/src/main/jython/gremlin_python/driver/remote_connection.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/driver/remote_connection.py b/gremlin-python/src/main/jython/gremlin_python/driver/remote_connection.py
index 0b84a26..3e7293f 100644
--- a/gremlin-python/src/main/jython/gremlin_python/driver/remote_connection.py
+++ b/gremlin-python/src/main/jython/gremlin_python/driver/remote_connection.py
@@ -57,9 +57,10 @@ class RemoteTraversal(Traversal):
 
 
 class RemoteTraversalSideEffects(TraversalSideEffects):
-    def __init__(self, keys_lambda, value_lambda):
+    def __init__(self, keys_lambda, value_lambda, close_lambda):
         self.keys_lambda = keys_lambda
         self.value_lambda = value_lambda
+        self.close_lambda = close_lambda
 
     def keys(self):
         return self.keys_lambda()
@@ -67,6 +68,9 @@ class RemoteTraversalSideEffects(TraversalSideEffects):
     def get(self, key):
         return self.value_lambda(key)
 
+    def close(self):
+        return self.close_lambda()
+
 
 class RemoteStrategy(TraversalStrategy):
     def __init__(self, remote_connection):

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c6a8fb8e/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py b/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py
index b0efcf1..d96d35d 100644
--- a/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py
+++ b/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py
@@ -22,6 +22,8 @@ __author__ = 'Marko A. Rodriguez (http://markorodriguez.com)'
 import unittest
 from unittest import TestCase
 
+import pytest
+
 from gremlin_python import statics
 from gremlin_python.statics import long
 from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
@@ -103,7 +105,7 @@ class TestDriverRemoteConnection(TestCase):
         assert "ripple" in n.keys()
         assert 3 == n["lop"]
         assert 1 == n["ripple"]
-        #
+
         t = g.withSideEffect('m',32).V().map(lambda: "x: x.sideEffects('m')")
         results = t.toSet()
         assert 1 == len(results)
@@ -115,6 +117,10 @@ class TestDriverRemoteConnection(TestCase):
             raise Exception("Accessing a non-existent key should throw an error")
         except KeyError:
             pass
+        result = t.side_effects.close()
+        assert not result
+        with pytest.raises(KeyError):
+            x = t.side_effects['m']
         connection.close()
 
 


[15/21] tinkerpop git commit: Merge remote-tracking branch 'origin/tp31'

Posted by da...@apache.org.
Merge remote-tracking branch 'origin/tp31'


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

Branch: refs/heads/TINKERPOP-1458
Commit: 3bb8fc9c94a84ebeddbbd620c2ff25134e8324d1
Parents: b8530f7 6f1ccb6
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat Sep 24 20:42:26 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat Sep 24 20:42:26 2016 -0400

----------------------------------------------------------------------
 .../apache/tinkerpop/gremlin/server/auth/SimpleAuthenticator.java   | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------



[21/21] tinkerpop git commit: Merge branch 'TINKERPOP-1458' of https://git-wip-us.apache.org/repos/asf/tinkerpop into TINKERPOP-1458

Posted by da...@apache.org.
Merge branch 'TINKERPOP-1458' of https://git-wip-us.apache.org/repos/asf/tinkerpop into TINKERPOP-1458


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

Branch: refs/heads/TINKERPOP-1458
Commit: 5022cd2a0847cf2730bc2c642720c13f66fa6c95
Parents: c6a8fb8 b430163
Author: davebshow <da...@apache.org>
Authored: Mon Sep 26 13:26:04 2016 -0400
Committer: davebshow <da...@apache.org>
Committed: Mon Sep 26 13:26:04 2016 -0400

----------------------------------------------------------------------

----------------------------------------------------------------------



[02/21] tinkerpop git commit: Graphson int32 is signed

Posted by da...@apache.org.
Graphson int32 is signed

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

Branch: refs/heads/TINKERPOP-1458
Commit: b214954ecdd30357ddadc8fc3c07f0dcd4de5036
Parents: 5573def
Author: Carlos Cheung <ca...@tumvi.com>
Authored: Sun Sep 18 23:33:27 2016 -0400
Committer: GitHub <no...@github.com>
Committed: Sun Sep 18 23:33:27 2016 -0400

----------------------------------------------------------------------
 .../src/main/jython/gremlin_python/structure/io/graphson.py        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b214954e/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
index aae3ab2..638c86e 100644
--- a/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
+++ b/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
@@ -181,7 +181,7 @@ class NumberSerializer(GraphSONSerializer):
     def _dictify(self, number):
         if isinstance(number, bool):  # python thinks that 0/1 integers are booleans
             return number
-        elif isinstance(number, long) or (number > 2147483647): # in python all numbers are int unless specified otherwise
+        elif isinstance(number, long) or (abs(number) > 2147483647): # in python all numbers are int unless specified otherwise
             return _SymbolHelper.objectify("Int64", number)
         elif isinstance(number, int):
             return _SymbolHelper.objectify("Int32", number)


[04/21] tinkerpop git commit: Removed some OptOuts on RemoteGraph.

Posted by da...@apache.org.
Removed some OptOuts on RemoteGraph.

More tests seem to be working now after the GraphSON 2.0 implementation.


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

Branch: refs/heads/TINKERPOP-1458
Commit: f5ef7c13bce8f9f2b0a057c6c2c26d26a32c1e09
Parents: 6b03f61
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Sep 20 17:18:18 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Sep 20 17:18:18 2016 -0400

----------------------------------------------------------------------
 .../gremlin/process/remote/RemoteGraph.java     | 44 +++++---------------
 1 file changed, 10 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f5ef7c13/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteGraph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteGraph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteGraph.java
index 320a60d..2bc310a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteGraph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteGraph.java
@@ -51,44 +51,12 @@ import java.util.Iterator;
 @Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupCountTest",
         method = "g_V_hasXnoX_groupCountXaX_capXaX",
-        reason = "This test asserts an empty side-effect which reflects as a null rather than an \"empty\" and thus doens't assert")
-@Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.branch.BranchTest",
-        method = "g_V_branchXlabelX_optionXperson__ageX_optionXsoftware__langX_optionXsoftware__nameX",
-        reason = "Issues with Longs")
-@Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.branch.ChooseTest",
-        method = "g_V_chooseXout_countX_optionX2L__nameX_optionX3L__valueMapX",
-        reason = "Issues with Longs")
-@Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.branch.ChooseTest",
-        method = "g_V_chooseXlabel_eqXpersonX__outXknowsX__inXcreatedXX_name",
-        reason = "Issues with Longs")
-@Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SackTest",
-        method = "g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack",
-        reason = "Issues with BigInteger")
-@Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest",
-        method = "g_withSideEffectXa_g_VX2XX_VX1X_out_whereXneqXaXX",
-        reason = "Issues with Longs")
-@Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexTest",
-        method = "g_VXlistXv1_v2_v3XX_name",
-        reason = "Issues with ids")
-@Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTest",
-        method = "g_VXv1X_hasXage_gt_30X",
-        reason = "Issues with ids")
+        reason = "This test asserts an empty side-effect which reflects as a null rather than an \"empty\" and thus doesn't assert")
 @Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.PeerPressureTest",
         method = "*",
         reason = "hmmmm")
 @Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.ProjectTest",
-        method = "*",
-        reason = "hmmmm")
-@Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.PageRankTest",
         method = "*",
         reason = "hmmmm")
@@ -97,9 +65,17 @@ import java.util.Iterator;
         method = "*",
         reason = "hmmmm")
 @Graph.OptOut(
+        test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.ProjectTest",
+        method = "g_V_hasLabelXpersonX_projectXa_bX_byXoutE_countX_byXageX",
+        reason = "Not happy in OLAP.")
+@Graph.OptOut(
+        test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.ProjectTest",
+        method = "g_V_outXcreatedX_projectXa_bX_byXnameX_byXinXcreatedX_countX_order_byXselectXbX__decrX_selectXaX",
+        reason = "Not happy in OLAP.")
+@Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.CoreTraversalTest",
         method = "*",
-        reason = "RemoteGraph can't serialize a lambda so the test fails before it has a chance for the Traversal to be evaluated")
+        reason = "The test suite does not support profiling or lambdas and for groovy tests: 'Could not locate method: GraphTraversalSource.withStrategies([{traversalCategory=interface org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy$DecorationStrategy}])'")
 @Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.ProgramTest",
         method = "*",


[13/21] tinkerpop git commit: Merge branch 'pr-432'

Posted by da...@apache.org.
Merge branch 'pr-432'


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

Branch: refs/heads/TINKERPOP-1458
Commit: b8530f7029b8a14d1b0cfdde191acd6295356052
Parents: 8eefb70 5060dce
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Sep 23 12:13:25 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Sep 23 12:13:25 2016 -0400

----------------------------------------------------------------------
 .../io/graphson/GraphSONSerializerProvider.java | 12 +++++++---
 .../ser/GraphSONMessageSerializerV2d0Test.java  | 24 ++++++++++++++++++++
 2 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[08/21] tinkerpop git commit: Combined wheel/tar.gz assembly commands to one

Posted by da...@apache.org.
Combined wheel/tar.gz assembly commands to one

This was an important fix for SNAPSHOT deployments. When executed as two commands you would get two different timestamps on the artifacts: one for whl and one for tar.gz. When the went to pypi, they woudl show up as two separate versions CTR


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

Branch: refs/heads/TINKERPOP-1458
Commit: 9ff15d6dfb6b8934b9ab66108a26f14317097f24
Parents: 3e49532
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Sep 22 16:19:07 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Sep 22 16:24:44 2016 -0400

----------------------------------------------------------------------
 gremlin-python/pom.xml | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9ff15d6d/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index 76afe60..24f1ca4 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -426,13 +426,7 @@
                                               failonerror="true">
                                             <env key="VERSION" value="${project.version}"/>
                                             <env key="PYTHONPATH" value=""/>
-                                            <arg line="setup.py sdist"/>
-                                        </exec>
-                                        <exec executable="env/bin/python" dir="${project.build.directory}/python-packaged"
-                                              failonerror="true">
-                                            <env key="VERSION" value="${project.version}"/>
-                                            <env key="PYTHONPATH" value=""/>
-                                            <arg line="setup.py bdist_wheel"/>
+                                            <arg line="setup.py sdist bdist_wheel"/>
                                         </exec>
                                     </target>
                                 </configuration>


[09/21] tinkerpop git commit: Added notes to dev docs on SNAPSHOT deployment CTR

Posted by da...@apache.org.
Added notes to dev docs on SNAPSHOT deployment CTR


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

Branch: refs/heads/TINKERPOP-1458
Commit: 8934345545157ff605d144b85dc921efe1f290f8
Parents: 9ff15d6
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Sep 22 16:24:53 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Sep 22 16:24:53 2016 -0400

----------------------------------------------------------------------
 docs/src/dev/developer/release.asciidoc | 32 +++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/89343455/docs/src/dev/developer/release.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/release.asciidoc b/docs/src/dev/developer/release.asciidoc
index f4d29ff..3aa6b7e 100644
--- a/docs/src/dev/developer/release.asciidoc
+++ b/docs/src/dev/developer/release.asciidoc
@@ -32,10 +32,40 @@ from a previous version or from recent `SNAPSHOT`. When using one generated for
 commands end up being set to the version that is being released, making cut and paste of those commands less labor
 intensive and error prone.
 
-IMPORTANT: The following instructions assume that the release manager's <<development-environment,environment> is setup
+IMPORTANT: The following instructions assume that the release manager's <<development-environment,environment>> is setup
 properly for release and includes a `.glv` file in `gremlin-python` as described in the <<python-environment,Python Environment>>
 section, so that the `gremlin-python` module builds in full.
 
+Development Versions
+~~~~~~~~~~~~~~~~~~~~
+
+A "development version" or snapshot (in Java parlance) is not an "official" release. Artifacts produced for a
+snapshot are solely for the convenience of providers and other developers who want to use the latest releases of
+TinkerPop. These releases do not require a VOTE and do not require a "release manager". Any PMC member can deploy them.
+It is important to note that these releases cannot be promoted outside of the developer mailing list and should not be
+recommended for use beyond the purpose of evaluation and testing.
+
+IMPORTANT: A development release must contain the suffix "-SNAPSHOT" in the `pom.xml`.
+
+For JVM-based artifacts, simply use the following command:
+
+[source,text]
+mvn clean deploy
+
+and artifacts will be pushed to the link:http://repository.apache.org/snapshots/[Apache Snapshot Repository]. Python
+development artifacts must be deployed separately with a separate command:
+
+[source,text]
+mvn clean deploy -pl gremlin-python -Dpypi
+
+Python does not use the snapshot model that the JVM does, however, the build is smart in that it will dynamically
+generate a development version number for the Python artifacts when "-SNAPSHOT" is in the `pom.xml`. The previous
+command will push the development version to link:https://pypi.python.org/pypi/gremlinpython/[pypi] for distribution.
+
+IMPORTANT: The `clean` in the above commands is more important to the pypi deployment because the process will deploy
+anything found in the `target/python-packaged/dist` directory. Since the names of the artifacts are based on
+timestamps, they will not overwrite one another and multiple artifacts will get uploaded.
+
 Pre-flight Check
 ----------------
 


[12/21] tinkerpop git commit: Merge branch 'pr-418'

Posted by da...@apache.org.
Merge branch 'pr-418'


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

Branch: refs/heads/TINKERPOP-1458
Commit: 8eefb706210c9847b0c0b5cb4f24e9ddfe254791
Parents: 2305159 b214954
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Sep 23 12:12:23 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Sep 23 12:12:23 2016 -0400

----------------------------------------------------------------------
 .../src/main/jython/gremlin_python/structure/io/graphson.py        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8eefb706/gremlin-python/src/main/jython/gremlin_python/structure/io/graphson.py
----------------------------------------------------------------------


[10/21] tinkerpop git commit: Merge branch 'pr-430'

Posted by da...@apache.org.
Merge branch 'pr-430'


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

Branch: refs/heads/TINKERPOP-1458
Commit: 3f79b0db73959218bd026c038332191e87c42d91
Parents: 8934345 bf88829
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Fri Sep 23 08:54:01 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Fri Sep 23 08:54:01 2016 +0200

----------------------------------------------------------------------
 docs/src/reference/the-traversal.asciidoc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3f79b0db/docs/src/reference/the-traversal.asciidoc
----------------------------------------------------------------------


[18/21] tinkerpop git commit: TraversalSource and Traversal implement AutoCloseable.

Posted by da...@apache.org.
TraversalSource and Traversal implement AutoCloseable.

This allowed for TraversalSource instances created using withRemote() to close out open RemoteConnection instances. It also sets up for side-effects created by a "remote" Traversal to be cleared from cache on the server. That work is not done yet and is reserved for a different ticket.


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

Branch: refs/heads/TINKERPOP-1458
Commit: 14211691effffec1f9fdf6ddd92c5833dff234de
Parents: 817961f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat Sep 24 22:18:56 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat Sep 24 22:18:56 2016 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../src/reference/gremlin-applications.asciidoc | 10 +++-
 .../upgrade/release-3.2.x-incubating.asciidoc   | 25 +++++++++
 .../traversal/RemoteTraversalSideEffects.java   |  6 ++-
 .../gremlin/process/traversal/Traversal.java    |  7 ++-
 .../process/traversal/TraversalSource.java      | 15 +++---
 .../dsl/graph/GraphTraversalSource.java         | 24 +++++++--
 .../dsl/graph/GraphTraversalSourceTest.java     | 53 ++++++++++++++++++++
 .../driver/remote/DriverRemoteTraversal.java    | 13 +++++
 .../DriverRemoteTraversalSideEffects.java       |  7 +++
 10 files changed, 147 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index a1b405f..1272598 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -34,6 +34,7 @@ TinkerPop 3.2.3 (Release Date: NOT OFFICIALLY RELEASED YET)
 * `TraversalRing` returns a `null` if it does not contain traversals (previously `IdentityTraversal`).
 * Fixed a `JavaTranslator` bug where `Bytecode` instructions were being mutated during translation.
 * Added `Path` to Gremlin-Python with respective GraphSON 2.0 deserializer.
+* `Traversal` and `TraversalSource` now implement `AutoCloseable`.
 * Renamed the `empty.result.indicator` preference to `result.indicator.null` in Gremlin Console
 * If `result.indicator.null` is set to an empty string, then no "result line" is printed in Gremlin Console.
 * VertexPrograms can now declare traverser requirements, e.g. to have access to the path when used with `.program()`.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/docs/src/reference/gremlin-applications.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-applications.asciidoc b/docs/src/reference/gremlin-applications.asciidoc
index 2c093fa..8a3a9f7 100644
--- a/docs/src/reference/gremlin-applications.asciidoc
+++ b/docs/src/reference/gremlin-applications.asciidoc
@@ -906,8 +906,13 @@ the `TraversalSource` be generated with `EmptyGraph` as follows:
 graph = EmptyGraph.instance()
 g = graph.traversal().withRemote('conf/remote-graph.properties')
 g.V().valueMap(true)
+g.close()
 ----
 
+Note the call to `close()` above. The call to `withRemote()` internally instantiates a `Client` instance that can only
+be released by "closing" the `GraphTraversalSource`. It is important to take that step to release resources created
+in that step.
+
 If working with multiple remote `TraversalSource` instances it is more efficient to construct a `Cluster` object and
 then re-use it.
 
@@ -917,11 +922,14 @@ cluster = Cluster.open('conf/remote-objects.yaml')
 graph = EmptyGraph.instance()
 g = graph.traversal().withRemote(DriverRemoteConnection.using(cluster, "g"))
 g.V().valueMap(true)
+g.close()
 cluster.close()
 ----
 
 If the `Cluster` instance is supplied externally, as is shown above, then it is not closed implicitly by the close of
-the `RemoteGraph`.  In this case, the `Cluster` must be closed explicitly.
+"g".  Closing "g" will only close the `Client` instance associated with that `TraversalSource`. In this case, the
+`Cluster` must also be closed explicitly. Closing "g" and the "cluster" aren't actually both necessary - the close of
+a `Cluster` will close all `Client` instance spawned by the `Cluster`.
 
 IMPORTANT: `RemoteGraph` uses the `TraversalOpProcessor` in Gremlin Server which requires a cache to enable the
 retrieval of side-effects (if the `Traversal` produces any). That cache can be configured (e.g. controlling eviction

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/docs/src/upgrade/release-3.2.x-incubating.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/upgrade/release-3.2.x-incubating.asciidoc b/docs/src/upgrade/release-3.2.x-incubating.asciidoc
index f9c62e2..af3fa22 100644
--- a/docs/src/upgrade/release-3.2.x-incubating.asciidoc
+++ b/docs/src/upgrade/release-3.2.x-incubating.asciidoc
@@ -108,6 +108,31 @@ gremlin> g.V().hasLabel("software").count()
 TinkerPop 3.2.3 fixes this misbehavior and all `has()` method overloads behave like before, except that they no longer
 support no arguments.
 
+TraversalSource.close()
+^^^^^^^^^^^^^^^^^^^^^^^
+
+`TraversalSource` now implements `AutoCloseable`, which means that the `close()` method is now available. This new
+method is important in cases where `withRemote()` is used, as `withRemote()` can open "expensive" resources that need
+to be released.
+
+In the case of TinkerPop's `DriverRemoteConnection`, `close()` will destroy the `Client` instance that is created
+internally by `withRemote()` as shown below:
+
+[source,text]
+----
+gremlin> graph = EmptyGraph.instance()
+==>emptygraph[empty]
+gremlin> g = graph.traversal().withRemote('conf/remote-graph.properties')
+==>graphtraversalsource[emptygraph[empty], standard]
+gremlin> g.close()
+gremlin>
+----
+
+Note that the `withRemote()` method will call `close()` on a `RemoteConnection` passed directly to it as well, so
+there is no need to do that manually.
+
+See: link:https://issues.apache.org/jira/browse/TINKERPOP-790[TINKERPOP-790]
+
 TinkerPop 3.2.2
 ---------------
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversalSideEffects.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversalSideEffects.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversalSideEffects.java
index e41a42d..97fb36d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversalSideEffects.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversalSideEffects.java
@@ -23,5 +23,9 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
-public interface RemoteTraversalSideEffects extends TraversalSideEffects {
+public interface RemoteTraversalSideEffects extends TraversalSideEffects, AutoCloseable {
+    @Override
+    public default void close() throws Exception {
+        //  do nothing
+    }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
index eec9d3f..edc18e0 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
@@ -57,7 +57,7 @@ import java.util.stream.StreamSupport;
  *
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public interface Traversal<S, E> extends Iterator<E>, Serializable, Cloneable {
+public interface Traversal<S, E> extends Iterator<E>, Serializable, Cloneable, AutoCloseable {
 
     public static class Symbols {
         private Symbols() {
@@ -231,6 +231,11 @@ public interface Traversal<S, E> extends Iterator<E>, Serializable, Cloneable {
         }
     }
 
+    @Override
+    public default void close() throws Exception {
+        // do nothing by default
+    }
+
     /**
      * A collection of {@link Exception} types associated with Traversal execution.
      */

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
index 7428d56..0d690e9 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
@@ -53,7 +53,7 @@ import java.util.function.UnaryOperator;
  *
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public interface TraversalSource extends Cloneable {
+public interface TraversalSource extends Cloneable, AutoCloseable {
 
     public static final String GREMLIN_REMOTE = "gremlin.remote.";
     public static final String GREMLIN_REMOTE_CONNECTION_CLASS = GREMLIN_REMOTE + "remoteConnectionClass";
@@ -427,14 +427,12 @@ public interface TraversalSource extends Cloneable {
 
     /**
      * Configures the {@code TraversalSource} as a "remote" to issue the {@link Traversal} for execution elsewhere.
+     * Implementations should track {@link RemoteConnection} instances that are created and call
+     * {@link RemoteConnection#close()} on them when the {@code TraversalSource} itself is closed.
      *
      * @param connection the {@link RemoteConnection} instance to use to submit the {@link Traversal}.
      */
-    public default TraversalSource withRemote(final RemoteConnection connection) {
-        final TraversalSource clone = this.clone();
-        clone.getStrategies().addStrategies(new RemoteStrategy(connection));
-        return clone;
-    }
+    public TraversalSource withRemote(final RemoteConnection connection);
 
     public default Optional<Class> getAnonymousTraversalClass() {
         return Optional.empty();
@@ -450,6 +448,11 @@ public interface TraversalSource extends Cloneable {
     @SuppressWarnings("CloneDoesntDeclareCloneNotSupportedException")
     public TraversalSource clone();
 
+    @Override
+    public default void close() throws Exception {
+        // do nothing
+    }
+
     /**
      * @deprecated As of release 3.2.0. Please use {@link Graph#traversal(Class)}.
      */

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
index fdafb57..0525f8d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
@@ -19,10 +19,10 @@
 package org.apache.tinkerpop.gremlin.process.traversal.dsl.graph;
 
 import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.tinkerpop.gremlin.process.computer.Computer;
 import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
+import org.apache.tinkerpop.gremlin.process.remote.traversal.strategy.decoration.RemoteStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.Bindings;
 import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
@@ -41,10 +41,8 @@ import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Transaction;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.tinkerpop.gremlin.structure.util.GraphFactory;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
-import java.lang.reflect.Constructor;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
@@ -60,7 +58,7 @@ import java.util.function.UnaryOperator;
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
 public class GraphTraversalSource implements TraversalSource {
-
+    protected transient RemoteConnection connection;
     protected final Graph graph;
     protected TraversalStrategies strategies;
     protected Bytecode bytecode = new Bytecode();
@@ -242,7 +240,19 @@ public class GraphTraversalSource implements TraversalSource {
 
     @Override
     public GraphTraversalSource withRemote(final RemoteConnection connection) {
-        return (GraphTraversalSource) TraversalSource.super.withRemote(connection);
+        try {
+            // check if someone called withRemote() more than once, so just release resources on the initial
+            // connection as you can't have more than one. maybe better to toss IllegalStateException??
+            if (this.connection != null)
+                this.connection.close();
+        } catch (Exception ignored) {
+            // not sure there's anything to do here
+        }
+
+        this.connection = connection;
+        final TraversalSource clone = this.clone();
+        clone.getStrategies().addStrategies(new RemoteStrategy(connection));
+        return (GraphTraversalSource) clone;
     }
 
     //// SPAWNS
@@ -309,6 +319,10 @@ public class GraphTraversalSource implements TraversalSource {
         return this.graph.tx();
     }
 
+    @Override
+    public void close() throws Exception {
+        if (connection != null) connection.close();
+    }
 
     @Override
     public String toString() {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSourceTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSourceTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSourceTest.java
new file mode 100644
index 0000000..f9cf1df
--- /dev/null
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSourceTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.process.traversal.dsl.graph;
+
+import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
+import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
+import org.junit.Test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public class GraphTraversalSourceTest {
+    @Test
+    public void shouldCloseRemoteConnectionOnWithRemote() throws Exception {
+        final RemoteConnection mock = mock(RemoteConnection.class);
+        final GraphTraversalSource g = EmptyGraph.instance().traversal().withRemote(mock);
+        g.close();
+
+        verify(mock, times(1)).close();
+    }
+
+    @Test
+    public void shouldNotAllowLeakRemoteConnectionsIfMultipleAreCreated() throws Exception {
+
+        final RemoteConnection mock1 = mock(RemoteConnection.class);
+        final RemoteConnection mock2 = mock(RemoteConnection.class);
+        final GraphTraversalSource g = EmptyGraph.instance().traversal().withRemote(mock1).withRemote(mock2);
+        g.close();
+
+        verify(mock1, times(1)).close();
+        verify(mock2, times(1)).close();
+    }
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversal.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversal.java
index 71abc77..14d89cc 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversal.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversal.java
@@ -46,6 +46,7 @@ public class DriverRemoteTraversal<S, E> extends AbstractRemoteTraversal<S, E> {
     private final Iterator<Traverser.Admin<E>> traversers;
     private Traverser.Admin<E> lastTraverser = EmptyTraverser.instance();
     private final RemoteTraversalSideEffects sideEffects;
+    private final Client client;
 
     public DriverRemoteTraversal(final ResultSet rs, final Client client, final boolean attach, final Optional<Configuration> conf) {
         // attaching is really just for testing purposes. it doesn't make sense in any real-world scenario as it would
@@ -59,6 +60,7 @@ public class DriverRemoteTraversal<S, E> extends AbstractRemoteTraversal<S, E> {
             this.traversers = new TraverserIterator<>(rs.iterator());
         }
 
+        this.client = client;
         this.sideEffects = new DriverRemoteTraversalSideEffects(
                 client,
                 rs.getOriginalRequestMessage().getRequestId(),
@@ -100,6 +102,17 @@ public class DriverRemoteTraversal<S, E> extends AbstractRemoteTraversal<S, E> {
         }
     }
 
+    /**
+     * Releases server-side resources related to this traversal (i.e. clearing the side-effect cache of data related to
+     * this traversal.
+     */
+    @Override
+    public void close() throws Exception {
+        sideEffects.close();
+
+        // leave the client open as it is owned by the DriverRemoteConnection not the traversal or side-effects
+    }
+
     static class TraverserIterator<E> implements Iterator<Traverser.Admin<E>> {
 
         private final Iterator<Result> inner;

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/14211691/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversalSideEffects.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversalSideEffects.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversalSideEffects.java
index bd51e67..85d7abc 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversalSideEffects.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTraversalSideEffects.java
@@ -98,4 +98,11 @@ public class DriverRemoteTraversalSideEffects extends AbstractRemoteTraversalSid
 
         return keys;
     }
+
+    @Override
+    public void close() throws Exception {
+        // todo: need to add a call to "close" the side effects on the server - probably should ensure request only sends once
+
+        // leave the client open as it is owned by the DriverRemoteConnection not the traversal or side-effects
+    }
 }


[16/21] tinkerpop git commit: Removed todo in favor of TINKERPOP-1465

Posted by da...@apache.org.
Removed todo in favor of TINKERPOP-1465


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

Branch: refs/heads/TINKERPOP-1458
Commit: ac55bd051e7c8b1b74c31d345048ab7741e1dfe0
Parents: 6f1ccb6
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat Sep 24 20:45:49 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat Sep 24 20:45:49 2016 -0400

----------------------------------------------------------------------
 .../apache/tinkerpop/gremlin/server/auth/AllowAllAuthenticator.java | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ac55bd05/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/AllowAllAuthenticator.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/AllowAllAuthenticator.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/AllowAllAuthenticator.java
index fbc497c..584dac1 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/AllowAllAuthenticator.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/auth/AllowAllAuthenticator.java
@@ -51,7 +51,6 @@ public final class AllowAllAuthenticator implements Authenticator {
     public SaslNegotiator newSaslNegotiator() {
         // While this method is deprecated, it remains here to ensure backward compatibility with the old method. In
         // this way the integration tests can continue to execute here
-        // todo: remove this method on a future version and implement the new one
         return AUTHENTICATOR_INSTANCE;
     }
 


[03/21] tinkerpop git commit: Fixed Lambda serialization in bytecode for java/groovy.

Posted by da...@apache.org.
Fixed Lambda serialization in bytecode for java/groovy.

Standard tests using lambdas are ignored which is why we didn't catch this in the process tests. I added a single test to GremlinServerIntegrationTest to just validate that lambdas could be sent, so we at least have a basic smoke test for that functionality.


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

Branch: refs/heads/TINKERPOP-1458
Commit: 6b03f61723837809c61951a516d5a8207d8d18f1
Parents: f8092a1
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Sep 20 16:24:34 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Sep 20 16:27:50 2016 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../io/graphson/GraphSONTypeSerializer.java     |  3 +++
 .../structure/io/gryo/GryoSerializers.java      |  7 ++++-
 .../AbstractGremlinServerIntegrationTest.java   |  2 +-
 .../server/GremlinServerIntegrateTest.java      | 27 ++++++++++++++++++++
 5 files changed, 38 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6b03f617/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 394cc33..a1b405f 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -28,6 +28,7 @@ TinkerPop 3.2.3 (Release Date: NOT OFFICIALLY RELEASED YET)
 
 * Fixed a bug in Gremlin-Python `P` where predicates reversed the order of the predicates.
 * Added tests to `DedupTest` for the `dedup(Scope, String...)` overload.
+* Fixed a bug in serialization of `Lambda` instances in GraphSON, which prevented their use in remote traversals.
 * Fixed a naming bug in Gremlin-Python where `P._and` and `P._or` should be `P.and_` and `P.or_`. (*breaking*)
 * `where()` predicate-based steps now support `by()`-modulation.
 * `TraversalRing` returns a `null` if it does not contain traversals (previously `IdentityTraversal`).

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6b03f617/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java
index d1a70af..6198168 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java
@@ -26,6 +26,7 @@ import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.apache.tinkerpop.gremlin.util.function.Lambda;
 import org.apache.tinkerpop.shaded.jackson.annotation.JsonTypeInfo;
 import org.apache.tinkerpop.shaded.jackson.core.JsonGenerator;
 import org.apache.tinkerpop.shaded.jackson.databind.BeanProperty;
@@ -198,6 +199,8 @@ public class GraphSONTypeSerializer extends TypeSerializer {
             return InetAddress.class;
         } else if (Traverser.class.isAssignableFrom(c)) {
             return Traverser.class;
+        } else if (Lambda.class.isAssignableFrom(c)) {
+            return Lambda.class;
         }
         return c;
     }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6b03f617/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java
index f543446..945af87 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializers.java
@@ -27,6 +27,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 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.gryo.kryoshim.InputShim;
 import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShim;
 import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.OutputShim;
@@ -125,7 +126,11 @@ public final class GryoSerializers {
     }
 
     public final static class BytecodeSerializer implements SerializerShim<Bytecode> {
-        private static final GraphSONMapper mapper = GraphSONMapper.build().version(GraphSONVersion.V2_0).create();
+        private static final GraphSONMapper mapper = GraphSONMapper.build()
+                .version(GraphSONVersion.V2_0)
+                .addCustomModule(GraphSONXModuleV2d0.build().create(false))
+                .create();
+
         @Override
         public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final Bytecode bytecode) {
             try {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6b03f617/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/AbstractGremlinServerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/AbstractGremlinServerIntegrationTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/AbstractGremlinServerIntegrationTest.java
index ba47218..12fadb6 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/AbstractGremlinServerIntegrationTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/AbstractGremlinServerIntegrationTest.java
@@ -37,7 +37,7 @@ import static org.junit.Assume.assumeThat;
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 public abstract class AbstractGremlinServerIntegrationTest {
-    private GremlinServer server;
+    protected GremlinServer server;
     private final static String epollOption = "gremlin.server.epoll";
     private static final boolean GREMLIN_SERVER_EPOLL = "true".equalsIgnoreCase(System.getProperty(epollOption));
     private static final Logger logger = LoggerFactory.getLogger(AbstractGremlinServerIntegrationTest.class);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6b03f617/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index e1d4d89..5a36acf 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
@@ -25,6 +25,8 @@ import io.netty.handler.ssl.SslContextBuilder;
 import io.netty.handler.ssl.SslProvider;
 import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
 import io.netty.handler.ssl.util.SelfSignedCertificate;
+import org.apache.commons.configuration.BaseConfiguration;
+import org.apache.commons.configuration.Configuration;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.log4j.Logger;
 import org.apache.tinkerpop.gremlin.driver.Client;
@@ -35,6 +37,7 @@ import org.apache.tinkerpop.gremlin.driver.Tokens;
 import org.apache.tinkerpop.gremlin.driver.message.RequestMessage;
 import org.apache.tinkerpop.gremlin.driver.message.ResponseMessage;
 import org.apache.tinkerpop.gremlin.driver.message.ResponseStatusCode;
+import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection;
 import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
 import org.apache.tinkerpop.gremlin.driver.simple.NioClient;
 import org.apache.tinkerpop.gremlin.driver.simple.SimpleClient;
@@ -45,11 +48,16 @@ import org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.ConfigurationCustom
 import org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.InterpreterModeCustomizerProvider;
 import org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.SimpleSandboxExtension;
 import org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.TimedInterruptCustomizerProvider;
+import org.apache.tinkerpop.gremlin.process.remote.RemoteGraph;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
+import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.server.channel.NioChannelizer;
 import org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex;
+import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
 import org.apache.tinkerpop.gremlin.util.Log4jRecordingAppender;
+import org.apache.tinkerpop.gremlin.util.function.Lambda;
 import org.hamcrest.CoreMatchers;
 import org.junit.After;
 import org.junit.Before;
@@ -67,9 +75,11 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Supplier;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
+import static org.apache.tinkerpop.gremlin.process.traversal.TraversalSource.GREMLIN_REMOTE_CONNECTION_CLASS;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -801,4 +811,21 @@ public class GremlinServerIntegrateTest extends AbstractGremlinServerIntegration
             assertEquals("jason", v.value("name"));
         }
     }
+
+    @Test
+    public void shouldSupportLambdasUsingWithRemote() throws Exception {
+        final Supplier<Graph> graphGetter = () -> server.getServerGremlinExecutor().getGraphManager().getGraphs().get("graph");
+        final Configuration conf = new BaseConfiguration() {{
+            setProperty(Graph.GRAPH, RemoteGraph.class.getName());
+            setProperty(GREMLIN_REMOTE_CONNECTION_CLASS, DriverRemoteConnection.class.getName());
+            setProperty(DriverRemoteConnection.GREMLIN_REMOTE_DRIVER_SOURCENAME, "g");
+            setProperty("hidden.for.testing.only", graphGetter);
+        }};
+
+        final Graph graph = EmptyGraph.instance();
+        final GraphTraversalSource g = graph.traversal().withRemote(conf);
+        g.addV("person").property("age", 20).iterate();
+        g.addV("person").property("age", 10).iterate();
+        assertEquals(50L, g.V().hasLabel("person").map(Lambda.function("it.get().value('age') + 10")).sum().next());
+    }
 }


[11/21] tinkerpop git commit: Merge remote-tracking branch 'origin/TINKERPOP-1457'

Posted by da...@apache.org.
Merge remote-tracking branch 'origin/TINKERPOP-1457'


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

Branch: refs/heads/TINKERPOP-1458
Commit: 230515947ef9e514428880dede1b424e599b2251
Parents: 3f79b0d f5ef7c1
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Sep 23 12:10:31 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Sep 23 12:10:31 2016 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../gremlin/process/remote/RemoteGraph.java     | 44 +++++---------------
 .../io/graphson/GraphSONTypeSerializer.java     |  3 ++
 .../structure/io/gryo/GryoSerializers.java      |  7 +++-
 .../AbstractGremlinServerIntegrationTest.java   |  2 +-
 .../server/GremlinServerIntegrateTest.java      | 27 ++++++++++++
 6 files changed, 48 insertions(+), 36 deletions(-)
----------------------------------------------------------------------



[17/21] tinkerpop git commit: Merge remote-tracking branch 'origin/tp31'

Posted by da...@apache.org.
Merge remote-tracking branch 'origin/tp31'


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

Branch: refs/heads/TINKERPOP-1458
Commit: 817961f5c9a4d752be95731c6692016db7406c10
Parents: 3bb8fc9 ac55bd0
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat Sep 24 20:47:36 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat Sep 24 20:47:36 2016 -0400

----------------------------------------------------------------------
 .../apache/tinkerpop/gremlin/server/auth/AllowAllAuthenticator.java | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------