You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/04/19 16:55:16 UTC

[01/50] tinkerpop git commit: Merge branch 'TINKERPOP-1911' into tp32 [Forced Update!]

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1656 8538892a4 -> bb583e3a4 (forced update)


Merge branch 'TINKERPOP-1911' into tp32

Conflicts:
	CHANGELOG.asciidoc


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

Branch: refs/heads/TINKERPOP-1656
Commit: d3be13b4cbc463a652bf94c1b56fb7050abed20d
Parents: f80a542 d9db27f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Mar 12 12:12:59 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Mar 12 12:12:59 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../jsr223/JavaTranslatorBenchmark.java         | 76 ++++++++++++++++++++
 .../gremlin/jsr223/JavaTranslator.java          | 58 ++++++++++++---
 3 files changed, 125 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3be13b4/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 66fbbb2,54e5347..a31bdf2
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -28,7 -27,7 +28,8 @@@ image::https://raw.githubusercontent.co
  * Modified `GremlinDslProcessor` so that it generated the `getAnonymousTraversalClass()` method to return the DSL version of `__`.
  * Added the "Kitchen Sink" test data set.
  * Fixed deserialization of `P.not()` for GraphSON.
 +* Bumped to Jackson 2.9.4.
+ * Improved performance of `JavaTranslator` by caching reflected methods required for traversal construction.
  * Added `idleConnectionTimeout` and `keepAliveInterval` to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients.
  * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits.
  * Delayed setting of the request identifier until `RequestMessage` construction by the builder.


[17/50] tinkerpop git commit: Updated NOTICE for netty after version bump to 4.0.56 CTR

Posted by sp...@apache.org.
Updated NOTICE for netty after version bump to 4.0.56 CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 3aa733667dc9e8e934bdcba8165298987e8d3af8
Parents: eeea869
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Mar 19 09:14:18 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Mar 19 09:16:33 2018 -0400

----------------------------------------------------------------------
 gremlin-console/src/main/static/NOTICE | 4 ++--
 gremlin-server/src/main/static/NOTICE  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa73366/gremlin-console/src/main/static/NOTICE
----------------------------------------------------------------------
diff --git a/gremlin-console/src/main/static/NOTICE b/gremlin-console/src/main/static/NOTICE
index a6ffd91..91e622f 100644
--- a/gremlin-console/src/main/static/NOTICE
+++ b/gremlin-console/src/main/static/NOTICE
@@ -54,7 +54,7 @@ JavaTuples 1.2
 Copyright (c) 2010, The JAVATUPLES team (http://www.javatuples.org)
 
 ------------------------------------------------------------------------
-Netty 4.0.53
+Netty 4.0.56
 ------------------------------------------------------------------------
-Copyright 2014 The Netty Project
+Copyright 2011 The Netty Project
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa73366/gremlin-server/src/main/static/NOTICE
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/static/NOTICE b/gremlin-server/src/main/static/NOTICE
index ef4d547..72c10cc 100644
--- a/gremlin-server/src/main/static/NOTICE
+++ b/gremlin-server/src/main/static/NOTICE
@@ -55,6 +55,6 @@ LongAdder), which was released with the following comments:
     http://creativecommons.org/publicdomain/zero/1.0/
 
 ------------------------------------------------------------------------
-Netty 4.0.53
+Netty 4.0.56
 ------------------------------------------------------------------------
-Copyright 2014 The Netty Project
+Copyright 2011 The Netty Project


[45/50] tinkerpop git commit: Fixed grammar mistakes in javadocs for DriverRemoteTraversal CTR

Posted by sp...@apache.org.
Fixed grammar mistakes in javadocs for DriverRemoteTraversal CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 430c97d14ecc173eaa0e3d38fe9f78623bc005d4
Parents: a7c8ea1
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Apr 18 17:12:43 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Apr 18 17:12:43 2018 -0400

----------------------------------------------------------------------
 .../tinkerpop/gremlin/driver/remote/DriverRemoteTraversal.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/430c97d1/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 d3f290c..d991f21 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
@@ -40,9 +40,9 @@ import java.util.function.Supplier;
 
 /**
  * A {@link AbstractRemoteTraversal} implementation for the Gremlin Driver. This {@link Traversal} implementation is
- * typically iterated from with {@link RemoteStep} where it the {@link #nextTraverser()} method is called. While
- * this class provides implementations for both {@link #next()} and {@link #hasNext()} that unroll "bulked" results,
- * those methods are not called directly from with TinkerPop remoting.
+ * typically iterated from {@link RemoteStep} where the {@link #nextTraverser()} method is called. While this class
+ * provides implementations for both {@link #next()} and {@link #hasNext()} that unroll "bulked" results, those methods
+ * are not called directly from with TinkerPop remoting.
  *
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */


[37/50] tinkerpop git commit: The package name should be 'gremlin' and not 'gremlin-javascript'

Posted by sp...@apache.org.
The package name should be 'gremlin' and not 'gremlin-javascript'

That naming change was missed on 3.2.8/3.3.2 release for some reason. CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 84d1bf8fc3e780a1819efeef6b7f6b2253d5c472
Parents: 1592c4f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Apr 9 11:07:55 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Apr 9 11:07:55 2018 -0400

----------------------------------------------------------------------
 gremlin-javascript/glv/PackageJson.template                        | 2 +-
 .../src/main/javascript/gremlin-javascript/README.md               | 2 +-
 .../src/main/javascript/gremlin-javascript/package.json            | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/84d1bf8f/gremlin-javascript/glv/PackageJson.template
----------------------------------------------------------------------
diff --git a/gremlin-javascript/glv/PackageJson.template b/gremlin-javascript/glv/PackageJson.template
index c929e75..b87bdd1 100644
--- a/gremlin-javascript/glv/PackageJson.template
+++ b/gremlin-javascript/glv/PackageJson.template
@@ -18,7 +18,7 @@
     under the License.
 */
 %>{
-  "name": "gremlin-javascript",
+  "name": "gremlin",
   "version": "<%= version %>",
   "description": "JavaScript Gremlin Language Variant",
   "author": "Apache TinkerPop team",

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/84d1bf8f/gremlin-javascript/src/main/javascript/gremlin-javascript/README.md
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/README.md b/gremlin-javascript/src/main/javascript/gremlin-javascript/README.md
index 388e175..6c5638d 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/README.md
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/README.md
@@ -29,7 +29,7 @@ property graph.
 Gremlin-Javascript implements Gremlin within the JavaScript language and can be used on Node.js.
 
 ```bash
-npm install gremlin-javascript
+npm install gremlin
 ```
 
 Please see the [reference documentation][docs] at Apache TinkerPop for more information.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/84d1bf8f/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
index d20be6a..9a6197c 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "gremlin-javascript",
+  "name": "gremlin",
   "version": "3.2.9-alpha1",
   "description": "JavaScript Gremlin Language Variant",
   "author": "Apache TinkerPop team",


[27/50] tinkerpop git commit: TINKERPOP-1880 Update .NET dev env doc

Posted by sp...@apache.org.
TINKERPOP-1880 Update .NET dev env doc


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

Branch: refs/heads/TINKERPOP-1656
Commit: cbdce11151294154d86bdeca75396cb7f72d43b3
Parents: fcc49a1
Author: Jorge Bay Gondra <jo...@gmail.com>
Authored: Thu Mar 22 15:14:03 2018 +0100
Committer: Jorge Bay Gondra <jo...@gmail.com>
Committed: Thu Mar 22 15:14:03 2018 +0100

----------------------------------------------------------------------
 docs/src/dev/developer/development-environment.asciidoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cbdce111/docs/src/dev/developer/development-environment.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/development-environment.asciidoc b/docs/src/dev/developer/development-environment.asciidoc
index f2b286f..0cceb5e 100644
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@ -100,7 +100,7 @@ mvn clean install -pl gremlin-console -DskipIntegrationTests=false
 [[dotnet-environment]]
 === DotNet Environment
 
-The build optionally requires link:https://www.microsoft.com/net/core[.NET Core SDK] (>=1.1.0) to work with the
+The build optionally requires link:https://www.microsoft.com/net/core[.NET Core SDK] (>=2.1.101) to work with the
 `gremlin-dotnet` module. If .NET Core SDK is not installed, TinkerPop will still build with Maven, but .NET projects
 will be skipped.
 


[46/50] tinkerpop git commit: Move validation into set() method to avoid double loop.

Posted by sp...@apache.org.
Move validation into set() method to avoid double loop.

Parameters tends to be a hotspot in traversal construction. This doesn't amount to much in terms of performance overall for most traversals, but since the validation code isn't being used anywhere else there's not much value in having it isolated anyway. Better to just kill the double loop. CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 4dcee1ad22bfe5c7597feebbbcb74577e5f8d7ca
Parents: 430c97d
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Apr 18 17:43:10 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Apr 18 17:43:10 2018 -0400

----------------------------------------------------------------------
 .../process/traversal/step/util/Parameters.java     | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4dcee1ad/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/Parameters.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/Parameters.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/Parameters.java
index 5cb6001..7fae30a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/Parameters.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/Parameters.java
@@ -171,8 +171,13 @@ public final class Parameters implements Cloneable, Serializable {
      * Set parameters given key/value pairs.
      */
     public void set(final TraversalParent parent, final Object... keyValues) {
-        Parameters.legalPropertyKeyValueArray(keyValues);
+        if (keyValues.length % 2 != 0)
+            throw Element.Exceptions.providedKeyValuesMustBeAMultipleOfTwo();
+
         for (int i = 0; i < keyValues.length; i = i + 2) {
+            if (!(keyValues[i] instanceof String) && !(keyValues[i] instanceof T) && !(keyValues[i] instanceof Traversal))
+                throw new IllegalArgumentException("The provided key/value array must have a String, T, or Traversal on even array indices");
+
             if (keyValues[i + 1] != null) {
                 // track the list of traversals that are present so that elsewhere in Parameters there is no need
                 // to iterate all values to not find any. also grab available labels in traversal values
@@ -253,15 +258,6 @@ public final class Parameters implements Cloneable, Serializable {
         return this.parameters.toString();
     }
 
-    private static void legalPropertyKeyValueArray(final Object... propertyKeyValues) throws IllegalArgumentException {
-        if (propertyKeyValues.length % 2 != 0)
-            throw Element.Exceptions.providedKeyValuesMustBeAMultipleOfTwo();
-        for (int i = 0; i < propertyKeyValues.length; i = i + 2) {
-            if (!(propertyKeyValues[i] instanceof String) && !(propertyKeyValues[i] instanceof T) && !(propertyKeyValues[i] instanceof Traversal))
-                throw new IllegalArgumentException("The provided key/value array must have a String, T, or Traversal on even array indices");
-        }
-    }
-
     private void addTraversal(final Traversal.Admin t) {
         this.traversals.add(t);
         for (final Object ss : t.getSteps()) {


[15/50] tinkerpop git commit: TINKERPOP-1854 Replace StartsWith check with an equality check

Posted by sp...@apache.org.
TINKERPOP-1854 Replace StartsWith check with an equality check


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

Branch: refs/heads/TINKERPOP-1656
Commit: 4ebc68e89e0ba1606e06b42a32ec0bebe14fbdf5
Parents: 820adc4
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Sat Mar 17 16:24:09 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Sat Mar 17 16:24:09 2018 +0100

----------------------------------------------------------------------
 .../Gherkin/TraversalEvaluation/TraversalParser.cs                 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4ebc68e8/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
index 7e1486c..e3f6a3f 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
@@ -398,7 +398,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
             {
                 return ParseNumber(text, ref i);
             }
-            if (text.Length >= i + 3 && text.Substring(i, 3).StartsWith("__."))
+            if (text.Length >= i + 3 && text.Substring(i, 3) == "__.")
             {
                 var startIndex = i;
                 var tokens = ParseTokens(text, ref i);


[36/50] tinkerpop git commit: TINKERPOP-1934 Bumped httpclient to 4.5.5

Posted by sp...@apache.org.
TINKERPOP-1934 Bumped httpclient to 4.5.5

Removed httpcore NOTICE entry as this more recent version does not contain that designation in its NOTICE file.


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

Branch: refs/heads/TINKERPOP-1656
Commit: f9e0cf50eed22c6e6e54650b073a98e5314888e9
Parents: 1592c4f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Apr 5 08:11:59 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Apr 6 21:28:53 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                     | 5 +++++
 gremlin-console/pom.xml                | 1 -
 gremlin-console/src/main/static/NOTICE | 6 ------
 gremlin-server/pom.xml                 | 1 -
 pom.xml                                | 5 +++++
 5 files changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f9e0cf50/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 2b48a6f..0f3a71a 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -20,6 +20,11 @@ limitations under the License.
 
 image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/nine-inch-gremlins.png[width=185]
 
+[[release-3-2-9]]
+=== TinkerPop 3.2.9 (Release Date: NOT OFFICIALLY RELEASED YET)
+
+* Bumped to httpclient 4.5.5.
+
 [[release-3-2-8]]
 === TinkerPop 3.2.8 (Release Date: April 2, 2018)
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f9e0cf50/gremlin-console/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-console/pom.xml b/gremlin-console/pom.xml
index 46b4fcc..51ad5ca 100644
--- a/gremlin-console/pom.xml
+++ b/gremlin-console/pom.xml
@@ -39,7 +39,6 @@ limitations under the License.
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
-            <version>4.5.1</version>
         </dependency>
         <dependency>
             <groupId>commons-cli</groupId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f9e0cf50/gremlin-console/src/main/static/NOTICE
----------------------------------------------------------------------
diff --git a/gremlin-console/src/main/static/NOTICE b/gremlin-console/src/main/static/NOTICE
index 91e622f..4931f7e 100644
--- a/gremlin-console/src/main/static/NOTICE
+++ b/gremlin-console/src/main/static/NOTICE
@@ -29,12 +29,6 @@ Licensed under the Creative Commons Attribution Licence v2.5
 http://creativecommons.org/licenses/by/2.5/
 
 ------------------------------------------------------------------------
-Apache Http Components Core 4.4.3 (AL ASF)
-------------------------------------------------------------------------
-This project contains annotations derived from JCIP-ANNOTATIONS
-Copyright (c) 2005 Brian Goetz and Tim Peierls. See http://www.jcip.net
-
-------------------------------------------------------------------------
 Apache Ivy 2.3.0 (AL ASF)
 ------------------------------------------------------------------------
 Portions of Ivy were originally developed by

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f9e0cf50/gremlin-server/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-server/pom.xml b/gremlin-server/pom.xml
index 1bc5920..dd04865 100644
--- a/gremlin-server/pom.xml
+++ b/gremlin-server/pom.xml
@@ -96,7 +96,6 @@ limitations under the License.
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
-            <version>4.3.5</version>
             <scope>test</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f9e0cf50/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e99dd5a..5ac2d88 100644
--- a/pom.xml
+++ b/pom.xml
@@ -652,6 +652,11 @@ limitations under the License.
                 </exclusions>
             </dependency>
             <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpclient</artifactId>
+                <version>4.5.5</version>
+            </dependency>
+            <dependency>
                 <groupId>log4j</groupId>
                 <artifactId>log4j</artifactId>
                 <version>1.2.17</version>


[41/50] tinkerpop git commit: Fixed a grammar mistake in collections recipe CTR

Posted by sp...@apache.org.
Fixed a grammar mistake in collections recipe CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: e1a69fd8075f02ae1f22c4195edd956bf988445a
Parents: 42bacaf
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Apr 11 08:56:22 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Apr 11 09:05:33 2018 -0400

----------------------------------------------------------------------
 docs/src/recipes/collections.asciidoc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e1a69fd8/docs/src/recipes/collections.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/collections.asciidoc b/docs/src/recipes/collections.asciidoc
index 61fee99..f44040a 100644
--- a/docs/src/recipes/collections.asciidoc
+++ b/docs/src/recipes/collections.asciidoc
@@ -64,9 +64,9 @@ g.V().fold().unfold().values('name')
 g.V().store('a').cap('a').unfold().values('name')
 ----
 
-The above examples show that `unfold()` works quite well when you want don't want to preserve the `List` structure of
-the traverser as it just flattens `List` traversers to the traversal stream. The above examples only have one `List`
-as a result, but consider what happens when there is more than one:
+The above examples show that `unfold()` works quite well when you don't want to preserve the `List` structure of the
+traverser as it just flattens `List` traversers to the traversal stream. The above examples only have one `List` as a
+result, but consider what happens when there is more than one:
 
 [gremlin-groovy,modern]
 ----


[47/50] tinkerpop git commit: Added gremlin-javascript logo CTR

Posted by sp...@apache.org.
Added gremlin-javascript logo CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 6ac22741d21488e35784dafdb05ca89eb80967af
Parents: 4dcee1a
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Apr 19 07:09:02 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 19 07:09:02 2018 -0400

----------------------------------------------------------------------
 docs/static/images/gremlin-js.png | Bin 0 -> 78981 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6ac22741/docs/static/images/gremlin-js.png
----------------------------------------------------------------------
diff --git a/docs/static/images/gremlin-js.png b/docs/static/images/gremlin-js.png
new file mode 100755
index 0000000..925ef36
Binary files /dev/null and b/docs/static/images/gremlin-js.png differ


[33/50] tinkerpop git commit: TinkerPop 3.2.8 release

Posted by sp...@apache.org.
TinkerPop 3.2.8 release


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

Branch: refs/heads/TINKERPOP-1656
Commit: 004e7215a3e9028a31af05442e08c45e8db3ed1d
Parents: 5a3dd10
Author: Ted <tw...@gmail.com>
Authored: Mon Apr 2 14:14:58 2018 -0500
Committer: Ted <tw...@gmail.com>
Committed: Mon Apr 2 14:14:58 2018 -0500

----------------------------------------------------------------------
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj              | 6 +++---
 .../src/main/javascript/gremlin-javascript/package.json        | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/004e7215/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
index 454bcac..faf83cd 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
+++ b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
@@ -25,16 +25,16 @@ limitations under the License.
   </PropertyGroup>
 
   <PropertyGroup Label="Package">
-    <Version>3.2.8-SNAPSHOT</Version>
+    <Version>3.2.8</Version>
     <FileVersion>3.2.8.0</FileVersion>
     <AssemblyVersion>3.2.0.0</AssemblyVersion>
     <Title>Gremlin.Net</Title>
     <Authors>Apache TinkerPop</Authors>
     <Description>Gremlin.Net for Apache TinkerPop™ is a language variant and driver for .NET.
 
-Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is the graph traversal language of TinkerPop. It can be described as a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application’s property graph.
+Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is the graph traversal language of TinkerPop. It can be described as a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application's property graph.
 
-Gremlin.Net implements Gremlin within .NET. C# syntax has the same constructs as Java including “dot notation” for function chaining (a.b.c), round bracket function arguments (a(b,c)), and support for global namespaces (a(b()) vs a(__.b())). As such, anyone familiar with Gremlin-Java will immediately be able to work with Gremlin.Net. Moreover, there are a few added constructs to Gremlin.Net that make traversals a bit more succinct.
+Gremlin.Net implements Gremlin within .NET. C# syntax has the same constructs as Java including "dot notation" for function chaining (a.b.c), round bracket function arguments (a(b,c)), and support for global namespaces (a(b()) vs a(__.b())). As such, anyone familiar with Gremlin-Java will immediately be able to work with Gremlin.Net. Moreover, there are a few added constructs to Gremlin.Net that make traversals a bit more succinct.
 
 Please see the reference documentation at Apache TinkerPop for more information on usage.
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/004e7215/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
index c668be7..6cdd25d 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
@@ -1,6 +1,6 @@
 {
   "name": "gremlin-javascript",
-  "version": "3.2.8-alpha1",
+  "version": "3.2.8",
   "description": "JavaScript Gremlin Language Variant",
   "author": "Apache TinkerPop team",
   "keywords": [


[38/50] tinkerpop git commit: Minor fixes to dev release docs around gremlin-javascript CTR

Posted by sp...@apache.org.
Minor fixes to dev release docs around gremlin-javascript CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: b84f700d41ab5ab2e5b383701804bb7556e337e6
Parents: 84d1bf8
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Apr 9 11:20:06 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Apr 9 11:20:06 2018 -0400

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b84f700d/docs/src/dev/developer/release.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/release.asciidoc b/docs/src/dev/developer/release.asciidoc
index fab9819..b868755 100644
--- a/docs/src/dev/developer/release.asciidoc
+++ b/docs/src/dev/developer/release.asciidoc
@@ -234,7 +234,7 @@ for generating javadoc and without that the binary distributions won't contain t
 == Release & Promote
 
 . Login to link:https://repository.apache.org/[Apache Nexus] and release the previously closed repository.
-. Deploy to link:https://pypi.python.org/pypi[pypi]
+. Deploy the GLVs
 .. This build will likely occur from the tag for the release, so be sure to checkout the tag first before executing this step.
 .. `mvn clean install -DskipTests -Dnuget`
 .. `mvn deploy -pl gremlin-python -DskipTests -Dpypi`
@@ -372,5 +372,9 @@ https://pypi.python.org/pypi/gremlinpython/xx.yy.zz
 
 https://www.nuget.org/packages/Gremlin.Net/xx.yy.zz
 
+Javascript artifacts are available in npm:
+
+https://www.npmjs.com/package/gremlin
+
 [include the release line logo image]
 ----


[26/50] tinkerpop git commit: TINKERPOP-1880 Sign assembly on Linux and macOS

Posted by sp...@apache.org.
TINKERPOP-1880 Sign assembly on Linux and macOS


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

Branch: refs/heads/TINKERPOP-1656
Commit: fcc49a1b4ea3b15b102b576bc81053ba73b2a18e
Parents: bddc756
Author: Jorge Bay Gondra <jo...@gmail.com>
Authored: Thu Mar 22 13:21:03 2018 +0100
Committer: Jorge Bay Gondra <jo...@gmail.com>
Committed: Thu Mar 22 14:20:20 2018 +0100

----------------------------------------------------------------------
 .travis.yml                                                  | 8 +++++---
 gremlin-dotnet/glv/Gremlin.Net.csproj.template               | 1 -
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj            | 1 -
 .../Gremlin.Net.IntegrationTest.csproj                       | 3 +--
 .../test/Gremlin.Net.UnitTest/Gremlin.Net.UnitTest.csproj    | 3 +--
 5 files changed, 7 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fcc49a1b/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 336c055..96cfe6a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,10 +18,12 @@ install:
   - mvn -version
 
 before_install:
-  - sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
-  - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
+  - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
+  - sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
+  - sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
+  - sudo apt-get install apt-transport-https
   - sudo apt-get update
-  - sudo apt-get install dotnet-dev-1.0.4
+  - sudo apt-get install dotnet-sdk-2.1.101
 
 jobs:
   include:

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fcc49a1b/gremlin-dotnet/glv/Gremlin.Net.csproj.template
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/glv/Gremlin.Net.csproj.template b/gremlin-dotnet/glv/Gremlin.Net.csproj.template
index ce36e76..897ec94 100644
--- a/gremlin-dotnet/glv/Gremlin.Net.csproj.template
+++ b/gremlin-dotnet/glv/Gremlin.Net.csproj.template
@@ -41,7 +41,6 @@ Please see the reference documentation at Apache TinkerPop for more information
 NOTE: Gremlin.Net is an extension of the Gremlin.Net driver by Florian Hockmann (versions: 0.y.z) and is now included as part of the Apache TinkerPop project.</Description>
     <AssemblyOriginatorKeyFile>../../build/tinkerpop.snk</AssemblyOriginatorKeyFile>
     <SignAssembly>true</SignAssembly>
-    <PublicSign Condition="'\$(OS)' != 'Windows_NT'">true</PublicSign>
     <PackageId>Gremlin.Net</PackageId>
     <PackageTags>gremlin;tinkerpop;apache</PackageTags>
     <PackageProjectUrl>http://tinkerpop.apache.org</PackageProjectUrl>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fcc49a1b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
index 445a9bc..454bcac 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
+++ b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
@@ -41,7 +41,6 @@ Please see the reference documentation at Apache TinkerPop for more information
 NOTE: Gremlin.Net is an extension of the Gremlin.Net driver by Florian Hockmann (versions: 0.y.z) and is now included as part of the Apache TinkerPop project.</Description>
     <AssemblyOriginatorKeyFile>../../build/tinkerpop.snk</AssemblyOriginatorKeyFile>
     <SignAssembly>true</SignAssembly>
-    <PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign>
     <PackageId>Gremlin.Net</PackageId>
     <PackageTags>gremlin;tinkerpop;apache</PackageTags>
     <PackageProjectUrl>http://tinkerpop.apache.org</PackageProjectUrl>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fcc49a1b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gremlin.Net.IntegrationTest.csproj
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gremlin.Net.IntegrationTest.csproj b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gremlin.Net.IntegrationTest.csproj
index 82727fd..953529b 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gremlin.Net.IntegrationTest.csproj
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gremlin.Net.IntegrationTest.csproj
@@ -1,10 +1,9 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>netcoreapp1.0</TargetFramework>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
     <DebugType>portable</DebugType>
     <AssemblyName>Gremlin.Net.IntegrationTest</AssemblyName>
     <PackageId>Gremlin.Net.IntegrationTest</PackageId>
-    <RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>
   </PropertyGroup>
   <ItemGroup>
     <None Update="appsettings.json">

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fcc49a1b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Gremlin.Net.UnitTest.csproj
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Gremlin.Net.UnitTest.csproj b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Gremlin.Net.UnitTest.csproj
index eeb7c9f..d1d6372 100644
--- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Gremlin.Net.UnitTest.csproj
+++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Gremlin.Net.UnitTest.csproj
@@ -1,11 +1,10 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>netcoreapp1.0</TargetFramework>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
     <DebugType>portable</DebugType>
     <AssemblyName>Gremlin.Net.UnitTest</AssemblyName>
     <PackageId>Gremlin.Net.UnitTest</PackageId>
-    <RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>
     <AssemblyOriginatorKeyFile>../../build/tinkerpop.snk</AssemblyOriginatorKeyFile>
     <SignAssembly>true</SignAssembly>
     <PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign>


[40/50] tinkerpop git commit: CTR: fixed minor typos in docs

Posted by sp...@apache.org.
CTR: fixed minor typos in docs


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

Branch: refs/heads/TINKERPOP-1656
Commit: 42bacafbf4189cfb89ad53f1b38fee9ea21dd64e
Parents: df7870a
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Mon Apr 9 11:32:38 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Mon Apr 9 11:32:38 2018 -0700

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/42bacafb/docs/src/reference/the-traversal.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc
index 69bc8a3..86fb324 100644
--- a/docs/src/reference/the-traversal.asciidoc
+++ b/docs/src/reference/the-traversal.asciidoc
@@ -2342,7 +2342,7 @@ g.V().out().as('a').out().as('b').out().as('c').
     by('name')
 ----
 
-By using the `from()` and `to()` modulators traversers can ensure that only certain sections of the path are are acyclic.
+By using the `from()` and `to()` modulators traversers can ensure that only certain sections of the path are acyclic.
 
 [gremlin-groovy]
 ----
@@ -3043,7 +3043,7 @@ of the Gremlin traversal machine's compiler. There are 5 categories of strategie
  * There is an application-level feature that can be embedded into the traversal logic (*decoration*).
  * There is a more efficient way to express the traversal at the TinkerPop3 level (*optimization*).
  * There is a more efficient way to express the traversal at the graph system/language/driver level (*provider optimization*).
- * There are are some final adjustments/cleanups/analyses required before executing the traversal (*finalization*).
+ * There are some final adjustments/cleanups/analyses required before executing the traversal (*finalization*).
  * There are certain traversals that are not legal for the application or traversal engine (*verification*).
 
 NOTE: The <<explain-step,`explain()`>>-step shows the user how each registered strategy mutates the traversal.


[19/50] tinkerpop git commit: Included more info in GraphSON error messaging CTR

Posted by sp...@apache.org.
Included more info in GraphSON error messaging CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: b52422547f39aea8c58ad1d6b5fb55c26947f7d6
Parents: 8c87fcf
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Mar 20 07:59:32 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Mar 20 07:59:32 2018 -0400

----------------------------------------------------------------------
 .../gremlin/structure/io/graphson/GraphSONTypeSerializer.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b5242254/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 8b1ba25..53ccc0b 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
@@ -105,7 +105,7 @@ public class GraphSONTypeSerializer extends TypeSerializer {
         } else if (writableTypeId.valueShape == JsonToken.START_ARRAY) {
             jsonGenerator.writeStartArray();
         } else {
-            throw new IllegalStateException("Could not write prefix");
+            throw new IllegalStateException("Could not write prefix: shape[" + writableTypeId.valueShape + "] value[" + writableTypeId.forValue + "]");
         }
 
         return writableTypeId;
@@ -122,7 +122,7 @@ public class GraphSONTypeSerializer extends TypeSerializer {
         } else if (writableTypeId.valueShape == JsonToken.START_ARRAY) {
             jsonGenerator.writeEndArray();
         } else {
-            throw new IllegalStateException("Could not write suffix");
+            throw new IllegalStateException("Could not write suffix: shape[" + writableTypeId.valueShape + "] value[" + writableTypeId.forValue + "]");
         }
 
         return writableTypeId;


[10/50] tinkerpop git commit: TINKERPOP-1922 P.Not() serialization is no longer an issue

Posted by sp...@apache.org.
TINKERPOP-1922 P.Not() serialization is no longer an issue

Resolved on a different issue - likely TINKERPOP-1894 CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 0bf9b2f718f7db8344845d8fb5327ea16f1e9414
Parents: 1ea01ad
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 15 10:33:45 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 15 10:33:45 2018 -0400

----------------------------------------------------------------------
 .../Gherkin/GherkinTestRunner.cs                      | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0bf9b2f7/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
index c3819fe..e15a492 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -41,19 +41,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             new Dictionary<string, IgnoreReason>
             {
                 {"g_V_hasIdXwithinXemptyXX_count", IgnoreReason.PWithinWrapsArgumentsInArray},
-                {"g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.PWithinWrapsArgumentsInArray},
-                {
-                    "g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX",
-                    IgnoreReason.PNotDeserializationProblem
-                },
-                {
-                    "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name",
-                    IgnoreReason.PNotDeserializationProblem
-                },
-                {
-                    "g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX",
-                    IgnoreReason.PNotDeserializationProblem
-                }
+                {"g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.PWithinWrapsArgumentsInArray}
             };
         
         private static class Keywords


[43/50] tinkerpop git commit: TINKERPOP-1912 Removed MD5 checksums from release

Posted by sp...@apache.org.
TINKERPOP-1912 Removed MD5 checksums from release


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

Branch: refs/heads/TINKERPOP-1656
Commit: 54df6dcbd081ec685723cdfc508af5513fb66dd0
Parents: 35bf95a
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue Apr 10 13:31:47 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Apr 11 09:27:19 2018 -0700

----------------------------------------------------------------------
 bin/validate-distribution.sh            | 3 ++-
 docs/src/dev/developer/release.asciidoc | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/54df6dcb/bin/validate-distribution.sh
----------------------------------------------------------------------
diff --git a/bin/validate-distribution.sh b/bin/validate-distribution.sh
index 0121a1a..b071ea0 100755
--- a/bin/validate-distribution.sh
+++ b/bin/validate-distribution.sh
@@ -83,10 +83,11 @@ fi
 
 echo -n "* downloading ${COMPONENT} (${ZIP_FILENAME})... "
 curl -Lsf ${URL} -o ${ZIP_FILENAME} || { echo "Failed to download ${COMPONENT}" ; exit 1; }
-for ext in "asc" "md5" "sha1"
+for ext in "asc" "sha1"
 do
   curl -Lsf ${URL}.${ext} -o ${ZIP_FILENAME}.${ext} || { echo "Failed to download ${COMPONENT} (${ext})" ; exit 1 ; }
 done
+curl -Lsf ${URL}.md5 -o ${ZIP_FILENAME}.md5 && { echo "MD5 checksums should not be released (${ZIP_FILENAME}.md5)" ; exit 1 ; }
 echo "OK"
 
 # validate zip file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/54df6dcb/docs/src/dev/developer/release.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/release.asciidoc b/docs/src/dev/developer/release.asciidoc
index c7c5bb7..608bb31 100644
--- a/docs/src/dev/developer/release.asciidoc
+++ b/docs/src/dev/developer/release.asciidoc
@@ -209,6 +209,7 @@ for generating javadoc and without that the binary distributions won't contain t
 .. `cp ~/.m2/repository/org/apache/tinkerpop/gremlin-console/xx.yy.zz/gremlin-console-xx.yy.zz-distribution.zip* dev/xx.yy.zz`
 .. `cp ~/.m2/repository/org/apache/tinkerpop/gremlin-server/xx.yy.zz/gremlin-server-xx.yy.zz-distribution.zip* dev/xx.yy.zz`
 .. `cp ~/.m2/repository/org/apache/tinkerpop/tinkerpop/xx.yy.zz/tinkerpop-xx.yy.zz-source-release.zip* dev/xx.yy.zz`
+.. `rm -f dev/*.md5
 .. `cd dev/xx.yy.zz`
 .. pass:[<code>ls * | xargs -n1 -I {} echo "mv apache-tinkerpop-{} {}" | sed -e 's/distribution/bin/' -e 's/source-release/src/' -e 's/tinkerpop-tinkerpop/tinkerpop/' -e s'/^\(.*\) \(.*\) \(.*\)$/\1 \3 \2/' | /bin/bash</code>]
 .. `cd ..; svn add xx.yy.zz/; svn ci -m "TinkerPop xx.yy.zz release"`


[34/50] tinkerpop git commit: Bump to 3.2.9-SNAPSHOT

Posted by sp...@apache.org.
Bump to 3.2.9-SNAPSHOT


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

Branch: refs/heads/TINKERPOP-1656
Commit: 20bc88659ee0051311aab81095e9685a76d2b75e
Parents: 004e721
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Apr 6 20:00:36 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Apr 6 20:00:36 2018 -0400

----------------------------------------------------------------------
 giraph-gremlin/pom.xml                                       | 2 +-
 gremlin-archetype/gremlin-archetype-dsl/pom.xml              | 2 +-
 gremlin-archetype/gremlin-archetype-server/pom.xml           | 2 +-
 gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml      | 2 +-
 gremlin-archetype/pom.xml                                    | 2 +-
 gremlin-benchmark/pom.xml                                    | 2 +-
 gremlin-console/bin/gremlin.sh                               | 2 +-
 gremlin-console/pom.xml                                      | 2 +-
 gremlin-core/pom.xml                                         | 2 +-
 gremlin-dotnet/pom.xml                                       | 2 +-
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj            | 8 ++++----
 gremlin-dotnet/src/pom.xml                                   | 2 +-
 gremlin-dotnet/test/pom.xml                                  | 2 +-
 gremlin-driver/pom.xml                                       | 2 +-
 gremlin-groovy-test/pom.xml                                  | 2 +-
 gremlin-groovy/pom.xml                                       | 2 +-
 gremlin-javascript/pom.xml                                   | 2 +-
 .../src/main/javascript/gremlin-javascript/package.json      | 2 +-
 gremlin-python/pom.xml                                       | 2 +-
 gremlin-server/pom.xml                                       | 2 +-
 gremlin-shaded/pom.xml                                       | 2 +-
 gremlin-test/pom.xml                                         | 2 +-
 hadoop-gremlin/pom.xml                                       | 2 +-
 neo4j-gremlin/pom.xml                                        | 2 +-
 pom.xml                                                      | 2 +-
 spark-gremlin/pom.xml                                        | 2 +-
 tinkergraph-gremlin/pom.xml                                  | 2 +-
 27 files changed, 30 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/giraph-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-gremlin/pom.xml b/giraph-gremlin/pom.xml
index 39b7f6c..9ca6687 100644
--- a/giraph-gremlin/pom.xml
+++ b/giraph-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>giraph-gremlin</artifactId>
     <name>Apache TinkerPop :: Giraph Gremlin</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-archetype/gremlin-archetype-dsl/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-archetype/gremlin-archetype-dsl/pom.xml b/gremlin-archetype/gremlin-archetype-dsl/pom.xml
index 668e530..242ea07 100644
--- a/gremlin-archetype/gremlin-archetype-dsl/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-dsl/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
 
     <artifactId>gremlin-archetype-dsl</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-archetype/gremlin-archetype-server/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-archetype/gremlin-archetype-server/pom.xml b/gremlin-archetype/gremlin-archetype-server/pom.xml
index 431bbca..83fa7ad 100644
--- a/gremlin-archetype/gremlin-archetype-server/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-server/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
 
     <artifactId>gremlin-archetype-server</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml b/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
index b4ed365..cb3b0eb 100644
--- a/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
 
     <artifactId>gremlin-archetype-tinkergraph</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-archetype/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-archetype/pom.xml b/gremlin-archetype/pom.xml
index 840c8cb..12043c0 100644
--- a/gremlin-archetype/pom.xml
+++ b/gremlin-archetype/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <artifactId>tinkerpop</artifactId>
         <groupId>org.apache.tinkerpop</groupId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
 
     <artifactId>gremlin-archetype</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-benchmark/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-benchmark/pom.xml b/gremlin-benchmark/pom.xml
index 0eb80b3..571bc0d 100644
--- a/gremlin-benchmark/pom.xml
+++ b/gremlin-benchmark/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <artifactId>tinkerpop</artifactId>
         <groupId>org.apache.tinkerpop</groupId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
 
     <artifactId>gremlin-benchmark</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-console/bin/gremlin.sh
----------------------------------------------------------------------
diff --git a/gremlin-console/bin/gremlin.sh b/gremlin-console/bin/gremlin.sh
index 46c7403..ae28f7b 120000
--- a/gremlin-console/bin/gremlin.sh
+++ b/gremlin-console/bin/gremlin.sh
@@ -1 +1 @@
-../target/apache-tinkerpop-gremlin-console-3.2.8-standalone/bin/gremlin.sh
\ No newline at end of file
+../target/apache-tinkerpop-gremlin-console-3.2.9-SNAPSHOT-standalone/bin/gremlin.sh
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-console/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-console/pom.xml b/gremlin-console/pom.xml
index 40aac0c..46b4fcc 100644
--- a/gremlin-console/pom.xml
+++ b/gremlin-console/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <artifactId>tinkerpop</artifactId>
         <groupId>org.apache.tinkerpop</groupId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-console</artifactId>
     <name>Apache TinkerPop :: Gremlin Console</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-core/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-core/pom.xml b/gremlin-core/pom.xml
index d32e904..a170f8b 100644
--- a/gremlin-core/pom.xml
+++ b/gremlin-core/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-core</artifactId>
     <name>Apache TinkerPop :: Gremlin Core</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-dotnet/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/pom.xml b/gremlin-dotnet/pom.xml
index 178b627..20b4fab 100644
--- a/gremlin-dotnet/pom.xml
+++ b/gremlin-dotnet/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-dotnet</artifactId>
     <name>Apache TinkerPop :: Gremlin.Net</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
index faf83cd..44a3a10 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
+++ b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
@@ -25,16 +25,16 @@ limitations under the License.
   </PropertyGroup>
 
   <PropertyGroup Label="Package">
-    <Version>3.2.8</Version>
-    <FileVersion>3.2.8.0</FileVersion>
+    <Version>3.2.9-SNAPSHOT</Version>
+    <FileVersion>3.2.9.0</FileVersion>
     <AssemblyVersion>3.2.0.0</AssemblyVersion>
     <Title>Gremlin.Net</Title>
     <Authors>Apache TinkerPop</Authors>
     <Description>Gremlin.Net for Apache TinkerPop™ is a language variant and driver for .NET.
 
-Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is the graph traversal language of TinkerPop. It can be described as a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application's property graph.
+Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is the graph traversal language of TinkerPop. It can be described as a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application’s property graph.
 
-Gremlin.Net implements Gremlin within .NET. C# syntax has the same constructs as Java including "dot notation" for function chaining (a.b.c), round bracket function arguments (a(b,c)), and support for global namespaces (a(b()) vs a(__.b())). As such, anyone familiar with Gremlin-Java will immediately be able to work with Gremlin.Net. Moreover, there are a few added constructs to Gremlin.Net that make traversals a bit more succinct.
+Gremlin.Net implements Gremlin within .NET. C# syntax has the same constructs as Java including “dot notation” for function chaining (a.b.c), round bracket function arguments (a(b,c)), and support for global namespaces (a(b()) vs a(__.b())). As such, anyone familiar with Gremlin-Java will immediately be able to work with Gremlin.Net. Moreover, there are a few added constructs to Gremlin.Net that make traversals a bit more succinct.
 
 Please see the reference documentation at Apache TinkerPop for more information on usage.
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-dotnet/src/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/pom.xml b/gremlin-dotnet/src/pom.xml
index 5a19049..aabd43b 100644
--- a/gremlin-dotnet/src/pom.xml
+++ b/gremlin-dotnet/src/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-dotnet</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-dotnet-source</artifactId>
     <name>Apache TinkerPop :: Gremlin.Net - Source</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-dotnet/test/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/pom.xml b/gremlin-dotnet/test/pom.xml
index 6c9a3d2..e7e7aac 100644
--- a/gremlin-dotnet/test/pom.xml
+++ b/gremlin-dotnet/test/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-dotnet</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-dotnet-tests</artifactId>
     <name>Apache TinkerPop :: Gremlin.Net - Tests</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-driver/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-driver/pom.xml b/gremlin-driver/pom.xml
index 7e5d081..cc826a5 100644
--- a/gremlin-driver/pom.xml
+++ b/gremlin-driver/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-driver</artifactId>
     <name>Apache TinkerPop :: Gremlin Driver</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-groovy-test/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/pom.xml b/gremlin-groovy-test/pom.xml
index 3808e57..a915f7d 100644
--- a/gremlin-groovy-test/pom.xml
+++ b/gremlin-groovy-test/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-groovy-test</artifactId>
     <name>Apache TinkerPop :: Gremlin Groovy Test</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-groovy/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-groovy/pom.xml b/gremlin-groovy/pom.xml
index c94b2c1..14efe86 100644
--- a/gremlin-groovy/pom.xml
+++ b/gremlin-groovy/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-groovy</artifactId>
     <name>Apache TinkerPop :: Gremlin Groovy</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-javascript/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-javascript/pom.xml b/gremlin-javascript/pom.xml
index c87e090..6b0d8bf 100644
--- a/gremlin-javascript/pom.xml
+++ b/gremlin-javascript/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-javascript</artifactId>
     <name>Apache TinkerPop :: Gremlin Javascript</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
index 6cdd25d..d20be6a 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
@@ -1,6 +1,6 @@
 {
   "name": "gremlin-javascript",
-  "version": "3.2.8",
+  "version": "3.2.9-alpha1",
   "description": "JavaScript Gremlin Language Variant",
   "author": "Apache TinkerPop team",
   "keywords": [

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index c6cc02a..649f3ae 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-python</artifactId>
     <name>Apache TinkerPop :: Gremlin Python</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-server/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-server/pom.xml b/gremlin-server/pom.xml
index 4babb6a..1bc5920 100644
--- a/gremlin-server/pom.xml
+++ b/gremlin-server/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-server</artifactId>
     <name>Apache TinkerPop :: Gremlin Server</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-shaded/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-shaded/pom.xml b/gremlin-shaded/pom.xml
index a27e21c..a74a91a 100644
--- a/gremlin-shaded/pom.xml
+++ b/gremlin-shaded/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-shaded</artifactId>
     <name>Apache TinkerPop :: Gremlin Shaded</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/gremlin-test/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-test/pom.xml b/gremlin-test/pom.xml
index 552adc0..3c04c9f 100644
--- a/gremlin-test/pom.xml
+++ b/gremlin-test/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>gremlin-test</artifactId>
     <name>Apache TinkerPop :: Gremlin Test</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/hadoop-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/pom.xml b/hadoop-gremlin/pom.xml
index 0a81e60..a0f0cc7 100644
--- a/hadoop-gremlin/pom.xml
+++ b/hadoop-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>hadoop-gremlin</artifactId>
     <name>Apache TinkerPop :: Hadoop Gremlin</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/neo4j-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/pom.xml b/neo4j-gremlin/pom.xml
index 888ab60..a65a30f 100644
--- a/neo4j-gremlin/pom.xml
+++ b/neo4j-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>neo4j-gremlin</artifactId>
     <name>Apache TinkerPop :: Neo4j Gremlin</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2c861d7..e99dd5a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@ limitations under the License.
     </parent>
     <groupId>org.apache.tinkerpop</groupId>
     <artifactId>tinkerpop</artifactId>
-    <version>3.2.8</version>
+    <version>3.2.9-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>Apache TinkerPop</name>
     <description>A Graph Computing Framework</description>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/spark-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/spark-gremlin/pom.xml b/spark-gremlin/pom.xml
index 6d48d15..913357c 100644
--- a/spark-gremlin/pom.xml
+++ b/spark-gremlin/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>spark-gremlin</artifactId>
     <name>Apache TinkerPop :: Spark Gremlin</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/20bc8865/tinkergraph-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/pom.xml b/tinkergraph-gremlin/pom.xml
index a7bd8b7..f23a716 100644
--- a/tinkergraph-gremlin/pom.xml
+++ b/tinkergraph-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8</version>
+        <version>3.2.9-SNAPSHOT</version>
     </parent>
     <artifactId>tinkergraph-gremlin</artifactId>
     <name>Apache TinkerPop :: TinkerGraph Gremlin</name>


[44/50] tinkerpop git commit: Merge branch 'TINKERPOP-1934' into tp32

Posted by sp...@apache.org.
Merge branch 'TINKERPOP-1934' into tp32


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

Branch: refs/heads/TINKERPOP-1656
Commit: a7c8ea102425e9df5f9f3eca20df333db8cdf936
Parents: 54df6dc f9e0cf5
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Apr 16 07:48:42 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Apr 16 07:48:42 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                     | 5 +++++
 gremlin-console/pom.xml                | 1 -
 gremlin-console/src/main/static/NOTICE | 6 ------
 gremlin-server/pom.xml                 | 1 -
 pom.xml                                | 5 +++++
 5 files changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------



[18/50] tinkerpop git commit: TINKERPOP-1920 Fixed P.within/without() handling for collections

Posted by sp...@apache.org.
TINKERPOP-1920 Fixed P.within/without() handling for collections


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

Branch: refs/heads/TINKERPOP-1656
Commit: 8c87fcfb06cc09b36e6c91bda88b61ea8ab68379
Parents: 3aa7336
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 15 12:19:48 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Mar 19 10:16:44 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 gremlin-dotnet/glv/P.template                   | 17 ++++++++++++++-
 .../src/Gremlin.Net/Process/Traversal/P.cs      | 22 ++++++++++++++++++--
 .../Gherkin/GherkinTestRunner.cs                |  6 +-----
 .../Gherkin/IgnoreException.cs                  | 10 +++------
 5 files changed, 41 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c87fcfb/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 8fcbe1a..0ec6f6d 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -42,6 +42,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Added `IndexedTraverserSet` which indexes on the value of a `Traverser` thus improving performance when used.
 * Utilized `IndexedTraverserSet` in `TraversalVertexProgram` to avoid extra iteration when doing `Vertex` lookups.
 * Bumped to Netty 4.0.56.Final.
+* Fixed .NET GraphSON serialization of `P.Within()` and `P.without()` when passing a `Collection` as an argument.
 * Fixed a bug in Gremlin Console which prevented handling of `gremlin.sh` flags that had an "=" between the flag and its arguments.
 * Fixed bug where `SparkMessenger` was not applying the `edgeFunction` from `MessageScope`.
 * Fixed a bug in `ComputerAwareStep` that didn't handle `reset()` properly and thus occasionally produced some extra traversers.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c87fcfb/gremlin-dotnet/glv/P.template
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/glv/P.template b/gremlin-dotnet/glv/P.template
index ad037c1..fd3b752 100644
--- a/gremlin-dotnet/glv/P.template
+++ b/gremlin-dotnet/glv/P.template
@@ -22,6 +22,12 @@
 #endregion
 
 // THIS IS A GENERATED FILE - DO NOT MODIFY THIS FILE DIRECTLY - see pom.xml
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
 namespace Gremlin.Net.Process.Traversal
 {
 #pragma warning disable 1591
@@ -88,9 +94,18 @@ namespace Gremlin.Net.Process.Traversal
 <% } %><% pmethods.findAll{ it in ["within", "without"] }.each { method -> %>
         public static P <%= toCSharpMethodName.call(method) %>(params object[] args)
         {
-            return new P("<%= method %>", args);
+            if (args.Length == 1 && args[0] is ICollection<object> collection)
+                return new P("<%= method %>", ToGenericArray(collection));
+            else
+                return new P("<%= method %>", args);
         }
 <% } %>
+
+        private static T[] ToGenericArray<T>(ICollection<T> collection)
+        {
+            return collection?.ToArray() ?? new T[0];;
+        }
+
         /// <inheritdoc />
         public override string ToString()
         {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c87fcfb/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
index e3a1e76..e718bbe 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
@@ -22,6 +22,12 @@
 #endregion
 
 // THIS IS A GENERATED FILE - DO NOT MODIFY THIS FILE DIRECTLY - see pom.xml
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
 namespace Gremlin.Net.Process.Traversal
 {
 #pragma warning disable 1591
@@ -148,12 +154,24 @@ namespace Gremlin.Net.Process.Traversal
 
         public static P Within(params object[] args)
         {
-            return new P("within", args);
+            if (args.Length == 1 && args[0] is ICollection<object> collection)
+                return new P("within", ToGenericArray(collection));
+            else
+                return new P("within", args);
         }
 
         public static P Without(params object[] args)
         {
-            return new P("without", args);
+            if (args.Length == 1 && args[0] is ICollection<object> collection)
+                return new P("without", ToGenericArray(collection));
+            else
+                return new P("without", args);
+        }
+
+
+        private static T[] ToGenericArray<T>(ICollection<T> collection)
+        {
+            return collection?.ToArray() ?? new T[0];;
         }
 
         /// <inheritdoc />

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c87fcfb/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
index e15a492..6d38ccc 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -38,11 +38,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
     public class GherkinTestRunner
     {
         private static readonly IDictionary<string, IgnoreReason> IgnoredScenarios =
-            new Dictionary<string, IgnoreReason>
-            {
-                {"g_V_hasIdXwithinXemptyXX_count", IgnoreReason.PWithinWrapsArgumentsInArray},
-                {"g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.PWithinWrapsArgumentsInArray}
-            };
+            new Dictionary<string, IgnoreReason>();
         
         private static class Keywords
         {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8c87fcfb/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
index 9aa5213..860c11d 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
@@ -40,11 +40,8 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             string reasonSuffix = null;
             switch (reason)
             {
-                case IgnoreReason.PWithinWrapsArgumentsInArray:
-                    reasonSuffix = " because P.Within() arguments are incorrectly wrapped in an array (TINKERPOP-1920)";
-                    break;
-                case IgnoreReason.PNotDeserializationProblem:
-                    reasonSuffix = " because P.Not() cannot be deserialized by Gremlin Server (TINKERPOP-1922)";
+                case IgnoreReason.NoReason:
+                    reasonSuffix = "";
                     break;
             }
             return $"Scenario ignored" + reasonSuffix;
@@ -53,7 +50,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
     
     public enum IgnoreReason
     {
-        PWithinWrapsArgumentsInArray,
-        PNotDeserializationProblem
+        NoReason
     }
 }
\ No newline at end of file


[50/50] tinkerpop git commit: TINKERPOP-1656 WIP - basic proof of concept for bulk mutations

Posted by sp...@apache.org.
TINKERPOP-1656 WIP - basic proof of concept for bulk mutations


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

Branch: refs/heads/TINKERPOP-1656
Commit: bb583e3a47aa4ab94ecfe04190073feed4e13a20
Parents: 2591302
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Mar 22 07:01:57 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 19 12:51:43 2018 -0400

----------------------------------------------------------------------
 gremlin-benchmark/pom.xml                       |   2 +-
 .../gremlin/process/GraphMutateBenchmark.java   |  18 ++-
 .../traversal/dsl/graph/GraphTraversal.java     |  64 ++++++++--
 .../traversal/step/MutatingContainerHolder.java |  53 +++++++++
 .../traversal/step/map/MutatingStep.java        | 102 ++++++++++++++++
 .../traversal/step/util/MutatingContainer.java  | 109 +++++++++++++++++
 .../strategy/optimization/MutatingStrategy.java |  66 ++++++++++
 .../process/traversal/util/TraversalHelper.java |  37 +++++-
 .../tinkergraph/structure/TinkerGraph.java      | 119 ++++++++++++++++++-
 9 files changed, 554 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/gremlin-benchmark/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-benchmark/pom.xml b/gremlin-benchmark/pom.xml
index 571bc0d..3b8b995 100644
--- a/gremlin-benchmark/pom.xml
+++ b/gremlin-benchmark/pom.xml
@@ -86,7 +86,7 @@ limitations under the License.
                     <testSourceDirectory>${project.build.sourceDirectory}</testSourceDirectory>
                     <testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
                     <includes>
-                        <include>**/*Benchmark*.java</include>
+                        <include>**/*MutateBenchmark*.java</include>
                     </includes>
                     <excludes>
                         <exclude>**/*$*.class</exclude>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/process/GraphMutateBenchmark.java
----------------------------------------------------------------------
diff --git a/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/process/GraphMutateBenchmark.java b/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/process/GraphMutateBenchmark.java
index 733e32b..27a9315 100644
--- a/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/process/GraphMutateBenchmark.java
+++ b/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/process/GraphMutateBenchmark.java
@@ -51,6 +51,20 @@ public class GraphMutateBenchmark extends AbstractGraphMutateBenchmark {
     @Override
     public void prepare() {
         super.prepare();
+//
+//        withoutStrategies(ConnectiveStrategy.class,
+//                InlineFilterStrategy.class,
+//                IncidentToAdjacentStrategy.class,
+//                AdjacentToIncidentStrategy.class,
+//                FilterRankingStrategy.class,
+//                MatchPredicateStrategy.class,
+//                RepeatUnrollStrategy.class,
+//                RangeByIsCountStrategy.class,
+//                PathRetractionStrategy.class,
+//                LazyBarrierStrategy.class,
+//                ProfileStrategy.class,
+//                StandardVerificationStrategy.class)
+
         a = g.addV().next();
         b = g.addV().next();
         c = g.addV().next();
@@ -173,8 +187,8 @@ public class GraphMutateBenchmark extends AbstractGraphMutateBenchmark {
             }
         }
 
-        final Edge e = (Edge) t.next();
-        return e;
+        final Edge x = (Edge) t.next();
+        return x;
     }
 
     @Benchmark

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index 222fdab..4ebe1ba 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -37,7 +37,9 @@ import org.apache.tinkerpop.gremlin.process.traversal.lambda.PredicateTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.lambda.TrueTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.ByModulating;
 import org.apache.tinkerpop.gremlin.process.traversal.step.FromToModulating;
+import org.apache.tinkerpop.gremlin.process.traversal.step.FromToModulating;
 import org.apache.tinkerpop.gremlin.process.traversal.step.Mutating;
+import org.apache.tinkerpop.gremlin.process.traversal.step.MutatingContainerHolder;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TimesModulating;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent;
 import org.apache.tinkerpop.gremlin.process.traversal.step.branch.BranchStep;
@@ -91,6 +93,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.MeanGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MeanLocalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MinGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MinLocalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MutatingStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.NoOpBarrierStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderLocalStep;
@@ -130,6 +133,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphSt
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.TraversalSideEffectStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.TreeSideEffectStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.MutatingContainer;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
@@ -985,7 +989,14 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, Vertex> addV(final String vertexLabel) {
         this.asAdmin().getBytecode().addStep(Symbols.addV, vertexLabel);
-        return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), vertexLabel));
+
+        final Step endStep = this.asAdmin().getEndStep();
+        final MutatingContainerHolder holder = (endStep instanceof MutatingContainerHolder) ?
+                (MutatingContainerHolder) endStep : new MutatingStep<>(this.asAdmin());
+
+        final MutatingContainer container = new MutatingContainer(MutatingContainer.Operation.ADD_V, holder, T.label, vertexLabel);
+        holder.addMutatingContainer(container);
+        return endStep == holder ? (GraphTraversal) this : this.asAdmin().addStep((Step) holder);
     }
 
     /**
@@ -997,7 +1008,14 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, Vertex> addV() {
         this.asAdmin().getBytecode().addStep(Symbols.addV);
-        return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), null));
+
+        final Step endStep = this.asAdmin().getEndStep();
+        final MutatingContainerHolder holder = (endStep instanceof MutatingContainerHolder) ?
+                (MutatingContainerHolder) endStep : new MutatingStep<>(this.asAdmin());
+
+        final MutatingContainer container = new MutatingContainer(MutatingContainer.Operation.ADD_V, holder);
+        holder.addMutatingContainer(container);
+        return endStep == holder ? (GraphTraversal) this : this.asAdmin().addStep((Step) holder);
     }
 
     /**
@@ -1023,7 +1041,17 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, Edge> addE(final String edgeLabel) {
         this.asAdmin().getBytecode().addStep(Symbols.addE, edgeLabel);
-        return this.asAdmin().addStep(new AddEdgeStep<>(this.asAdmin(), edgeLabel));
+
+        final Step endStep = this.asAdmin().getEndStep();
+        final MutatingContainerHolder holder = (endStep instanceof MutatingContainerHolder) ?
+                (MutatingContainerHolder) endStep : new MutatingStep<>(this.asAdmin());
+
+        final MutatingContainer container = new MutatingContainer(MutatingContainer.Operation.ADD_E, holder);
+        container.setEdgeLabel(edgeLabel);
+        holder.addMutatingContainer(container);
+        return endStep == holder ? (GraphTraversal) this : this.asAdmin().addStep((Step) holder);
+
+        //return this.asAdmin().addStep(new AddEdgeStep<>(this.asAdmin(), edgeLabel));
     }
 
     /**
@@ -1036,7 +1064,13 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, E> to(final String toStepLabel) {
         this.asAdmin().getBytecode().addStep(Symbols.to, toStepLabel);
-        ((FromToModulating) this.asAdmin().getEndStep()).addTo(toStepLabel);
+
+        final Step endStep = this.asAdmin().getEndStep();
+        if (endStep instanceof MutatingContainerHolder) {
+            ((MutatingContainerHolder) endStep).getLastMutatingContainer().setInVLabel(toStepLabel);
+        } else {
+            ((FromToModulating) this.asAdmin().getEndStep()).addTo(toStepLabel);
+        }
         return this;
     }
 
@@ -1050,7 +1084,13 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, E> from(final String fromStepLabel) {
         this.asAdmin().getBytecode().addStep(Symbols.from, fromStepLabel);
-        ((FromToModulating) this.asAdmin().getEndStep()).addFrom(fromStepLabel);
+
+        final Step endStep = this.asAdmin().getEndStep();
+        if (endStep instanceof MutatingContainerHolder) {
+            ((MutatingContainerHolder) endStep).getLastMutatingContainer().setOutVLabel(fromStepLabel);
+        } else {
+            ((FromToModulating) this.asAdmin().getEndStep()).addFrom(fromStepLabel);
+        }
         return this;
     }
 
@@ -1065,6 +1105,11 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, E> to(final Traversal<E, Vertex> toVertex) {
         this.asAdmin().getBytecode().addStep(Symbols.to, toVertex);
+
+
+        // TODO: trigger explode here if this happens?
+
+
         ((FromToModulating) this.asAdmin().getEndStep()).addTo(toVertex.asAdmin());
         return this;
     }
@@ -1080,6 +1125,11 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, E> from(final Traversal<E, Vertex> fromVertex) {
         this.asAdmin().getBytecode().addStep(Symbols.from, fromVertex);
+
+
+        // TODO: trigger explode here if this happens?
+
+
         ((FromToModulating) this.asAdmin().getEndStep()).addFrom(fromVertex.asAdmin());
         return this;
     }
@@ -2058,7 +2108,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         // if it can be detected that this call to property() is related to an addV/E() then we can attempt to fold
         // the properties into that step to gain an optimization for those graphs that support such capabilities.
         final Step endStep = this.asAdmin().getEndStep();
-        if ((endStep instanceof AddVertexStep || endStep instanceof AddEdgeStep || endStep instanceof AddVertexStartStep) &&
+        if ((endStep instanceof MutatingStep || endStep instanceof AddVertexStep || endStep instanceof AddEdgeStep || endStep instanceof AddVertexStartStep) &&
                 keyValues.length == 0 && null == cardinality) {
             ((Mutating) endStep).addPropertyMutations(key, value);
         } else {
@@ -2419,7 +2469,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
     ///////////////////// UTILITY STEPS /////////////////////
 
     /**
-     * A step modulator that provides a lable to the step that can be accessed later in the traversal by other steps.
+     * A step modulator that provides a label to the step that can be accessed later in the traversal by other steps.
      *
      * @param stepLabel  the name of the step
      * @param stepLabels additional names for the label

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/MutatingContainerHolder.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/MutatingContainerHolder.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/MutatingContainerHolder.java
new file mode 100644
index 0000000..5f69e58
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/MutatingContainerHolder.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.step;
+
+
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.MutatingContainer;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.CallbackRegistry;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.Event;
+import org.apache.tinkerpop.gremlin.structure.Graph;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+
+import java.util.List;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public interface MutatingContainerHolder {
+
+    public List<MutatingContainer> getMutatingContainers();
+
+    public default MutatingContainer getLastMutatingContainer() {
+        final List<MutatingContainer> containers = getMutatingContainers();
+        return containers.get(containers.size() - 1);
+    }
+
+    public void addMutatingContainer(final MutatingContainer mutatingContainer);
+
+    public default void removeMutatingContainer(final MutatingContainer mutatingContainer) {
+        throw new UnsupportedOperationException("The holder does not support container removal: " + this.getClass().getCanonicalName());
+    }
+
+    public CallbackRegistry<Event> getMutatingCallbackRegistry();
+
+    public Vertex getLabelledVertex(final String label);
+
+    public Graph getGraph();
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MutatingStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MutatingStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MutatingStep.java
new file mode 100644
index 0000000..d130b7a
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MutatingStep.java
@@ -0,0 +1,102 @@
+/*
+ * 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.step.map;
+
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
+import org.apache.tinkerpop.gremlin.process.traversal.step.Mutating;
+import org.apache.tinkerpop.gremlin.process.traversal.step.MutatingContainerHolder;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.MutatingContainer;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.CallbackRegistry;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.Event;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.ListCallbackRegistry;
+import org.apache.tinkerpop.gremlin.structure.Element;
+import org.apache.tinkerpop.gremlin.structure.Graph;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public final class MutatingStep<S> extends MapStep<S, Element> implements MutatingContainerHolder, Mutating {
+
+    private Map<String,Vertex> labelledVertices = new HashMap<>();
+    private List<MutatingContainer> mutatingContainers = new ArrayList<>();
+    private CallbackRegistry<Event> callbackRegistry;
+
+    public MutatingStep(final Traversal.Admin traversal, final MutatingContainer... mutatingContainers) {
+        super(traversal);
+        Collections.addAll(this.mutatingContainers, mutatingContainers);
+    }
+
+    @Override
+    protected Element map(final Traverser.Admin<S> traverser) {
+        Element e = null;
+        for (final MutatingContainer container : mutatingContainers) {
+            final Element element = container.get();
+            if (element instanceof Vertex) {
+                // TODO: how to handle multiple labelled stuffs g.addV().as('a').addV().as('a')
+                for (String label : container.getStepLabels()) {
+                    labelledVertices.put(label, (Vertex) element);
+                }
+            }
+
+            e = element;
+        }
+
+        return e;
+    }
+
+    @Override
+    public void addPropertyMutations(final Object... keyValues) {
+        final MutatingContainer container = mutatingContainers.get(mutatingContainers.size() - 1);
+        container.addPropertyMutations(keyValues);
+    }
+
+    @Override
+    public Graph getGraph() {
+        return (Graph) this.traversal.getGraph().get();
+    }
+
+    @Override
+    public List<MutatingContainer> getMutatingContainers() {
+        return this.mutatingContainers;
+    }
+
+    @Override
+    public void addMutatingContainer(final MutatingContainer mutatingContainer) {
+        this.mutatingContainers.add(mutatingContainer);
+    }
+
+    @Override
+    public CallbackRegistry<Event> getMutatingCallbackRegistry() {
+        if (null == callbackRegistry) callbackRegistry = new ListCallbackRegistry<>();
+        return callbackRegistry;
+    }
+
+    @Override
+    public Vertex getLabelledVertex(final String label) {
+        return labelledVertices.get(label);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/MutatingContainer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/MutatingContainer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/MutatingContainer.java
new file mode 100644
index 0000000..c7c6821
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/MutatingContainer.java
@@ -0,0 +1,109 @@
+/*
+ * 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.step.util;
+
+import org.apache.tinkerpop.gremlin.process.traversal.step.Mutating;
+import org.apache.tinkerpop.gremlin.process.traversal.step.MutatingContainerHolder;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.CallbackRegistry;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.Event;
+import org.apache.tinkerpop.gremlin.structure.Element;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Function;
+import java.util.function.Supplier;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public class MutatingContainer implements Supplier<Element>, Mutating, Serializable, Cloneable {
+    public enum Operation implements Function<MutatingContainer, Element> {
+        ADD_V {
+            @Override
+            public Element apply(final MutatingContainer container) {
+                return (container.holder.getGraph()).addVertex(container.keyValues.toArray());
+            }
+        },
+        ADD_E {
+            @Override
+            public Element apply(final MutatingContainer container) {
+                final Vertex outV = container.holder.getLabelledVertex(container.outVLabel);
+                final Vertex inV = container.holder.getLabelledVertex(container.inVLabel);
+                return outV.addEdge(container.edgeLabel, inV, container.keyValues.toArray());
+            }
+        }
+    }
+
+    private final Operation op;
+    private final MutatingContainerHolder holder;
+    private String outVLabel;
+    private String inVLabel;
+    private String edgeLabel;
+    private List<Object> keyValues;
+    private Set<String> labels = Collections.emptySet();
+
+    public MutatingContainer(final Operation op, final MutatingContainerHolder holder, final Object... keyValues) {
+        this.op = op;
+        this.holder = holder;
+        if (keyValues != null && keyValues.length > 0) this.keyValues = new ArrayList<>();
+        Collections.addAll(this.keyValues, keyValues);
+    }
+
+    @Override
+    public void addPropertyMutations(final Object... keyValues) {
+        if (null == this.keyValues) this.keyValues = new ArrayList<>();
+        Collections.addAll(this.keyValues, keyValues);
+    }
+
+    public void setOutVLabel(final String label) {
+        this.outVLabel = label;
+    }
+
+    public void setInVLabel(final String label) {
+        this.inVLabel = label;
+    }
+
+    public void addStepLabels(final Set<String> labels) {
+        this.labels = labels;
+    }
+
+    public void setEdgeLabel(final String label) {
+        this.edgeLabel = label;
+    }
+
+    public Set<String> getStepLabels() {
+        return Collections.unmodifiableSet(labels);
+    }
+
+    @Override
+    public CallbackRegistry<Event> getMutatingCallbackRegistry() {
+        // hmmmmmmmmmmmmm
+        return null;
+    }
+
+    @Override
+    public Element get() {
+        return op.apply(this);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MutatingStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MutatingStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MutatingStrategy.java
new file mode 100644
index 0000000..552b8be
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MutatingStrategy.java
@@ -0,0 +1,66 @@
+/*
+ * 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.strategy.optimization;
+
+import org.apache.tinkerpop.gremlin.process.traversal.Step;
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MapStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MutatingStep;
+import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
+
+import java.util.List;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public final class MutatingStrategy extends AbstractTraversalStrategy<TraversalStrategy.OptimizationStrategy> implements TraversalStrategy.OptimizationStrategy {
+
+    private static final MutatingStrategy INSTANCE = new MutatingStrategy();
+
+    private MutatingStrategy() {}
+
+    @Override
+    public void apply(final Traversal.Admin<?, ?> traversal) {
+        final MutatingStep mutatingStep = new MutatingStep(traversal);
+
+        Step start = null;
+        Step end = null;
+        final List<Step> steps = traversal.getSteps();
+        for (int ix = 0; ix < steps.size(); ix++) {
+            final Step currentStep = steps.get(ix);
+            if (currentStep instanceof AddVertexStep) {
+                //mutatingStep.addMutatingStep(null, (MapStep) currentStep);
+                if (null == start) start = currentStep;
+            }
+
+            end = currentStep;
+        }
+
+        TraversalHelper.removeBetween(start, end);
+        traversal.addStep(mutatingStep);
+    }
+
+    public static MutatingStrategy instance() {
+        return INSTANCE;
+    }
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
index eda836a..608e4e9 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
@@ -27,6 +27,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.lambda.ElementValueTravers
 import org.apache.tinkerpop.gremlin.process.traversal.lambda.TokenTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.ByModulating;
 import org.apache.tinkerpop.gremlin.process.traversal.step.HasContainerHolder;
+import org.apache.tinkerpop.gremlin.process.traversal.step.MutatingContainerHolder;
 import org.apache.tinkerpop.gremlin.process.traversal.step.Scoping;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
 import org.apache.tinkerpop.gremlin.process.traversal.step.branch.RepeatStep;
@@ -38,6 +39,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTraversal
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeVertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MutatingStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyMapStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
@@ -46,6 +48,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer;
 import org.apache.tinkerpop.gremlin.structure.Graph;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.MutatingContainer;
+import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 
@@ -200,13 +204,25 @@ public final class TraversalHelper {
         }
     }
 
+    /**
+     * Removes steps in a traversal starting at the {@code startStep} and ending inclusively with the {@code endStep}.
+     */
+    public static <S, E> void removeBetween(final Step<S, ?> startStep, final Step<?, E> endStep) {
+        removeToTraversal(startStep, endStep, null);
+    }
+
+    /**
+     * Removes steps in a traversal starting at the {@code startStep} and ending inclusively with the {@code endStep},
+     * storing them in the provided {@code newTraversal}. If the {@code newTraversal} is {@code null} then the steps
+     * are simply discarded.
+     */
     public static <S, E> void removeToTraversal(final Step<S, ?> startStep, final Step<?, E> endStep, final Traversal.Admin<S, E> newTraversal) {
         final Traversal.Admin<?, ?> originalTraversal = startStep.getTraversal();
         Step<?, ?> currentStep = startStep;
         while (currentStep != endStep && !(currentStep instanceof EmptyStep)) {
             final Step<?, ?> temp = currentStep.getNextStep();
             originalTraversal.removeStep(currentStep);
-            newTraversal.addStep(currentStep);
+            if (newTraversal != null) newTraversal.addStep(currentStep);
             currentStep = temp;
         }
     }
@@ -700,7 +716,8 @@ public final class TraversalHelper {
     }
 
     /**
-     * Used to left-fold a {@link HasContainer} to a {@link HasContainerHolder} if it exists. Else, append a {@link HasStep}.
+     * Used to left-fold a {@link HasContainer} to a {@link HasContainerHolder} if it exists. Else, append a
+     * {@link HasStep}.
      *
      * @param traversal    the traversal to fold or append.
      * @param hasContainer the container to add left or append.
@@ -714,4 +731,20 @@ public final class TraversalHelper {
         } else
             return (T) traversal.addStep(new HasStep<>(traversal, hasContainer));
     }
+
+    /**
+     * Used to left-fold a {@link MutatingContainer} to a {@link MutatingContainerHolder} if it exists. Else, append
+     * a {@link MutatingStep}.
+     *
+     * @param traversal         the traversal to fold or append.
+     * @param mutatingContainer the container to add left or append.
+     * @return the has container folded or appended traversal
+     */
+    public static Traversal.Admin addMutatingContainer(final Traversal.Admin traversal, final MutatingContainer mutatingContainer) {
+        if (traversal.getEndStep() instanceof MutatingContainerHolder) {
+            ((MutatingContainerHolder) traversal.getEndStep()).addMutatingContainer(mutatingContainer);
+            return traversal;
+        } else
+            return traversal.addStep(new MutatingStep<>(traversal, mutatingContainer));
+    }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bb583e3a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
index 5563665..5e722f3 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
@@ -22,6 +22,8 @@ import org.apache.commons.configuration.BaseConfiguration;
 import org.apache.commons.configuration.Configuration;
 import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
@@ -50,7 +52,6 @@ import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.stream.Stream;
 
 /**
  * An in-memory (with optional persistence on calls to {@link #close()}), reference implementation of the property
@@ -601,7 +602,11 @@ public final class TinkerGraph implements Graph {
         LONG {
             @Override
             public Long getNextId(final TinkerGraph graph) {
-                return Stream.generate(() -> (graph.currentId.incrementAndGet())).filter(id -> !graph.vertices.containsKey(id) && !graph.edges.containsKey(id)).findAny().get();
+                long id;
+                do {
+                    id = graph.currentId.getAndIncrement();
+                } while (graph.vertices.containsKey(id) || graph.edges.containsKey(id));
+                return id;
             }
 
             @Override
@@ -631,7 +636,11 @@ public final class TinkerGraph implements Graph {
         INTEGER {
             @Override
             public Integer getNextId(final TinkerGraph graph) {
-                return Stream.generate(() -> (graph.currentId.incrementAndGet())).map(Long::intValue).filter(id -> !graph.vertices.containsKey(id) && !graph.edges.containsKey(id)).findAny().get();
+                long id;
+                do {
+                    id = graph.currentId.getAndIncrement();
+                } while (graph.vertices.containsKey(id) || graph.edges.containsKey(id));
+                return (int) id;
             }
 
             @Override
@@ -691,7 +700,11 @@ public final class TinkerGraph implements Graph {
         ANY {
             @Override
             public Long getNextId(final TinkerGraph graph) {
-                return Stream.generate(() -> (graph.currentId.incrementAndGet())).filter(id -> !graph.vertices.containsKey(id) && !graph.edges.containsKey(id)).findAny().get();
+                long id;
+                do {
+                    id = graph.currentId.getAndIncrement();
+                } while (graph.vertices.containsKey(id) || graph.edges.containsKey(id));
+                return id;
             }
 
             @Override
@@ -705,4 +718,102 @@ public final class TinkerGraph implements Graph {
             }
         }
     }
+
+    public static void main(String[] args) {
+        GraphTraversalSource g = TinkerGraph.open().traversal();
+        for (int iz = 0; iz < 5000; iz++) {
+            GraphTraversal<Vertex, ?> t = g.addV("person");
+            for (int iy = 0; iy < 32; iy++) {
+                if (iy % 2 == 0)
+                    t = t.property("x" + String.valueOf(iy), iy * iz);
+                else
+                    t = t.property("x" + String.valueOf(iy), String.valueOf(iy + iz));
+            }
+
+            for (int ix = 0; ix < 100; ix++) {
+                t = t.addV("person");
+                for (int iy = 0; iy < 32; iy++) {
+                    if (iy % 2 == 0)
+                        t = t.property("x" + String.valueOf(iy), iy * iz);
+                    else
+                        t = t.property("x" + String.valueOf(iy), String.valueOf(iy + iz));
+                }
+            }
+
+            t.iterate();
+
+        }
+    }
+
+//    public static void main(String[] args) {
+//        GraphTraversalSource g = TinkerGraph.open().traversal().
+//                withoutStrategies(
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ConnectiveStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.InlineFilterStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IncidentToAdjacentStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.AdjacentToIncidentStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.FilterRankingStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.MatchPredicateStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.RepeatUnrollStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.RangeByIsCountStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.PathRetractionStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.LazyBarrierStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.ProfileStrategy.class,
+//                    org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.StandardVerificationStrategy.class).
+//                withStrategies(org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.MutatingStrategy.instance());
+//        for (int iz = 0; iz < 1000000; iz++) {
+//            GraphTraversal<Vertex, ?> t = g.addV("person");
+//            for (int iy = 0; iy < 32; iy++) {
+//                if (iy % 2 == 0)
+//                    t = t.property("x" + String.valueOf(iy), iy * iz);
+//                else
+//                    t = t.property("x" + String.valueOf(iy), String.valueOf(iy + iz));
+//            }
+//
+//            t.iterate();
+//
+//        }
+//    }
+
+
+//    public static void main(String[] args) {
+//        final java.util.Random rand = new java.util.Random(584545454L);
+//
+//        for (int iz = 0; iz < 10; iz++) {
+//            GraphTraversalSource g = TinkerGraph.open().traversal();
+//            GraphTraversal<Vertex, ?> t = null;
+//            for (int ix = 0; ix < 100; ix++) {
+//                if (null == t)
+//                    t = g.addV("person");
+//                else
+//                    t = t.addV("person");
+//
+//                for (int iy = 0; iy < 32; iy++) {
+//                    if (iy % 2 == 0)
+//                        t = t.property("x" + String.valueOf(iy), iy * ix);
+//                    else
+//                        t = t.property("x" + String.valueOf(iy), String.valueOf(iy + ix));
+//                }
+//
+//                t = t.as("person" + ix);
+//
+//                if (ix > 0) {
+//                    int edgeCount = ix == 99 ? 6 : 3;
+//                    for (int ie = 0; ie < edgeCount; ie++) {
+//                        t = t.addE("knows").from("person" + ix).to("person" + rand.nextInt(ix));
+//
+//                        for (int iy = 0; iy < 8; iy++) {
+//                            if (iy % 2 == 0)
+//                                t = t.property("x" + String.valueOf(iy), iy * ie);
+//                            else
+//                                t = t.property("x" + String.valueOf(iy), String.valueOf(iy + ie));
+//                        }
+//                    }
+//                }
+//            }
+//
+//            t.iterate();
+//
+//        }
+//    }
 }


[02/50] tinkerpop git commit: TINKERPOP-1896 Cleaned up changelog around TINKERPOP-1898/1895

Posted by sp...@apache.org.
TINKERPOP-1896 Cleaned up changelog around TINKERPOP-1898/1895


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

Branch: refs/heads/TINKERPOP-1656
Commit: 01ef6c110cc323643653c716fbb85fcf433dc418
Parents: c82d06e
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Mar 12 12:19:18 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Mar 12 12:19:18 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/01ef6c11/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 350fce8..a761003 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -31,7 +31,6 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Bumped to Jackson 2.9.4.
 * Added `idleConnectionTimeout` and `keepAliveInterval` to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients.
 * Fixed a bug where lambdas in `gremlin-python` would trigger a failure if steps using python-only symbols were present (such as `as_()`).
-* Fixed a bug where lambdas in `gremlin-python` would trigger a failure if `withStrategies()` was evaluated.
 * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits.
 * Delayed setting of the request identifier until `RequestMessage` construction by the builder.
 * Improved error messaging for failed serialization and deserialization of request/response messages.


[39/50] tinkerpop git commit: Fixed up gremlin-javascript deployment configuration

Posted by sp...@apache.org.
Fixed up gremlin-javascript deployment configuration

Deployment didn't go completely smoothly on 3.2.8/3.3.2. Fixed up the couple of sore spots by adding a alias for the deploy <profile> and ensured that the deploy was not bound to test execution. CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: df7870a48acf9d07d0c3a4a437a710339a49bff2
Parents: b84f700
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Apr 9 11:29:14 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Apr 9 11:29:14 2018 -0400

----------------------------------------------------------------------
 docs/src/dev/developer/release.asciidoc |  1 +
 gremlin-javascript/pom.xml              | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/df7870a4/docs/src/dev/developer/release.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/release.asciidoc b/docs/src/dev/developer/release.asciidoc
index b868755..c7c5bb7 100644
--- a/docs/src/dev/developer/release.asciidoc
+++ b/docs/src/dev/developer/release.asciidoc
@@ -239,6 +239,7 @@ for generating javadoc and without that the binary distributions won't contain t
 .. `mvn clean install -DskipTests -Dnuget`
 .. `mvn deploy -pl gremlin-python -DskipTests -Dpypi`
 .. `mvn deploy -pl :gremlin-dotnet-source -DskipTests -Dnuget`
+.. `mvn deploy -pl gremlin-javascript -DskipTests -Dnpm`
 . `svn co --depth empty https://dist.apache.org/repos/dist/dev/tinkerpop dev; svn up dev/xx.yy.zz`
 . `svn co --depth empty https://dist.apache.org/repos/dist/release/tinkerpop release; mkdir release/xx.yy.zz`
 . Copy release files from `dev/xx.yy.zz` to `release/xx.yy.zz`.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/df7870a4/gremlin-javascript/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-javascript/pom.xml b/gremlin-javascript/pom.xml
index 6b0d8bf..89fb930 100644
--- a/gremlin-javascript/pom.xml
+++ b/gremlin-javascript/pom.xml
@@ -269,6 +269,9 @@ limitations under the License.
             <id>glv-javascript-deploy</id>
             <activation>
                 <activeByDefault>false</activeByDefault>
+                <property>
+                    <name>npm</name>
+                </property>
             </activation>
             <build>
                 <plugins>
@@ -289,7 +292,12 @@ limitations under the License.
                             </execution>
                         </executions>
                         <configuration>
-                            <skip>${skipIntegrationTests}</skip>
+                            <!--
+                            skip needs to be overridden given how the <configuration> is specified in the main build.
+                            it should be fine to just always deploy because this <profile> needs to be manually
+                            activated and that should be good enough given our deployment process.
+                            -->
+                            <skip>false</skip>
                             <workingDirectory>src/main/javascript/gremlin-javascript</workingDirectory>
                             <nodeVersion>v6.12.3</nodeVersion>
                         </configuration>


[07/50] tinkerpop git commit: TINKERPOP-1919 Merge classes P and TraversalPredicate

Posted by sp...@apache.org.
 TINKERPOP-1919 Merge classes P and TraversalPredicate

There is no good reason to keep those two classes separate anymore and
having P as the type for step parameters is probably easier to
understand for users than TraversalPredicate.


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

Branch: refs/heads/TINKERPOP-1656
Commit: 359b08cc79ed89cab1fbc4e2b0b69b94a4e9cd06
Parents: 5049339
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Mon Mar 12 21:16:18 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Tue Mar 13 22:12:31 2018 +0100

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |   1 +
 gremlin-dotnet/glv/P.template                   |  62 ++++++++++-
 gremlin-dotnet/glv/generate.groovy              |   2 +-
 .../Process/Traversal/GraphTraversal.cs         |  20 ++--
 .../src/Gremlin.Net/Process/Traversal/P.cs      | 106 ++++++++++++++-----
 .../Process/Traversal/TraversalPredicate.cs     |  85 ---------------
 .../src/Gremlin.Net/Process/Traversal/__.cs     |  20 ++--
 .../Structure/IO/GraphSON/GraphSONWriter.cs     |   2 +-
 .../Structure/IO/GraphSON/PSerializer.cs        |  45 ++++++++
 .../IO/GraphSON/TraversalPredicateSerializer.cs |  45 --------
 .../Gherkin/GherkinTestRunner.cs                |  18 +---
 .../Gherkin/IgnoreException.cs                  |   5 -
 .../Gherkin/TraversalEvaluation/PParameter.cs   |  97 +++++++++++++++++
 .../TraversalEvaluationTests.cs                 |   2 +-
 .../TraversalEvaluation/TraversalParser.cs      |   2 +-
 .../TraversalPredicateParameter.cs              |  93 ----------------
 .../GraphSON/BytecodeGraphSONSerializerTests.cs |   2 +-
 .../IO/GraphSON/GraphSONWriterTests.cs          |   4 +-
 18 files changed, 311 insertions(+), 300 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 58c4dd0..97b90a5 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -43,6 +43,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Fixed a bug in Gremlin Console which prevented handling of `gremlin.sh` flags that had an "=" between the flag and its arguments.
 * Fixed bug where `SparkMessenger` was not applying the `edgeFunction` from `MessageScope`.
 * Fixed a bug in `ComputerAwareStep` that didn't handle `reset()` properly and thus occasionally produced some extra traversers.
+* Removed `TraversalPredicate` class in Gremlin.Net. It is now included in the `P` class instead.
 
 [[release-3-2-7]]
 === TinkerPop 3.2.7 (Release Date: December 17, 2017)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/glv/P.template
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/glv/P.template b/gremlin-dotnet/glv/P.template
index f337127..ad037c1 100644
--- a/gremlin-dotnet/glv/P.template
+++ b/gremlin-dotnet/glv/P.template
@@ -30,20 +30,72 @@ namespace Gremlin.Net.Process.Traversal
     ///     A <see cref="P" /> is a predicate of the form Func&lt;object, bool&gt;.
     ///     That is, given some object, return true or false.
     /// </summary>
-    public class P
+    public class P : IPredicate
     {
+        /// <summary>
+        ///     Initializes a new instance of the <see cref="P" /> class.
+        /// </summary>
+        /// <param name="operatorName">The name of the predicate.</param>
+        /// <param name="value">The value of the predicate.</param>
+        /// <param name="other">An optional other predicate that is used as an argument for this predicate.</param>
+        public P(string operatorName, dynamic value, P other = null)
+        {
+            OperatorName = operatorName;
+            Value = value;
+            Other = other;
+        }
+
+        /// <summary>
+        ///     Gets the name of the predicate.
+        /// </summary>
+        public string OperatorName { get; }
+
+        /// <summary>
+        ///     Gets the value of the predicate.
+        /// </summary>
+        public dynamic Value { get; }
+
+        /// <summary>
+        ///     Gets an optional other predicate that is used as an argument for this predicate.
+        /// </summary>
+        public P Other { get; }
+
+        /// <summary>
+        ///     Returns a composed predicate that represents a logical AND of this predicate and another.
+        /// </summary>
+        /// <param name="otherPredicate">A predicate that will be logically-ANDed with this predicate.</param>
+        /// <returns>The composed predicate.</returns>
+        public P And(P otherPredicate)
+        {
+            return new P("and", this, otherPredicate);
+        }
+
+        /// <summary>
+        ///     Returns a composed predicate that represents a logical OR of this predicate and another.
+        /// </summary>
+        /// <param name="otherPredicate">A predicate that will be logically-ORed with this predicate.</param>
+        /// <returns>The composed predicate.</returns>
+        public P Or(P otherPredicate)
+        {
+            return new P("or", this, otherPredicate);
+        }
 <% pmethods.findAll{ !(it in ["within", "without"]) }.each { method -> %>
-        public static TraversalPredicate <%= toCSharpMethodName.call(method) %>(params object[] args)
+        public static P <%= toCSharpMethodName.call(method) %>(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("<%= method %>", value);
+            return new P("<%= method %>", value);
         }
 <% } %><% pmethods.findAll{ it in ["within", "without"] }.each { method -> %>
-        public static TraversalPredicate <%= toCSharpMethodName.call(method) %>(params object[] args)
+        public static P <%= toCSharpMethodName.call(method) %>(params object[] args)
         {
-            return new TraversalPredicate("<%= method %>", args);
+            return new P("<%= method %>", args);
         }
 <% } %>
+        /// <inheritdoc />
+        public override string ToString()
+        {
+            return Other == null ? \$"{OperatorName}({Value})" : \$"{OperatorName}({Value},{Other})";
+        }
     }
 
 #pragma warning restore 1591

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/glv/generate.groovy
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/glv/generate.groovy b/gremlin-dotnet/glv/generate.groovy
index 0404307..5057ff8 100644
--- a/gremlin-dotnet/glv/generate.groovy
+++ b/gremlin-dotnet/glv/generate.groovy
@@ -49,7 +49,7 @@ def toCSharpTypeMap = ["Long": "long",
                        "Traversal": "ITraversal",
                        "Traversal[]": "ITraversal[]",
                        "Predicate": "IPredicate",
-                       "P": "TraversalPredicate",
+                       "P": "P",
                        "TraversalStrategy": "ITraversalStrategy",
                        "TraversalStrategy[]": "ITraversalStrategy[]",
                        "Function": "IFunction",

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
index 7100ea3..c8708df 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
@@ -667,7 +667,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> Has (string propertyKey, TraversalPredicate predicate)
+        public GraphTraversal<S, E> Has (string propertyKey, P predicate)
         {
             Bytecode.AddStep("has", propertyKey, predicate);
             return Wrap<S, E>(this);
@@ -685,7 +685,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> Has (string label, string propertyKey, TraversalPredicate predicate)
+        public GraphTraversal<S, E> Has (string label, string propertyKey, P predicate)
         {
             Bytecode.AddStep("has", label, propertyKey, predicate);
             return Wrap<S, E>(this);
@@ -712,7 +712,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the has step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> Has (T accessor, TraversalPredicate predicate)
+        public GraphTraversal<S, E> Has (T accessor, P predicate)
         {
             Bytecode.AddStep("has", accessor, predicate);
             return Wrap<S, E>(this);
@@ -741,7 +741,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the hasId step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> HasId (TraversalPredicate predicate)
+        public GraphTraversal<S, E> HasId (P predicate)
         {
             Bytecode.AddStep("hasId", predicate);
             return Wrap<S, E>(this);
@@ -750,7 +750,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the hasKey step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> HasKey (TraversalPredicate predicate)
+        public GraphTraversal<S, E> HasKey (P predicate)
         {
             Bytecode.AddStep("hasKey", predicate);
             return Wrap<S, E>(this);
@@ -770,7 +770,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the hasLabel step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> HasLabel (TraversalPredicate predicate)
+        public GraphTraversal<S, E> HasLabel (P predicate)
         {
             Bytecode.AddStep("hasLabel", predicate);
             return Wrap<S, E>(this);
@@ -810,7 +810,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the hasValue step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> HasValue (TraversalPredicate predicate)
+        public GraphTraversal<S, E> HasValue (P predicate)
         {
             Bytecode.AddStep("hasValue", predicate);
             return Wrap<S, E>(this);
@@ -888,7 +888,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the is step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> Is (TraversalPredicate predicate)
+        public GraphTraversal<S, E> Is (P predicate)
         {
             Bytecode.AddStep("is", predicate);
             return Wrap<S, E>(this);
@@ -1660,7 +1660,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the where step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> Where (TraversalPredicate predicate)
+        public GraphTraversal<S, E> Where (P predicate)
         {
             Bytecode.AddStep("where", predicate);
             return Wrap<S, E>(this);
@@ -1669,7 +1669,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Adds the where step to this <see cref="GraphTraversal{SType, EType}" />.
         /// </summary>
-        public GraphTraversal<S, E> Where (string startKey, TraversalPredicate predicate)
+        public GraphTraversal<S, E> Where (string startKey, P predicate)
         {
             Bytecode.AddStep("where", startKey, predicate);
             return Wrap<S, E>(this);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
index 0a7809f..e3a1e76 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
@@ -30,85 +30,137 @@ namespace Gremlin.Net.Process.Traversal
     ///     A <see cref="P" /> is a predicate of the form Func&lt;object, bool&gt;.
     ///     That is, given some object, return true or false.
     /// </summary>
-    public class P
+    public class P : IPredicate
     {
+        /// <summary>
+        ///     Initializes a new instance of the <see cref="P" /> class.
+        /// </summary>
+        /// <param name="operatorName">The name of the predicate.</param>
+        /// <param name="value">The value of the predicate.</param>
+        /// <param name="other">An optional other predicate that is used as an argument for this predicate.</param>
+        public P(string operatorName, dynamic value, P other = null)
+        {
+            OperatorName = operatorName;
+            Value = value;
+            Other = other;
+        }
+
+        /// <summary>
+        ///     Gets the name of the predicate.
+        /// </summary>
+        public string OperatorName { get; }
+
+        /// <summary>
+        ///     Gets the value of the predicate.
+        /// </summary>
+        public dynamic Value { get; }
+
+        /// <summary>
+        ///     Gets an optional other predicate that is used as an argument for this predicate.
+        /// </summary>
+        public P Other { get; }
+
+        /// <summary>
+        ///     Returns a composed predicate that represents a logical AND of this predicate and another.
+        /// </summary>
+        /// <param name="otherPredicate">A predicate that will be logically-ANDed with this predicate.</param>
+        /// <returns>The composed predicate.</returns>
+        public P And(P otherPredicate)
+        {
+            return new P("and", this, otherPredicate);
+        }
 
-        public static TraversalPredicate Between(params object[] args)
+        /// <summary>
+        ///     Returns a composed predicate that represents a logical OR of this predicate and another.
+        /// </summary>
+        /// <param name="otherPredicate">A predicate that will be logically-ORed with this predicate.</param>
+        /// <returns>The composed predicate.</returns>
+        public P Or(P otherPredicate)
+        {
+            return new P("or", this, otherPredicate);
+        }
+
+        public static P Between(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("between", value);
+            return new P("between", value);
         }
 
-        public static TraversalPredicate Eq(params object[] args)
+        public static P Eq(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("eq", value);
+            return new P("eq", value);
         }
 
-        public static TraversalPredicate Gt(params object[] args)
+        public static P Gt(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("gt", value);
+            return new P("gt", value);
         }
 
-        public static TraversalPredicate Gte(params object[] args)
+        public static P Gte(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("gte", value);
+            return new P("gte", value);
         }
 
-        public static TraversalPredicate Inside(params object[] args)
+        public static P Inside(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("inside", value);
+            return new P("inside", value);
         }
 
-        public static TraversalPredicate Lt(params object[] args)
+        public static P Lt(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("lt", value);
+            return new P("lt", value);
         }
 
-        public static TraversalPredicate Lte(params object[] args)
+        public static P Lte(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("lte", value);
+            return new P("lte", value);
         }
 
-        public static TraversalPredicate Neq(params object[] args)
+        public static P Neq(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("neq", value);
+            return new P("neq", value);
         }
 
-        public static TraversalPredicate Not(params object[] args)
+        public static P Not(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("not", value);
+            return new P("not", value);
         }
 
-        public static TraversalPredicate Outside(params object[] args)
+        public static P Outside(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("outside", value);
+            return new P("outside", value);
         }
 
-        public static TraversalPredicate Test(params object[] args)
+        public static P Test(params object[] args)
         {
             var value = args.Length == 1 ? args[0] : args;
-            return new TraversalPredicate("test", value);
+            return new P("test", value);
         }
 
-        public static TraversalPredicate Within(params object[] args)
+        public static P Within(params object[] args)
         {
-            return new TraversalPredicate("within", args);
+            return new P("within", args);
         }
 
-        public static TraversalPredicate Without(params object[] args)
+        public static P Without(params object[] args)
         {
-            return new TraversalPredicate("without", args);
+            return new P("without", args);
         }
 
+        /// <inheritdoc />
+        public override string ToString()
+        {
+            return Other == null ? $"{OperatorName}({Value})" : $"{OperatorName}({Value},{Other})";
+        }
     }
 
 #pragma warning restore 1591

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TraversalPredicate.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TraversalPredicate.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TraversalPredicate.cs
deleted file mode 100644
index e8b5be8..0000000
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TraversalPredicate.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-#region License
-
-/*
- * 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.
- */
-
-#endregion
-
-namespace Gremlin.Net.Process.Traversal
-{
-    /// <summary>
-    ///     Represents a predicate (boolean-valued function) used in a <see cref="ITraversal" />.
-    /// </summary>
-    public class TraversalPredicate : IPredicate
-    {
-        /// <summary>
-        ///     Initializes a new instance of the <see cref="TraversalPredicate" /> class.
-        /// </summary>
-        /// <param name="operatorName">The name of the predicate.</param>
-        /// <param name="value">The value of the predicate.</param>
-        /// <param name="other">An optional other predicate that is used as an argument for this predicate.</param>
-        public TraversalPredicate(string operatorName, dynamic value, TraversalPredicate other = null)
-        {
-            OperatorName = operatorName;
-            Value = value;
-            Other = other;
-        }
-
-        /// <summary>
-        ///     Gets the name of the predicate.
-        /// </summary>
-        public string OperatorName { get; }
-
-        /// <summary>
-        ///     Gets the value of the predicate.
-        /// </summary>
-        public dynamic Value { get; }
-
-        /// <summary>
-        ///     Gets an optional other predicate that is used as an argument for this predicate.
-        /// </summary>
-        public TraversalPredicate Other { get; }
-
-        /// <summary>
-        ///     Returns a composed predicate that represents a logical AND of this predicate and another.
-        /// </summary>
-        /// <param name="otherPredicate">A predicate that will be logically-ANDed with this predicate.</param>
-        /// <returns>The composed predicate.</returns>
-        public TraversalPredicate And(TraversalPredicate otherPredicate)
-        {
-            return new TraversalPredicate("and", this, otherPredicate);
-        }
-
-        /// <summary>
-        ///     Returns a composed predicate that represents a logical OR of this predicate and another.
-        /// </summary>
-        /// <param name="otherPredicate">A predicate that will be logically-ORed with this predicate.</param>
-        /// <returns>The composed predicate.</returns>
-        public TraversalPredicate Or(TraversalPredicate otherPredicate)
-        {
-            return new TraversalPredicate("or", this, otherPredicate);
-        }
-
-        /// <inheritdoc />
-        public override string ToString()
-        {
-            return Other == null ? $"{OperatorName}({Value})" : $"{OperatorName}({Value},{Other})";
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
index 9620e7f..46f510a 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
@@ -485,7 +485,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(string propertyKey, TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Has(string propertyKey, P predicate)
         {
             return new GraphTraversal<object, object>().Has(propertyKey, predicate);            
         }
@@ -501,7 +501,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(string label, string propertyKey, TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Has(string label, string propertyKey, P predicate)
         {
             return new GraphTraversal<object, object>().Has(label, propertyKey, predicate);            
         }
@@ -525,7 +525,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the has step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Has(T accessor, TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Has(T accessor, P predicate)
         {
             return new GraphTraversal<object, object>().Has(accessor, predicate);            
         }
@@ -551,7 +551,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasId step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasId(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> HasId(P predicate)
         {
             return new GraphTraversal<object, object>().HasId(predicate);            
         }
@@ -559,7 +559,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasKey step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasKey(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> HasKey(P predicate)
         {
             return new GraphTraversal<object, object>().HasKey(predicate);            
         }
@@ -577,7 +577,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasLabel step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasLabel(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> HasLabel(P predicate)
         {
             return new GraphTraversal<object, object>().HasLabel(predicate);            
         }
@@ -613,7 +613,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the hasValue step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> HasValue(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> HasValue(P predicate)
         {
             return new GraphTraversal<object, object>().HasValue(predicate);            
         }
@@ -683,7 +683,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the is step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Is(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Is(P predicate)
         {
             return new GraphTraversal<object, object>().Is(predicate);            
         }
@@ -1293,7 +1293,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the where step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Where(TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Where(P predicate)
         {
             return new GraphTraversal<object, object>().Where(predicate);            
         }
@@ -1301,7 +1301,7 @@ namespace Gremlin.Net.Process.Traversal
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds the where step to that traversal.
         /// </summary>
-        public static GraphTraversal<object, object> Where(string startKey, TraversalPredicate predicate)
+        public static GraphTraversal<object, object> Where(string startKey, P predicate)
         {
             return new GraphTraversal<object, object>().Where(startKey, predicate);            
         }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
index d5b7acc..f23d80d 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
@@ -54,7 +54,7 @@ namespace Gremlin.Net.Structure.IO.GraphSON
                 {typeof(DateTimeOffset), new DateSerializer()},
                 {typeof(Type), new ClassSerializer()},
                 {typeof(EnumWrapper), new EnumSerializer()},
-                {typeof(TraversalPredicate), new TraversalPredicateSerializer()},
+                {typeof(P), new PSerializer()},
                 {typeof(Vertex), new VertexSerializer()},
                 {typeof(Edge), new EdgeSerializer()},
                 {typeof(Property), new PropertySerializer()},

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/PSerializer.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/PSerializer.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/PSerializer.cs
new file mode 100644
index 0000000..46facda
--- /dev/null
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/PSerializer.cs
@@ -0,0 +1,45 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+using System.Collections.Generic;
+using Gremlin.Net.Process.Traversal;
+
+namespace Gremlin.Net.Structure.IO.GraphSON
+{
+    internal class PSerializer : IGraphSONSerializer
+    {
+        public Dictionary<string, dynamic> Dictify(dynamic predicate, GraphSONWriter writer)
+        {
+            P p = predicate;
+            var value = p.Other == null
+                ? writer.ToDict(p.Value)
+                : new List<dynamic> {writer.ToDict(p.Value), writer.ToDict(p.Other)};
+            var dict = new Dictionary<string, dynamic>
+            {
+                {"predicate", p.OperatorName},
+                {"value", value}
+            };
+            return GraphSONUtil.ToTypedValue("P", dict);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/TraversalPredicateSerializer.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/TraversalPredicateSerializer.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/TraversalPredicateSerializer.cs
deleted file mode 100644
index 937cb90..0000000
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/TraversalPredicateSerializer.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-#region License
-
-/*
- * 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.
- */
-
-#endregion
-
-using System.Collections.Generic;
-using Gremlin.Net.Process.Traversal;
-
-namespace Gremlin.Net.Structure.IO.GraphSON
-{
-    internal class TraversalPredicateSerializer : IGraphSONSerializer
-    {
-        public Dictionary<string, dynamic> Dictify(dynamic predicate, GraphSONWriter writer)
-        {
-            TraversalPredicate p = predicate;
-            var value = p.Other == null
-                ? writer.ToDict(p.Value)
-                : new List<dynamic> {writer.ToDict(p.Value), writer.ToDict(p.Other)};
-            var dict = new Dictionary<string, dynamic>
-            {
-                {"predicate", p.OperatorName},
-                {"value", value}
-            };
-            return GraphSONUtil.ToTypedValue("P", dict);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
index d906357..c3819fe 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -43,23 +43,15 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                 {"g_V_hasIdXwithinXemptyXX_count", IgnoreReason.PWithinWrapsArgumentsInArray},
                 {"g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.PWithinWrapsArgumentsInArray},
                 {
-                    "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name",
-                    IgnoreReason.PNotCreatedCorrectlyByGherkinRunner
-                },
-                {
-                    "g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX",
-                    IgnoreReason.PNotCreatedCorrectlyByGherkinRunner
-                },
-                {
-                    "g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_whereXa_gtXbX_orXeqXbXXX_byXageX_byXweightX_byXweightX_selectXa_cX_byXnameX",
-                    IgnoreReason.PNotCreatedCorrectlyByGherkinRunner
+                    "g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX",
+                    IgnoreReason.PNotDeserializationProblem
                 },
                 {
-                    "g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_inXcreatedX_asXdX_whereXa_ltXbX_orXgtXcXX_andXneqXdXXX_byXageX_byXweightX_byXinXcreatedX_valuesXageX_minX_selectXa_c_dX",
-                    IgnoreReason.PNotCreatedCorrectlyByGherkinRunner
+                    "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name",
+                    IgnoreReason.PNotDeserializationProblem
                 },
                 {
-                    "g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX",
+                    "g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX",
                     IgnoreReason.PNotDeserializationProblem
                 }
             };

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
index dae2ced..fd226bf 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
@@ -43,10 +43,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                 case IgnoreReason.LambdaNotSupported:
                     reasonSuffix = " because lambdas are not supported in Gremlin.NET (TINKERPOP-1854)";
                     break;
-                case IgnoreReason.PNotCreatedCorrectlyByGherkinRunner:
-                    reasonSuffix =
-                        " because the Gherkin runner can't call methods in TraversalPredicate class (TINKERPOP-1919)";
-                    break;
                 case IgnoreReason.PWithinWrapsArgumentsInArray:
                     reasonSuffix = " because P.Within() arguments are incorrectly wrapped in an array (TINKERPOP-1920)";
                     break;
@@ -61,7 +57,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
     public enum IgnoreReason
     {
         LambdaNotSupported,
-        PNotCreatedCorrectlyByGherkinRunner,
         PWithinWrapsArgumentsInArray,
         PNotDeserializationProblem
     }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/PParameter.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/PParameter.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/PParameter.cs
new file mode 100644
index 0000000..b25faef
--- /dev/null
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/PParameter.cs
@@ -0,0 +1,97 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Dynamic;
+using System.Linq;
+using System.Reflection;
+using Gremlin.Net.Process.Traversal;
+
+namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
+{
+    /// <summary>
+    /// Represents a parameter for a traversal predicate (ie: P.gt())
+    /// </summary>
+    internal class PParameter : ITokenParameter, IEquatable<PParameter>
+    {
+        private IDictionary<string, object> _contextParameterValues;
+        public IList<Token> Tokens { get; }
+        
+        public PParameter(IList<Token> tokens)
+        {
+            Tokens = tokens;
+        }
+
+        public bool Equals(PParameter other)
+        {
+            return Tokens.SequenceEqual(other.Tokens);
+        }
+
+        public override bool Equals(object obj)
+        {
+            if (ReferenceEquals(null, obj)) return false;
+            if (ReferenceEquals(this, obj)) return true;
+            if (obj.GetType() != GetType()) return false;
+            return Equals((PParameter) obj);
+        }
+
+        public override int GetHashCode()
+        {
+            return Tokens != null ? Tokens.GetHashCode() : 0;
+        }
+
+        public object GetValue()
+        {
+            var type = typeof(P);
+            object instance = null;
+            for (var i = 1; i < Tokens.Count; i++)
+            {
+                var token = Tokens[i];
+                token.SetContextParameterValues(_contextParameterValues);
+                var method = type.GetMethod(TraversalParser.GetCsharpName(token.Name),
+                    BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public);
+                if (method == null)
+                {
+                    throw new InvalidOperationException($"Predicate (P) method '{token}' not found for testing");
+                }
+                
+                var parameters = method.IsStatic
+                    ? new object[] {token.Parameters.Select(p => p.GetValue()).ToArray()}
+                    : token.Parameters.Select(p => p.GetValue()).ToArray();
+                instance = method.Invoke(instance, parameters);
+            }
+            return instance;
+        }
+
+        public Type GetParameterType()
+        {
+            return typeof(P);
+        }
+
+        public void SetContextParameterValues(IDictionary<string, object> parameterValues)
+        {
+            _contextParameterValues = parameterValues;
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalEvaluationTests.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalEvaluationTests.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalEvaluationTests.cs
index 94a8c99..4e2bfff 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalEvaluationTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalEvaluationTests.cs
@@ -55,7 +55,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
                         new[] {new Token("__"), new Token("in", new StringParameter("knows"))}, "__.in(\"knows\")")})}),
                 Tuple.Create("g.V().has(\"age\",P.gt(27))", 
                     new[] {new Token("has", new ITokenParameter[] { new StringParameter("age"),
-                        new TraversalPredicateParameter(
+                        new PParameter(
                             new[] { new Token("P"), new Token("gt", LiteralParameter.Create(27)) }) })}),
                 Tuple.Create("g.V().count(Scope.local)", 
                     new[] { new Token("count", new TraversalEnumParameter("Scope.local"))}),

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
index 118fcea..11145da 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
@@ -406,7 +406,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
             }
             if (text.Substring(i, 2).StartsWith("P."))
             {
-                return new TraversalPredicateParameter(ParseTokens(text, ref i));
+                return new PParameter(ParseTokens(text, ref i));
             }
             var parameterText = text.Substring(i, text.IndexOf(')', i) - i);
             var separatorIndex = parameterText.IndexOf(',');

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalPredicateParameter.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalPredicateParameter.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalPredicateParameter.cs
deleted file mode 100644
index 57262c1..0000000
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalPredicateParameter.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-#region License
-
-/*
- * 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.
- */
-
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using Gremlin.Net.Process.Traversal;
-
-namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
-{
-    /// <summary>
-    /// Represents a parameter for a traversal predicate (ie: P.gt())
-    /// </summary>
-    internal class TraversalPredicateParameter : ITokenParameter, IEquatable<TraversalPredicateParameter>
-    {
-        private IDictionary<string, object> _contextParameterValues;
-        public IList<Token> Tokens { get; }
-        
-        public TraversalPredicateParameter(IList<Token> tokens)
-        {
-            Tokens = tokens;
-        }
-
-        public bool Equals(TraversalPredicateParameter other)
-        {
-            return Tokens.SequenceEqual(other.Tokens);
-        }
-
-        public override bool Equals(object obj)
-        {
-            if (ReferenceEquals(null, obj)) return false;
-            if (ReferenceEquals(this, obj)) return true;
-            if (obj.GetType() != GetType()) return false;
-            return Equals((TraversalPredicateParameter) obj);
-        }
-
-        public override int GetHashCode()
-        {
-            return Tokens != null ? Tokens.GetHashCode() : 0;
-        }
-
-        public object GetValue()
-        {
-            var type = typeof(P);
-            object instance = null;
-            for (var i = 1; i < Tokens.Count; i++)
-            {
-                var token = Tokens[i];
-                token.SetContextParameterValues(_contextParameterValues);
-                var method = type.GetMethod(TraversalParser.GetCsharpName(token.Name),
-                    BindingFlags.Static | BindingFlags.Public);
-                if (method == null)
-                {
-                    throw new InvalidOperationException($"Predicate (P) method '{token}' not found for testing");
-                }
-                instance = method.Invoke(instance,
-                    new object[] {token.Parameters.Select(p => p.GetValue()).ToArray()});
-            }
-            return instance;
-        }
-
-        public Type GetParameterType()
-        {
-            return typeof(TraversalPredicate);
-        }
-
-        public void SetContextParameterValues(IDictionary<string, object> parameterValues)
-        {
-            _contextParameterValues = parameterValues;
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/BytecodeGraphSONSerializerTests.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/BytecodeGraphSONSerializerTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/BytecodeGraphSONSerializerTests.cs
index 8ed7a3d..568b970 100644
--- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/BytecodeGraphSONSerializerTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/BytecodeGraphSONSerializerTests.cs
@@ -118,7 +118,7 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON
             bytecode.AddSource("withSideEffect", "a", new List<string> {"josh", "peter"});
             bytecode.AddStep("V", 1);
             bytecode.AddStep("values", "name");
-            bytecode.AddStep("where", new TraversalPredicate("within", "a"));
+            bytecode.AddStep("where", new P("within", "a"));
             var graphsonWriter = CreateGraphSONWriter();
 
             var graphSON = graphsonWriter.WriteObject(bytecode);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/359b08cc/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
index 3d02533..3e2d307 100644
--- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
@@ -222,7 +222,7 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON
         public void ShouldSerializePredicateWithTwoValues()
         {
             var writer = CreateStandardGraphSONWriter();
-            var predicate = new TraversalPredicate("within", new List<int> {1, 2});
+            var predicate = new P("within", new List<int> {1, 2});
 
             var serializedPredicate = writer.WriteObject(predicate);
 
@@ -235,7 +235,7 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON
         public void ShouldSerializePredicateWithSingleValue()
         {
             var writer = CreateStandardGraphSONWriter();
-            var predicate = new TraversalPredicate("lt", 5);
+            var predicate = new P("lt", 5);
 
             var serializedPredicate = writer.WriteObject(predicate);
 


[06/50] tinkerpop git commit: Merge branch 'TINKERPOP-1901' into tp32

Posted by sp...@apache.org.
Merge branch 'TINKERPOP-1901' into tp32


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

Branch: refs/heads/TINKERPOP-1656
Commit: 504933975d2fbbeb61aa724f38aa8b7c888f63ea
Parents: f02f94f df989dc
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Tue Mar 13 19:27:58 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Tue Mar 13 19:27:58 2018 +0100

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 docs/src/reference/gremlin-variants.asciidoc    |  2 +-
 .../upgrade/release-3.2.x-incubating.asciidoc   | 11 +++
 gremlin-dotnet/glv/Enum.template                |  9 +-
 gremlin-dotnet/glv/generate.groovy              | 41 ++++-----
 .../Gremlin.Net/Process/Traversal/Barrier.cs    |  9 +-
 .../Process/Traversal/Cardinality.cs            | 13 ++-
 .../src/Gremlin.Net/Process/Traversal/Column.cs | 11 ++-
 .../Gremlin.Net/Process/Traversal/Direction.cs  | 13 ++-
 .../Process/Traversal/EnumWrapper.cs            | 52 +++++++++++
 .../Process/Traversal/GraphSONVersion.cs        | 11 ++-
 .../Process/Traversal/GraphTraversal.cs         | 45 ++++++----
 .../Process/Traversal/GraphTraversalSource.cs   | 14 ++-
 .../Process/Traversal/GryoVersion.cs            |  9 +-
 .../Process/Traversal/IBiFunction.cs            | 33 +++++++
 .../Process/Traversal/IBinaryOperator.cs        | 34 ++++++++
 .../Process/Traversal/IComparator.cs            | 32 +++++++
 .../Gremlin.Net/Process/Traversal/IConsumer.cs  | 33 +++++++
 .../Gremlin.Net/Process/Traversal/IFunction.cs  | 32 +++++++
 .../Gremlin.Net/Process/Traversal/IPredicate.cs | 32 +++++++
 .../Process/Traversal/NamingConversions.cs      | 91 --------------------
 .../Gremlin.Net/Process/Traversal/Operator.cs   | 29 ++++---
 .../src/Gremlin.Net/Process/Traversal/Order.cs  | 21 +++--
 .../src/Gremlin.Net/Process/Traversal/Pick.cs   | 11 ++-
 .../src/Gremlin.Net/Process/Traversal/Pop.cs    | 13 ++-
 .../src/Gremlin.Net/Process/Traversal/Scope.cs  | 11 ++-
 .../src/Gremlin.Net/Process/Traversal/T.cs      | 15 ++--
 .../Process/Traversal/TraversalPredicate.cs     |  2 +-
 .../src/Gremlin.Net/Process/Traversal/__.cs     | 28 +++---
 .../Structure/IO/GraphSON/EnumSerializer.cs     |  5 +-
 .../Structure/IO/GraphSON/GraphSONWriter.cs     |  2 +-
 .../TraversalEnumParameter.cs                   |  5 +-
 32 files changed, 457 insertions(+), 213 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/50493397/CHANGELOG.asciidoc
----------------------------------------------------------------------


[13/50] tinkerpop git commit: Cleaned up the sink dataset a bit.

Posted by sp...@apache.org.
Cleaned up the sink dataset a bit.

Introduced more consistent,general property/label names. CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: d3d1ccfa673765085e6299cfbf0c17ccd3318e88
Parents: 0bf9b2f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 15 18:37:28 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 15 18:37:28 2018 -0400

----------------------------------------------------------------------
 data/tinkerpop-sink-typed.json                     |   4 ++--
 data/tinkerpop-sink-v2d0-typed.json                |   4 ++--
 data/tinkerpop-sink-v2d0.json                      |   4 ++--
 data/tinkerpop-sink.json                           |   4 ++--
 data/tinkerpop-sink.kryo                           | Bin 288 -> 234 bytes
 .../io/graphson/tinkerpop-sink-typed.json          |   4 ++--
 .../io/graphson/tinkerpop-sink-v2d0-typed.json     |   4 ++--
 .../structure/io/graphson/tinkerpop-sink-v2d0.json |   4 ++--
 .../structure/io/graphson/tinkerpop-sink.json      |   4 ++--
 .../gremlin/structure/io/gryo/tinkerpop-sink.kryo  | Bin 288 -> 234 bytes
 .../tinkergraph/structure/TinkerFactory.java       |  11 ++++-------
 11 files changed, 20 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/data/tinkerpop-sink-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-typed.json b/data/tinkerpop-sink-typed.json
index bc56489..2e83384 100644
--- a/data/tinkerpop-sink-typed.json
+++ b/data/tinkerpop-sink-typed.json
@@ -1,3 +1,3 @@
-{"@class":"java.util.HashMap","id":2000,"label":"message_passing_test","inE":{"@class":"java.util.HashMap","msg_pass_test_edge":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","msg_pass_test_edge":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"inV":2001},{"@class":"java.util.HashMap","id":5,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"a"}]]}}
-{"@class":"java.util.HashMap","id":2001,"label":"message_passing_test","inE":{"@class":"java.util.HashMap","msg_pass_test_edge":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
+{"@class":"java.util.HashMap","id":2000,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"inV":2001},{"@class":"java.util.HashMap","id":5,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"a"}]]}}
+{"@class":"java.util.HashMap","id":2001,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
 {"@class":"java.util.HashMap","id":1000,"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"outV":1000}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"inV":1000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"loop"}]]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/data/tinkerpop-sink-v2d0-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0-typed.json b/data/tinkerpop-sink-v2d0-typed.json
index c0844a3..7a27853 100644
--- a/data/tinkerpop-sink-v2d0-typed.json
+++ b/data/tinkerpop-sink-v2d0-typed.json
@@ -1,3 +1,3 @@
-{"id":{"@type":"g:Int32","@value":2000},"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
-{"id":{"@type":"g:Int32","@value":2001},"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
+{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
+{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
 {"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/data/tinkerpop-sink-v2d0.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0.json b/data/tinkerpop-sink-v2d0.json
index 44fbda9..420e089 100644
--- a/data/tinkerpop-sink-v2d0.json
+++ b/data/tinkerpop-sink-v2d0.json
@@ -1,3 +1,3 @@
-{"id":2000,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":5,"outV":2000}]},"outE":{"msg_pass_test_edge":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
+{"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
+{"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
 {"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/data/tinkerpop-sink.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.json b/data/tinkerpop-sink.json
index 44fbda9..420e089 100644
--- a/data/tinkerpop-sink.json
+++ b/data/tinkerpop-sink.json
@@ -1,3 +1,3 @@
-{"id":2000,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":5,"outV":2000}]},"outE":{"msg_pass_test_edge":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
+{"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
+{"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
 {"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/data/tinkerpop-sink.kryo
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.kryo b/data/tinkerpop-sink.kryo
index 24a3468..ae68674 100644
Binary files a/data/tinkerpop-sink.kryo and b/data/tinkerpop-sink.kryo differ

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
index bc56489..2e83384 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
@@ -1,3 +1,3 @@
-{"@class":"java.util.HashMap","id":2000,"label":"message_passing_test","inE":{"@class":"java.util.HashMap","msg_pass_test_edge":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","msg_pass_test_edge":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"inV":2001},{"@class":"java.util.HashMap","id":5,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"a"}]]}}
-{"@class":"java.util.HashMap","id":2001,"label":"message_passing_test","inE":{"@class":"java.util.HashMap","msg_pass_test_edge":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
+{"@class":"java.util.HashMap","id":2000,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"inV":2001},{"@class":"java.util.HashMap","id":5,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"a"}]]}}
+{"@class":"java.util.HashMap","id":2001,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
 {"@class":"java.util.HashMap","id":1000,"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"outV":1000}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"inV":1000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"loop"}]]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json
index c0844a3..7a27853 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json
@@ -1,3 +1,3 @@
-{"id":{"@type":"g:Int32","@value":2000},"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
-{"id":{"@type":"g:Int32","@value":2001},"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
+{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
+{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
 {"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json
index 44fbda9..420e089 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json
@@ -1,3 +1,3 @@
-{"id":2000,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":5,"outV":2000}]},"outE":{"msg_pass_test_edge":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
+{"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
+{"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
 {"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
index 44fbda9..420e089 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
@@ -1,3 +1,3 @@
-{"id":2000,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":5,"outV":2000}]},"outE":{"msg_pass_test_edge":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
+{"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
+{"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
 {"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo
index 24a3468..ae68674 100644
Binary files a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo differ

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d3d1ccfa/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
index 1b908ab..c464fa8 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
@@ -149,13 +149,10 @@ public final class TinkerFactory {
         g.addV("loops").property(T.id, 1000).property("name", "loop").as("me").
           addE("self").to("me").
           iterate();
-        final String LABEL = "message_passing_test";
-        final String EDGE_LABEL = "msg_pass_test_edge";
-        final String PROPERTY_IN = "name";
-        final Vertex a = graph.addVertex(T.id, 2000, T.label, LABEL, PROPERTY_IN, "a");
-        final Vertex b = graph.addVertex(T.id, 2001, T.label, LABEL, PROPERTY_IN, "b");
-        a.addEdge(EDGE_LABEL, b);
-        a.addEdge(EDGE_LABEL, a);
+        g.addV("message").property(T.id, 2000).property("name", "a").as("a").
+          addV("message").property(T.id, 2001).property("name", "b").as("b").
+          addE("link").from("a").to("b").
+          addE("link").from("a").to("a").iterate();
     }
 
     private static TinkerGraph getTinkerGraphWithNumberManager() {


[25/50] tinkerpop git commit: Fixed bad label in test for sink data

Posted by sp...@apache.org.
Fixed bad label in test for sink data

Not sure why all test implementations weren't failing here, but giraph was especially not happy. CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 373eba1428f989743cab050fd253c26c36f922f0
Parents: bddc756
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 22 09:12:03 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 22 09:12:27 2018 -0400

----------------------------------------------------------------------
 .../tinkerpop/gremlin/process/computer/GraphComputerTest.java      | 2 +-
 .../tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java     | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/373eba14/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
index f9e79ae..3f492d6 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
@@ -2758,7 +2758,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
         private static final String SIMPLE_VERTEX_PROGRAM_CFG_PREFIX = "gremlin.simpleVertexProgram";
         private static final String PROPERTY_OUT = "propertyout";
         private static final String PROPERTY_IN = "name";
-        private static final String VERTEX_LABEL = "message_passing_test";
+        private static final String VERTEX_LABEL = "message";
         private static final String DIRECTION_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".direction";
 
         private Direction direction;

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/373eba14/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
index c464fa8..ef1ee7f 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
@@ -21,7 +21,6 @@ package org.apache.tinkerpop.gremlin.tinkergraph.structure;
 import org.apache.commons.configuration.BaseConfiguration;
 import org.apache.commons.configuration.Configuration;
 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.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;


[31/50] tinkerpop git commit: Minor bug fix to the graphson type serializer

Posted by sp...@apache.org.
Minor bug fix to the graphson type serializer

There was no need to test for string JsonTokens - just needed to pass all other "shapes" through to check for type info. Credit to kevin gallardo for the fix. CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 2a9e7e24f4e255cad3eb300423634cbac110d74d
Parents: fdac653
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Mar 27 13:31:16 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Mar 27 13:31:16 2018 -0400

----------------------------------------------------------------------
 .../io/graphson/GraphSONTypeSerializer.java         | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2a9e7e24/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 53ccc0b..765331a 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
@@ -96,14 +96,12 @@ public class GraphSONTypeSerializer extends TypeSerializer {
 
     @Override
     public WritableTypeId writeTypePrefix(final JsonGenerator jsonGenerator, final WritableTypeId writableTypeId) throws IOException {
-        if (writableTypeId.valueShape == JsonToken.VALUE_STRING) {
-            if (canWriteTypeId()) {
-                writeTypePrefix(jsonGenerator, getTypeIdResolver().idFromValueAndType(writableTypeId.forValue, getClassFromObject(writableTypeId.forValue)));
-            }
-        } else if (writableTypeId.valueShape == JsonToken.START_OBJECT) {
+        if (writableTypeId.valueShape == JsonToken.START_OBJECT) {
             jsonGenerator.writeStartObject();
         } else if (writableTypeId.valueShape == JsonToken.START_ARRAY) {
             jsonGenerator.writeStartArray();
+        } else if (canWriteTypeId()) {
+            writeTypePrefix(jsonGenerator, getTypeIdResolver().idFromValueAndType(writableTypeId.forValue, getClassFromObject(writableTypeId.forValue)));
         } else {
             throw new IllegalStateException("Could not write prefix: shape[" + writableTypeId.valueShape + "] value[" + writableTypeId.forValue + "]");
         }
@@ -113,14 +111,12 @@ public class GraphSONTypeSerializer extends TypeSerializer {
 
     @Override
     public WritableTypeId writeTypeSuffix(final JsonGenerator jsonGenerator, final WritableTypeId writableTypeId) throws IOException {
-        if (writableTypeId.valueShape == JsonToken.VALUE_STRING) {
-            if (canWriteTypeId()) {
-                writeTypeSuffix(jsonGenerator);
-            }
-        } else if (writableTypeId.valueShape == JsonToken.START_OBJECT) {
+        if (writableTypeId.valueShape == JsonToken.START_OBJECT) {
             jsonGenerator.writeEndObject();
         } else if (writableTypeId.valueShape == JsonToken.START_ARRAY) {
             jsonGenerator.writeEndArray();
+        } else if (canWriteTypeId()) {
+            writeTypeSuffix(jsonGenerator);
         } else {
             throw new IllegalStateException("Could not write suffix: shape[" + writableTypeId.valueShape + "] value[" + writableTypeId.forValue + "]");
         }


[35/50] tinkerpop git commit: Use straight quotes in csproj file CTR

Posted by sp...@apache.org.
Use straight quotes in csproj file CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 1592c4f3ec1e0753324c944f16840b57b189d13a
Parents: 20bc886
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Apr 6 20:07:41 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Apr 6 20:07:41 2018 -0400

----------------------------------------------------------------------
 gremlin-dotnet/glv/Gremlin.Net.csproj.template    | 4 ++--
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1592c4f3/gremlin-dotnet/glv/Gremlin.Net.csproj.template
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/glv/Gremlin.Net.csproj.template b/gremlin-dotnet/glv/Gremlin.Net.csproj.template
index 897ec94..b95bae6 100644
--- a/gremlin-dotnet/glv/Gremlin.Net.csproj.template
+++ b/gremlin-dotnet/glv/Gremlin.Net.csproj.template
@@ -32,9 +32,9 @@ limitations under the License.
     <Authors>Apache TinkerPop</Authors>
     <Description>Gremlin.Net for Apache TinkerPop™ is a language variant and driver for .NET.
 
-Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is the graph traversal language of TinkerPop. It can be described as a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application’s property graph.
+Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is the graph traversal language of TinkerPop. It can be described as a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application's property graph.
 
-Gremlin.Net implements Gremlin within .NET. C# syntax has the same constructs as Java including “dot notation” for function chaining (a.b.c), round bracket function arguments (a(b,c)), and support for global namespaces (a(b()) vs a(__.b())). As such, anyone familiar with Gremlin-Java will immediately be able to work with Gremlin.Net. Moreover, there are a few added constructs to Gremlin.Net that make traversals a bit more succinct.
+Gremlin.Net implements Gremlin within .NET. C# syntax has the same constructs as Java including "dot notation" for function chaining (a.b.c), round bracket function arguments (a(b,c)), and support for global namespaces (a(b()) vs a(__.b())). As such, anyone familiar with Gremlin-Java will immediately be able to work with Gremlin.Net. Moreover, there are a few added constructs to Gremlin.Net that make traversals a bit more succinct.
 
 Please see the reference documentation at Apache TinkerPop for more information on usage.
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1592c4f3/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
index 44a3a10..fc75b83 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
+++ b/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
@@ -32,9 +32,9 @@ limitations under the License.
     <Authors>Apache TinkerPop</Authors>
     <Description>Gremlin.Net for Apache TinkerPop™ is a language variant and driver for .NET.
 
-Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is the graph traversal language of TinkerPop. It can be described as a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application’s property graph.
+Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Gremlin is the graph traversal language of TinkerPop. It can be described as a functional, data-flow language that enables users to succinctly express complex traversals on (or queries of) their application's property graph.
 
-Gremlin.Net implements Gremlin within .NET. C# syntax has the same constructs as Java including “dot notation” for function chaining (a.b.c), round bracket function arguments (a(b,c)), and support for global namespaces (a(b()) vs a(__.b())). As such, anyone familiar with Gremlin-Java will immediately be able to work with Gremlin.Net. Moreover, there are a few added constructs to Gremlin.Net that make traversals a bit more succinct.
+Gremlin.Net implements Gremlin within .NET. C# syntax has the same constructs as Java including "dot notation" for function chaining (a.b.c), round bracket function arguments (a(b,c)), and support for global namespaces (a(b()) vs a(__.b())). As such, anyone familiar with Gremlin-Java will immediately be able to work with Gremlin.Net. Moreover, there are a few added constructs to Gremlin.Net that make traversals a bit more succinct.
 
 Please see the reference documentation at Apache TinkerPop for more information on usage.
 


[20/50] tinkerpop git commit: close resources - CTR

Posted by sp...@apache.org.
close resources - CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 143a86bcce5010cff2e7bb162b4ce73cb161961b
Parents: b524225
Author: Robert Dale <ro...@gmail.com>
Authored: Tue Mar 20 12:30:30 2018 -0400
Committer: Robert Dale <ro...@gmail.com>
Committed: Tue Mar 20 12:30:30 2018 -0400

----------------------------------------------------------------------
 .../tinkerpop/gremlin/jsr223/DefaultScriptCustomizer.java       | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/143a86bc/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultScriptCustomizer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultScriptCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultScriptCustomizer.java
index c996cae..89aa733 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultScriptCustomizer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultScriptCustomizer.java
@@ -25,6 +25,7 @@ import java.nio.file.Files;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * Default implementation of the {@link ScriptCustomizer} that can create the script list from a list of files or
@@ -38,8 +39,8 @@ public class DefaultScriptCustomizer implements ScriptCustomizer {
 
     public DefaultScriptCustomizer(final List<File> files) {
         this(files.stream().map(f -> {
-            try {
-                return Files.lines(f.toPath(), StandardCharsets.UTF_8).collect(Collectors.toList());
+            try (Stream<String> lines = Files.lines(f.toPath(), StandardCharsets.UTF_8)) {
+                return lines.collect(Collectors.toList());
             } catch (IOException ioe) {
                 throw new IllegalStateException(ioe);
             }


[49/50] tinkerpop git commit: Make ResponseExceptions constructor public CTR

Posted by sp...@apache.org.
Make ResponseExceptions constructor public CTR

This makes the ResponseException easier to use in tests for users of
Gremlin.Net.


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

Branch: refs/heads/TINKERPOP-1656
Commit: 25913023561f76043e11ff0813b2c8ece57274b5
Parents: b99c56a
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Thu Apr 19 16:08:03 2018 +0200
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Thu Apr 19 16:08:03 2018 +0200

----------------------------------------------------------------------
 .../src/Gremlin.Net/Driver/Exceptions/ResponseException.cs     | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25913023/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs
index 4706723..8d26106 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Driver/Exceptions/ResponseException.cs
@@ -30,7 +30,11 @@ namespace Gremlin.Net.Driver.Exceptions
     /// </summary>
     public class ResponseException : Exception
     {
-        internal ResponseException(string message) : base(message)
+        /// <summary>
+        ///     Initializes a new instance of the <see cref="ResponseException" /> class.
+        /// </summary>
+        /// <param name="message">The error message string.</param>
+        public ResponseException(string message) : base(message)
         {
         }
     }


[28/50] tinkerpop git commit: CTR: Fixed strategy lifecycle issues caused by `PathRetractionStrategy`. Fix taken from `tp33/`.

Posted by sp...@apache.org.
CTR: Fixed strategy lifecycle issues caused by `PathRetractionStrategy`. Fix taken from `tp33/`.


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

Branch: refs/heads/TINKERPOP-1656
Commit: 8a76583c9e783e15b4cdf0167e6b32940a525c00
Parents: 373eba1
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Thu Mar 22 08:30:40 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Mar 22 08:30:40 2018 -0700

----------------------------------------------------------------------
 .../strategy/decoration/SubgraphStrategy.java          | 13 +++++++++++++
 .../optimization/IncidentToAdjacentStrategy.java       | 12 +++++++++++-
 2 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8a76583c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
index e0d260f..508e9c6 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
@@ -43,6 +43,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Direction;
@@ -148,6 +149,18 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
             traversal.getStartStep().removeLabel(MARKER);
             return;
         }
+        for (final Step step : traversal.getSteps()) {
+            if (step instanceof TraversalParent) {
+                for (final Traversal.Admin t : ((TraversalParent) step).getLocalChildren()) {
+                    this.apply(t);
+                    t.getStartStep().addLabel(MARKER);
+                }
+                for (final Traversal.Admin t : ((TraversalParent) step).getGlobalChildren()) {
+                    this.apply(t);
+                    t.getStartStep().addLabel(MARKER);
+                }
+            }
+        }
         //
         final List<GraphStep> graphSteps = TraversalHelper.getStepsOfAssignableClass(GraphStep.class, traversal);
         final List<VertexStep> vertexSteps = TraversalHelper.getStepsOfAssignableClass(VertexStep.class, traversal);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8a76583c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
index 1c96cf8..8389112 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.step.LambdaHolder;
+import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.PathFilterStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeOtherVertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeVertexStep;
@@ -132,6 +133,10 @@ public final class IncidentToAdjacentStrategy extends AbstractTraversalStrategy<
         final Collection<Pair<VertexStep, Step>> stepsToReplace = new ArrayList<>();
         Step prev = null;
         for (final Step curr : traversal.getSteps()) {
+            if (curr instanceof TraversalParent) {
+                ((TraversalParent) curr).getLocalChildren().forEach(this::apply);
+                ((TraversalParent) curr).getGlobalChildren().forEach(this::apply);
+            }
             if (isOptimizable(prev, curr)) {
                 stepsToReplace.add(Pair.with((VertexStep) prev, curr));
             }
@@ -148,4 +153,9 @@ public final class IncidentToAdjacentStrategy extends AbstractTraversalStrategy<
     public Set<Class<? extends OptimizationStrategy>> applyPrior() {
         return Collections.singleton(IdentityRemovalStrategy.class);
     }
-}
+
+    @Override
+    public Set<Class<? extends OptimizationStrategy>> applyPost() {
+        return Collections.singleton(PathRetractionStrategy.class);
+    }
+}
\ No newline at end of file


[12/50] tinkerpop git commit: TINKERPOP-1854 Make Lambda implementation internal

Posted by sp...@apache.org.
TINKERPOP-1854 Make Lambda implementation internal


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

Branch: refs/heads/TINKERPOP-1656
Commit: 7fbb779010f028c8f3df6935969d29afefe0fb0f
Parents: 0cdaa3a
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Thu Mar 15 18:26:40 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Thu Mar 15 18:26:40 2018 +0100

----------------------------------------------------------------------
 docs/src/reference/gremlin-variants.asciidoc    |  4 +-
 .../src/Gremlin.Net/Process/Traversal/Lambda.cs | 45 +++++++-------------
 .../Process/Traversal/StringBasedLambda.cs      | 42 ++++++++++++++++++
 .../Structure/IO/GraphSON/GraphSONWriter.cs     |  2 +-
 .../Structure/IO/GraphSON/LambdaSerializer.cs   | 43 -------------------
 .../IO/GraphSON/StringBasedLambdaSerializer.cs  | 43 +++++++++++++++++++
 6 files changed, 104 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7fbb7790/docs/src/reference/gremlin-variants.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-variants.asciidoc b/docs/src/reference/gremlin-variants.asciidoc
index bf8c8b1..c19160a 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -451,8 +451,8 @@ g.V().Out().Map<int>(Lambda.Python("lambda x: len(x.get().value('name'))")).Sum<
 <1> `Lambda.Groovy()` can be used to create a Groovy lambda. 
 <2> `Lambda.Python()` can be used to create a Python lambda.
 
-The `Lambda` class implements interfaces like `IFunction` and `IPredicate` that mirror their Java counterparts which makes it possible
-to use lambdas with Gremlin.Net for the same steps as in Gremlin-Java.
+The `ILambda` interface returned by these two methods inherits interfaces like `IFunction` and `IPredicate` that mirror
+their Java counterparts which makes it possible to use lambdas with Gremlin.Net for the same steps as in Gremlin-Java.
 
 [[gremlin-javascript]]
 == Gremlin-JavaScript

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7fbb7790/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
index 21849ef..12eb016 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
@@ -26,47 +26,34 @@ namespace Gremlin.Net.Process.Traversal
     /// <summary>
     ///     Represents a lambda.
     /// </summary>
-    public class Lambda : IFunction, IBiFunction, IPredicate, IUnaryOperator, IBinaryOperator, IComparator, IConsumer,
-        ISupplier
+    public interface ILambda : IFunction, IBiFunction, IPredicate, IUnaryOperator, IBinaryOperator, IComparator,
+        IConsumer, ISupplier
     {
-        private const int DefaultArgument = -1;
-
-        private Lambda(string expression, string language)
-        {
-            LambdaExpression = expression;
-            Language = language;
-        }
-
-        /// <summary>
-        ///     Gets the lambda expression.
-        /// </summary>
-        public string LambdaExpression { get; }
-
-        /// <summary>
-        ///     Gets the language of this lambda.
-        /// </summary>
-        public string Language { get; }
-
-        internal object Arguments => DefaultArgument;
+    }
 
+    /// <summary>
+    ///     Provides methods to create lambdas.
+    /// </summary>
+    public static class Lambda
+    {
         /// <summary>
-        ///     Creates a new Groovy <see cref="Lambda"/>.
+        ///     Creates a new Groovy lambda.
         /// </summary>
         /// <param name="expression">The lambda expression.</param>
-        /// <returns>The created <see cref="Lambda"/>.</returns>
-        public static Lambda Groovy(string expression)
+        /// <returns>The created lambda.</returns>
+        public static ILambda Groovy(string expression)
         {
-            return new Lambda(expression, "gremlin-groovy");
+            return new StringBasedLambda(expression, "gremlin-groovy");
         }
 
         /// <summary>
-        ///     Creates a new Python <see cref="Lambda"/>.
+        ///     Creates a new Python lambda.
         /// </summary>
         /// <param name="expression">The lambda expression.</param>
-        /// <returns>The created <see cref="Lambda"/>.</returns>
-        public static Lambda Python(string expression)
+        /// <returns>The created lambda.</returns>
+        public static ILambda Python(string expression)
         {
-            return new Lambda(expression, "gremlin-python");
+            return new StringBasedLambda(expression, "gremlin-python");
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7fbb7790/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/StringBasedLambda.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/StringBasedLambda.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/StringBasedLambda.cs
new file mode 100644
index 0000000..e27b474
--- /dev/null
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/StringBasedLambda.cs
@@ -0,0 +1,42 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+namespace Gremlin.Net.Process.Traversal
+{
+    internal class StringBasedLambda : ILambda
+    {
+        private const int DefaultArgument = -1;
+
+        public StringBasedLambda(string expression, string language)
+        {
+            LambdaExpression = expression;
+            Language = language;
+        }
+
+        public string LambdaExpression { get; }
+
+        public string Language { get; }
+
+        public object Arguments => DefaultArgument;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7fbb7790/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
index 826d608..0ef2bde 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
@@ -60,7 +60,7 @@ namespace Gremlin.Net.Structure.IO.GraphSON
                 {typeof(Property), new PropertySerializer()},
                 {typeof(VertexProperty), new VertexPropertySerializer()},
                 {typeof(AbstractTraversalStrategy), new TraversalStrategySerializer()},
-                {typeof(Lambda), new LambdaSerializer()}
+                {typeof(ILambda), new StringBasedLambdaSerializer()}
             };
 
         /// <summary>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7fbb7790/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
deleted file mode 100644
index fa739fd..0000000
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-#region License
-
-/*
- * 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.
- */
-
-#endregion
-
-using System.Collections.Generic;
-using Gremlin.Net.Process.Traversal;
-
-namespace Gremlin.Net.Structure.IO.GraphSON
-{
-    internal class LambdaSerializer : IGraphSONSerializer
-    {
-        public Dictionary<string, dynamic> Dictify(dynamic objectData, GraphSONWriter writer)
-        {
-            Lambda lambda = objectData;
-            var valueDict = new Dictionary<string, dynamic>
-            {
-                {"script", lambda.LambdaExpression},
-                {"language", lambda.Language},
-                {"arguments", lambda.Arguments}
-            };
-            return GraphSONUtil.ToTypedValue(nameof(Lambda), valueDict);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7fbb7790/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/StringBasedLambdaSerializer.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/StringBasedLambdaSerializer.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/StringBasedLambdaSerializer.cs
new file mode 100644
index 0000000..2e66367
--- /dev/null
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/StringBasedLambdaSerializer.cs
@@ -0,0 +1,43 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+using System.Collections.Generic;
+using Gremlin.Net.Process.Traversal;
+
+namespace Gremlin.Net.Structure.IO.GraphSON
+{
+    internal class StringBasedLambdaSerializer : IGraphSONSerializer
+    {
+        public Dictionary<string, dynamic> Dictify(dynamic objectData, GraphSONWriter writer)
+        {
+            StringBasedLambda lambda = objectData;
+            var valueDict = new Dictionary<string, dynamic>
+            {
+                {"script", lambda.LambdaExpression},
+                {"language", lambda.Language},
+                {"arguments", lambda.Arguments}
+            };
+            return GraphSONUtil.ToTypedValue(nameof(Lambda), valueDict);
+        }
+    }
+}
\ No newline at end of file


[22/50] tinkerpop git commit: Merge branch 'TINKERPOP-1758' into tp32

Posted by sp...@apache.org.
Merge branch 'TINKERPOP-1758' into tp32

Conflicts:
	CHANGELOG.asciidoc


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

Branch: refs/heads/TINKERPOP-1656
Commit: 6323f4912433f64c1e890f7e6fd8156dc10b299e
Parents: 10d9095 5288514
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Mar 20 15:25:29 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Mar 20 15:25:29 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../strategy/decoration/RemoteStrategy.java     | 27 +++++++++++++++++++-
 .../process/traversal/TraversalStrategies.java  | 22 ++++++++--------
 3 files changed, 38 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6323f491/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 0ec6f6d,037d94c..22073ad
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -30,10 -27,8 +30,11 @@@ image::https://raw.githubusercontent.co
  * Modified `GremlinDslProcessor` so that it generated the `getAnonymousTraversalClass()` method to return the DSL version of `__`.
  * Added the "Kitchen Sink" test data set.
  * Fixed deserialization of `P.not()` for GraphSON.
 +* Bumped to Jackson 2.9.4.
 +* Improved performance of `JavaTranslator` by caching reflected methods required for traversal construction.
+ * Ensure that `RemoteStrategy` is applied before all other `DecorationStrategy` instances.
  * Added `idleConnectionTimeout` and `keepAliveInterval` to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients.
 +* Fixed a bug where lambdas in `gremlin-python` would trigger a failure if steps using python-only symbols were present (such as `as_()`).
  * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits.
  * Delayed setting of the request identifier until `RequestMessage` construction by the builder.
  * Improved error messaging for failed serialization and deserialization of request/response messages.


[14/50] tinkerpop git commit: TINKERPOP-1854 Add lambda properties to ILambda interface

Posted by sp...@apache.org.
TINKERPOP-1854 Add lambda properties to ILambda interface


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

Branch: refs/heads/TINKERPOP-1656
Commit: 820adc44f3e2c3359f9f345f554d2b936642e7f0
Parents: 7fbb779
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Fri Mar 16 18:52:49 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Fri Mar 16 18:52:49 2018 +0100

----------------------------------------------------------------------
 .../src/Gremlin.Net/Process/Traversal/Lambda.cs | 14 +++++++
 .../Structure/IO/GraphSON/GraphSONWriter.cs     |  2 +-
 .../Structure/IO/GraphSON/LambdaSerializer.cs   | 43 ++++++++++++++++++++
 .../IO/GraphSON/StringBasedLambdaSerializer.cs  | 43 --------------------
 4 files changed, 58 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/820adc44/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
index 12eb016..c1a0e44 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
@@ -29,6 +29,20 @@ namespace Gremlin.Net.Process.Traversal
     public interface ILambda : IFunction, IBiFunction, IPredicate, IUnaryOperator, IBinaryOperator, IComparator,
         IConsumer, ISupplier
     {
+        /// <summary>
+        ///     Gets the lambda expression.
+        /// </summary>
+        string LambdaExpression { get; }
+
+        /// <summary>
+        ///     Gets the language of this lambda.
+        /// </summary>
+        string Language { get; }
+
+        /// <summary>
+        ///     Gets the arguments of this lambda.
+        /// </summary>
+        object Arguments { get;  }
     }
 
     /// <summary>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/820adc44/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
index 0ef2bde..7185868 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
@@ -60,7 +60,7 @@ namespace Gremlin.Net.Structure.IO.GraphSON
                 {typeof(Property), new PropertySerializer()},
                 {typeof(VertexProperty), new VertexPropertySerializer()},
                 {typeof(AbstractTraversalStrategy), new TraversalStrategySerializer()},
-                {typeof(ILambda), new StringBasedLambdaSerializer()}
+                {typeof(ILambda), new LambdaSerializer()}
             };
 
         /// <summary>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/820adc44/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
new file mode 100644
index 0000000..45e4632
--- /dev/null
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
@@ -0,0 +1,43 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+using System.Collections.Generic;
+using Gremlin.Net.Process.Traversal;
+
+namespace Gremlin.Net.Structure.IO.GraphSON
+{
+    internal class LambdaSerializer : IGraphSONSerializer
+    {
+        public Dictionary<string, dynamic> Dictify(dynamic objectData, GraphSONWriter writer)
+        {
+            ILambda lambda = objectData;
+            var valueDict = new Dictionary<string, dynamic>
+            {
+                {"script", lambda.LambdaExpression},
+                {"language", lambda.Language},
+                {"arguments", lambda.Arguments}
+            };
+            return GraphSONUtil.ToTypedValue(nameof(Lambda), valueDict);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/820adc44/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/StringBasedLambdaSerializer.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/StringBasedLambdaSerializer.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/StringBasedLambdaSerializer.cs
deleted file mode 100644
index 2e66367..0000000
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/StringBasedLambdaSerializer.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-#region License
-
-/*
- * 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.
- */
-
-#endregion
-
-using System.Collections.Generic;
-using Gremlin.Net.Process.Traversal;
-
-namespace Gremlin.Net.Structure.IO.GraphSON
-{
-    internal class StringBasedLambdaSerializer : IGraphSONSerializer
-    {
-        public Dictionary<string, dynamic> Dictify(dynamic objectData, GraphSONWriter writer)
-        {
-            StringBasedLambda lambda = objectData;
-            var valueDict = new Dictionary<string, dynamic>
-            {
-                {"script", lambda.LambdaExpression},
-                {"language", lambda.Language},
-                {"arguments", lambda.Arguments}
-            };
-            return GraphSONUtil.ToTypedValue(nameof(Lambda), valueDict);
-        }
-    }
-}
\ No newline at end of file


[24/50] tinkerpop git commit: run Spark integration tests in Travis

Posted by sp...@apache.org.
run Spark integration tests in Travis


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

Branch: refs/heads/TINKERPOP-1656
Commit: bddc7560ffc6f6188a0ea9df77b68838f0295f14
Parents: 827b76e
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Mar 21 11:27:43 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Mar 21 12:58:24 2018 -0700

----------------------------------------------------------------------
 .travis.yml | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bddc7560/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 9c6a739..336c055 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -28,3 +28,4 @@ jobs:
     - script: "mvn clean install -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
     - script: "touch gremlin-dotnet/src/.glv && touch gremlin-dotnet/test/.glv && mvn clean install -q -DskipTests && mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet -DskipIntegrationTests=false"
     - script: "mvn clean install -q -DskipTests && mvn verify -pl :gremlin-javascript -DskipIntegrationTests=false"
+    - script: "mvn clean install -q -DskipTests && mvn verify -pl :spark-gremlin -DskipIntegrationTests=false"


[09/50] tinkerpop git commit: Merge branch 'TINKERPOP-1896' into tp32

Posted by sp...@apache.org.
Merge branch 'TINKERPOP-1896' into tp32


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

Branch: refs/heads/TINKERPOP-1656
Commit: 1ea01ad2e0748d400cc89d92d2dbfe07dd2cb6be
Parents: 5cf1cba 01ef6c1
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Mar 14 07:58:22 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Mar 14 07:58:22 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../jsr223/GremlinJythonScriptEngine.java       |  7 +--
 .../gremlin/python/jsr223/JythonTranslator.java | 28 +++++++++
 .../gremlin/python/jsr223/PythonTranslator.java | 33 ++++++----
 .../python/jsr223/JythonTranslatorTest.java     | 63 ++++++++++++--------
 5 files changed, 88 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1ea01ad2/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 97b90a5,a761003..94ee24f
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -30,8 -29,8 +30,9 @@@ image::https://raw.githubusercontent.co
  * Added the "Kitchen Sink" test data set.
  * Fixed deserialization of `P.not()` for GraphSON.
  * Bumped to Jackson 2.9.4.
 +* Improved performance of `JavaTranslator` by caching reflected methods required for traversal construction.
  * Added `idleConnectionTimeout` and `keepAliveInterval` to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients.
+ * Fixed a bug where lambdas in `gremlin-python` would trigger a failure if steps using python-only symbols were present (such as `as_()`).
  * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits.
  * Delayed setting of the request identifier until `RequestMessage` construction by the builder.
  * Improved error messaging for failed serialization and deserialization of request/response messages.


[04/50] tinkerpop git commit: Minor code refactoring in JavaTranslator CTR

Posted by sp...@apache.org.
Minor code refactoring in JavaTranslator CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: f02f94fd067799e5f532086a762c35abd3a11a93
Parents: b25b976
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Mar 13 08:40:10 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Mar 13 08:40:10 2018 -0400

----------------------------------------------------------------------
 .../apache/tinkerpop/gremlin/jsr223/JavaTranslator.java   | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f02f94fd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index df12055..3e0e6da 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -190,7 +190,7 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
         }
     }
 
-    private Object invokeMethod(final Object delegate, final Class returnType, final String methodName, final Object... arguments) {
+    private Object invokeMethod(final Object delegate, final Class<?> returnType, final String methodName, final Object... arguments) {
         // populate method cache for fast access to methods in subsequent calls
         final Map<String, List<Method>> methodCache = GLOBAL_METHOD_CACHE.getOrDefault(delegate.getClass(), new HashMap<>());
         if (methodCache.isEmpty()) buildMethodCache(delegate, methodCache);
@@ -222,7 +222,7 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
                                     found = false;
                                     break;
                                 }
-                                Object[] varArgs = (Object[]) Array.newInstance(parameterClass, argumentsCopy.length - i);
+                                final Object[] varArgs = (Object[]) Array.newInstance(parameterClass, argumentsCopy.length - i);
                                 int counter = 0;
                                 for (int j = i; j < argumentsCopy.length; j++) {
                                     varArgs[counter++] = argumentsCopy[j];
@@ -263,11 +263,7 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
         if (methodCache.isEmpty()) {
             for (final Method method : delegate.getClass().getMethods()) {
                 if (!(method.getName().equals("addV") && method.getParameterCount() == 1 && method.getParameters()[0].getType().equals(Object[].class))) { // hack cause its hard to tell Object[] vs. String :|
-                    List<Method> list = methodCache.get(method.getName());
-                    if (null == list) {
-                        list = new ArrayList<>();
-                        methodCache.put(method.getName(), list);
-                    }
+                    final List<Method> list = methodCache.computeIfAbsent(method.getName(), k -> new ArrayList<>());
                     list.add(method);
                 }
             }


[21/50] tinkerpop git commit: Shorten logging by maven by hiding "Downloading..." messages

Posted by sp...@apache.org.
Shorten logging by maven by hiding "Downloading..." messages

Had to put maven in non-interactive release mode by adding --batch-mode or the change to the logging wouldn't take. Note that the logger that has been turned off hides those "Downloading..." messages that maven throws out there. CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 10d909534e52c50a14738f0b1791f0458fe1b5d5
Parents: 143a86b
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Mar 20 12:52:35 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Mar 20 14:17:25 2018 -0400

----------------------------------------------------------------------
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/10d90953/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 9069cec..9c6a739 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,6 +25,6 @@ before_install:
 
 jobs:
   include:
-    - script: "mvn clean install -Dci"
+    - script: "mvn clean install -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
     - script: "touch gremlin-dotnet/src/.glv && touch gremlin-dotnet/test/.glv && mvn clean install -q -DskipTests && mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet -DskipIntegrationTests=false"
     - script: "mvn clean install -q -DskipTests && mvn verify -pl :gremlin-javascript -DskipIntegrationTests=false"


[42/50] tinkerpop git commit: Fixed a spelling mistake in collections recipe CTR

Posted by sp...@apache.org.
Fixed a spelling mistake in collections recipe CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 35bf95ad31067a7a7203f21a310dd9d26e371f59
Parents: e1a69fd
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Apr 11 09:13:43 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Apr 11 09:13:43 2018 -0400

----------------------------------------------------------------------
 docs/src/recipes/collections.asciidoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/35bf95ad/docs/src/recipes/collections.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/recipes/collections.asciidoc b/docs/src/recipes/collections.asciidoc
index f44040a..d027376 100644
--- a/docs/src/recipes/collections.asciidoc
+++ b/docs/src/recipes/collections.asciidoc
@@ -324,7 +324,7 @@ g.V().
           by(values))
 ----
 
-The addition steps above `unfold()` the `Map` to key-value entries and filter the values for "n/a" and remove them
+The additional steps above `unfold()` the `Map` to key-value entries and filter the values for "n/a" and remove them
 prior to reconstructing the `Map` with the method shown earlier. To go a step further, apply the pattern presented
 earlier to flatten `List` values within a `Map`:
 


[32/50] tinkerpop git commit: 3.2.8 release preparations.

Posted by sp...@apache.org.
3.2.8 release preparations.


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

Branch: refs/heads/TINKERPOP-1656
Commit: 5a3dd1005c8b80f245db6b0775fb9dbd8b1e6cd0
Parents: 2a9e7e2
Author: Ted Wilmes <tw...@gmail.com>
Authored: Mon Apr 2 08:25:48 2018 -0500
Committer: Ted Wilmes <tw...@gmail.com>
Committed: Mon Apr 2 08:25:48 2018 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              | 51 +++++++++++++++++++-
 .../upgrade/release-3.2.x-incubating.asciidoc   |  2 +-
 giraph-gremlin/pom.xml                          |  2 +-
 gremlin-archetype/gremlin-archetype-dsl/pom.xml |  2 +-
 .../gremlin-archetype-server/pom.xml            |  2 +-
 .../gremlin-archetype-tinkergraph/pom.xml       |  2 +-
 gremlin-archetype/pom.xml                       |  2 +-
 gremlin-benchmark/pom.xml                       |  2 +-
 gremlin-console/bin/gremlin.sh                  |  2 +-
 gremlin-console/pom.xml                         |  2 +-
 gremlin-core/pom.xml                            |  2 +-
 gremlin-dotnet/pom.xml                          |  2 +-
 gremlin-dotnet/src/pom.xml                      |  2 +-
 gremlin-dotnet/test/pom.xml                     |  2 +-
 gremlin-driver/pom.xml                          |  2 +-
 gremlin-groovy-test/pom.xml                     |  2 +-
 gremlin-groovy/pom.xml                          |  2 +-
 gremlin-javascript/pom.xml                      |  2 +-
 gremlin-python/pom.xml                          |  2 +-
 gremlin-server/pom.xml                          |  2 +-
 gremlin-shaded/pom.xml                          |  2 +-
 gremlin-test/pom.xml                            |  2 +-
 hadoop-gremlin/pom.xml                          |  2 +-
 neo4j-gremlin/pom.xml                           |  2 +-
 pom.xml                                         |  2 +-
 spark-gremlin/pom.xml                           |  2 +-
 tinkergraph-gremlin/pom.xml                     |  2 +-
 27 files changed, 76 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 22073ad..2b48a6f 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -21,7 +21,7 @@ limitations under the License.
 image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/images/nine-inch-gremlins.png[width=185]
 
 [[release-3-2-8]]
-=== TinkerPop 3.2.8 (Release Date: NOT OFFICIALLY RELEASED YET)
+=== TinkerPop 3.2.8 (Release Date: April 2, 2018)
 
 * Added a `Lambda` class to Gremlin.Net that makes it possible to use Groovy and Python lambdas with Gremlin.Net.
 * Enums are now represented as classes in Gremlin.Net which allows to use them as arguments in more steps.
@@ -49,6 +49,55 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Fixed a bug in `ComputerAwareStep` that didn't handle `reset()` properly and thus occasionally produced some extra traversers.
 * Removed `TraversalPredicate` class in Gremlin.Net. It is now included in the `P` class instead.
 
+==== Bugs
+
+* TINKERPOP-1053 installed plugins are placed in a directory relative to where gremlin.sh is started
+* TINKERPOP-1509 Failing test case for tree serialization
+* TINKERPOP-1738 Proper functioning of GraphSONReader depends on order of elements in String representation
+* TINKERPOP-1758 RemoteStrategy should be before all other DecorationStrategies.
+* TINKERPOP-1855 Update Rexster links
+* TINKERPOP-1859 Complex instance of P not serializing to bytecode properly
+* TINKERPOP-1860 valueMap(True) result in error in gremlin-python
+* TINKERPOP-1862 TinkerGraph VertexProgram message passing doesn't work properly when using Direction.BOTH
+* TINKERPOP-1867 union() can produce extra traversers
+* TINKERPOP-1872 Apply edgeFunction in SparkMessenger
+* TINKERPOP-1873 min() and max() work only in the range of Integer values
+* TINKERPOP-1874 P does not appear to be serialized consistently in GraphSON
+* TINKERPOP-1879 Gremlin Console does not resepect equal sign for flag argument assignments
+* TINKERPOP-1880 Gremlin.NET Strong name signature could not be verified. (HRESULT: 0x80131045)
+* TINKERPOP-1883 gremlinpython future will never return
+* TINKERPOP-1890 getAnonymousTraversalClass() is not being generated for Java DSLs
+* TINKERPOP-1891 Serialization of P.not() for gremlin-javascript
+* TINKERPOP-1892 GLV test failures for .NET
+* TINKERPOP-1894 GraphSONMessageSerializerV2d0 fails to deserialize valid P.not()
+* TINKERPOP-1896 gremlin-python lambdas error
+* TINKERPOP-1907 Fix failing GLV test for withSack() in .NET
+* TINKERPOP-1917 gx:BigDecimal serialization broken in Gremlin.Net on systems with ',' as decimal separator
+* TINKERPOP-1918 Scenarios fail because of wrong numerical types
+* TINKERPOP-1919 Gherkin runner doesn't work with P.And() and P.Or() in Gremlin.Net
+* TINKERPOP-1920 Tests fail because P.Within() arguments are wrapped in an array in Gremlin.Net
+* TINKERPOP-1922 Gherkin features fail that contain P.not() in Gremlin.Net
+
+==== Improvements
+
+* TINKERPOP-1357 Centrality Recipes should mention pageRank and OLAP.
+* TINKERPOP-1489 Provide a Javascript Gremlin Language Variant
+* TINKERPOP-1586 SubgraphStrategy in OLAP
+* TINKERPOP-1726 Support WebSockets ping/pong keep-alive in Gremlin server
+* TINKERPOP-1842 iterate() missing in terminal steps documentation
+* TINKERPOP-1850 Range step has undocumented special values
+* TINKERPOP-1854 Support lambdas in Gremlin.Net
+* TINKERPOP-1857 GLV test suite consistency and completeness
+* TINKERPOP-1863 Delaying the setting of requestId till the RequestMessage instantiation time
+* TINKERPOP-1868 Support inject source step in Gremlin.Net
+* TINKERPOP-1870 n^2 synchronious operation in OLAP WorkerExecutor.execute() method
+* TINKERPOP-1877 Add new graph data for specialized testing scenarios
+* TINKERPOP-1884 Bump to Netty 4.0.56.Final
+* TINKERPOP-1885 Various Gremlin.Net documentation updates
+* TINKERPOP-1901 Enable usage of enums in more steps in Gremlin.Net
+* TINKERPOP-1908 Bump to Groovy 2.4.14
+* TINKERPOP-1911 Refactor JavaTranslator to cache all reflective calls
+
 [[release-3-2-7]]
 === TinkerPop 3.2.7 (Release Date: December 17, 2017)
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/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 edc7f79..b57a657 100644
--- a/docs/src/upgrade/release-3.2.x-incubating.asciidoc
+++ b/docs/src/upgrade/release-3.2.x-incubating.asciidoc
@@ -23,7 +23,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 
 == TinkerPop 3.2.8
 
-*Release Date: NOT OFFICIALLY RELEASED YET*
+*Release Date: April 2, 2018*
 
 Please see the link:https://github.com/apache/tinkerpop/blob/3.2.8/CHANGELOG.asciidoc#release-3-2-8[changelog] for a complete list of all the modifications that are part of this release.
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/giraph-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/giraph-gremlin/pom.xml b/giraph-gremlin/pom.xml
index b00f81a..39b7f6c 100644
--- a/giraph-gremlin/pom.xml
+++ b/giraph-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>giraph-gremlin</artifactId>
     <name>Apache TinkerPop :: Giraph Gremlin</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-archetype/gremlin-archetype-dsl/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-archetype/gremlin-archetype-dsl/pom.xml b/gremlin-archetype/gremlin-archetype-dsl/pom.xml
index f227d7b..668e530 100644
--- a/gremlin-archetype/gremlin-archetype-dsl/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-dsl/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
 
     <artifactId>gremlin-archetype-dsl</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-archetype/gremlin-archetype-server/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-archetype/gremlin-archetype-server/pom.xml b/gremlin-archetype/gremlin-archetype-server/pom.xml
index 8aa906d..431bbca 100644
--- a/gremlin-archetype/gremlin-archetype-server/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-server/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
 
     <artifactId>gremlin-archetype-server</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml b/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
index 73ee529..b4ed365 100644
--- a/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
+++ b/gremlin-archetype/gremlin-archetype-tinkergraph/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-archetype</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
 
     <artifactId>gremlin-archetype-tinkergraph</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-archetype/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-archetype/pom.xml b/gremlin-archetype/pom.xml
index 0d77b9a..840c8cb 100644
--- a/gremlin-archetype/pom.xml
+++ b/gremlin-archetype/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <artifactId>tinkerpop</artifactId>
         <groupId>org.apache.tinkerpop</groupId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
 
     <artifactId>gremlin-archetype</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-benchmark/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-benchmark/pom.xml b/gremlin-benchmark/pom.xml
index 271da49..0eb80b3 100644
--- a/gremlin-benchmark/pom.xml
+++ b/gremlin-benchmark/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <artifactId>tinkerpop</artifactId>
         <groupId>org.apache.tinkerpop</groupId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
 
     <artifactId>gremlin-benchmark</artifactId>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-console/bin/gremlin.sh
----------------------------------------------------------------------
diff --git a/gremlin-console/bin/gremlin.sh b/gremlin-console/bin/gremlin.sh
index 420404c..46c7403 120000
--- a/gremlin-console/bin/gremlin.sh
+++ b/gremlin-console/bin/gremlin.sh
@@ -1 +1 @@
-../target/apache-tinkerpop-gremlin-console-3.2.8-SNAPSHOT-standalone/bin/gremlin.sh
\ No newline at end of file
+../target/apache-tinkerpop-gremlin-console-3.2.8-standalone/bin/gremlin.sh
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-console/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-console/pom.xml b/gremlin-console/pom.xml
index 7c50ce5..40aac0c 100644
--- a/gremlin-console/pom.xml
+++ b/gremlin-console/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <artifactId>tinkerpop</artifactId>
         <groupId>org.apache.tinkerpop</groupId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-console</artifactId>
     <name>Apache TinkerPop :: Gremlin Console</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-core/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-core/pom.xml b/gremlin-core/pom.xml
index 2aaf0e0..d32e904 100644
--- a/gremlin-core/pom.xml
+++ b/gremlin-core/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-core</artifactId>
     <name>Apache TinkerPop :: Gremlin Core</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-dotnet/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/pom.xml b/gremlin-dotnet/pom.xml
index d2e0893..178b627 100644
--- a/gremlin-dotnet/pom.xml
+++ b/gremlin-dotnet/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-dotnet</artifactId>
     <name>Apache TinkerPop :: Gremlin.Net</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-dotnet/src/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/pom.xml b/gremlin-dotnet/src/pom.xml
index 0798c04..5a19049 100644
--- a/gremlin-dotnet/src/pom.xml
+++ b/gremlin-dotnet/src/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-dotnet</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-dotnet-source</artifactId>
     <name>Apache TinkerPop :: Gremlin.Net - Source</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-dotnet/test/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/pom.xml b/gremlin-dotnet/test/pom.xml
index a4082df..6c9a3d2 100644
--- a/gremlin-dotnet/test/pom.xml
+++ b/gremlin-dotnet/test/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>gremlin-dotnet</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-dotnet-tests</artifactId>
     <name>Apache TinkerPop :: Gremlin.Net - Tests</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-driver/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-driver/pom.xml b/gremlin-driver/pom.xml
index 1791091..7e5d081 100644
--- a/gremlin-driver/pom.xml
+++ b/gremlin-driver/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-driver</artifactId>
     <name>Apache TinkerPop :: Gremlin Driver</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-groovy-test/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/pom.xml b/gremlin-groovy-test/pom.xml
index eb023d9..3808e57 100644
--- a/gremlin-groovy-test/pom.xml
+++ b/gremlin-groovy-test/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-groovy-test</artifactId>
     <name>Apache TinkerPop :: Gremlin Groovy Test</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-groovy/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-groovy/pom.xml b/gremlin-groovy/pom.xml
index 5ef5456..c94b2c1 100644
--- a/gremlin-groovy/pom.xml
+++ b/gremlin-groovy/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-groovy</artifactId>
     <name>Apache TinkerPop :: Gremlin Groovy</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-javascript/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-javascript/pom.xml b/gremlin-javascript/pom.xml
index f9f0c8e..c87e090 100644
--- a/gremlin-javascript/pom.xml
+++ b/gremlin-javascript/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-javascript</artifactId>
     <name>Apache TinkerPop :: Gremlin Javascript</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index 3bbf82c..c6cc02a 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-python</artifactId>
     <name>Apache TinkerPop :: Gremlin Python</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-server/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-server/pom.xml b/gremlin-server/pom.xml
index 5a8d725..4babb6a 100644
--- a/gremlin-server/pom.xml
+++ b/gremlin-server/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-server</artifactId>
     <name>Apache TinkerPop :: Gremlin Server</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-shaded/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-shaded/pom.xml b/gremlin-shaded/pom.xml
index aeda3d4..a27e21c 100644
--- a/gremlin-shaded/pom.xml
+++ b/gremlin-shaded/pom.xml
@@ -20,7 +20,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-shaded</artifactId>
     <name>Apache TinkerPop :: Gremlin Shaded</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/gremlin-test/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-test/pom.xml b/gremlin-test/pom.xml
index 051ff1d..552adc0 100644
--- a/gremlin-test/pom.xml
+++ b/gremlin-test/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>gremlin-test</artifactId>
     <name>Apache TinkerPop :: Gremlin Test</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/hadoop-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/pom.xml b/hadoop-gremlin/pom.xml
index 9df3c9a..0a81e60 100644
--- a/hadoop-gremlin/pom.xml
+++ b/hadoop-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>hadoop-gremlin</artifactId>
     <name>Apache TinkerPop :: Hadoop Gremlin</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/neo4j-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/pom.xml b/neo4j-gremlin/pom.xml
index 5180096..888ab60 100644
--- a/neo4j-gremlin/pom.xml
+++ b/neo4j-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>neo4j-gremlin</artifactId>
     <name>Apache TinkerPop :: Neo4j Gremlin</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index da50996..2c861d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@ limitations under the License.
     </parent>
     <groupId>org.apache.tinkerpop</groupId>
     <artifactId>tinkerpop</artifactId>
-    <version>3.2.8-SNAPSHOT</version>
+    <version>3.2.8</version>
     <packaging>pom</packaging>
     <name>Apache TinkerPop</name>
     <description>A Graph Computing Framework</description>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/spark-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/spark-gremlin/pom.xml b/spark-gremlin/pom.xml
index 1599a39..6d48d15 100644
--- a/spark-gremlin/pom.xml
+++ b/spark-gremlin/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>spark-gremlin</artifactId>
     <name>Apache TinkerPop :: Spark Gremlin</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a3dd100/tinkergraph-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/pom.xml b/tinkergraph-gremlin/pom.xml
index d858ae3..a7bd8b7 100644
--- a/tinkergraph-gremlin/pom.xml
+++ b/tinkergraph-gremlin/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache.tinkerpop</groupId>
         <artifactId>tinkerpop</artifactId>
-        <version>3.2.8-SNAPSHOT</version>
+        <version>3.2.8</version>
     </parent>
     <artifactId>tinkergraph-gremlin</artifactId>
     <name>Apache TinkerPop :: TinkerGraph Gremlin</name>


[23/50] tinkerpop git commit: Minor fix to docs around meta-properties CTR

Posted by sp...@apache.org.
Minor fix to docs around meta-properties CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: 827b76ecfd1786c4ef9edd340d677cef7418f57d
Parents: 6323f49
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Mar 21 09:13:43 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Mar 21 09:13:43 2018 -0400

----------------------------------------------------------------------
 docs/src/reference/the-graph.asciidoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/827b76ec/docs/src/reference/the-graph.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/the-graph.asciidoc b/docs/src/reference/the-graph.asciidoc
index 339b392..1855249 100644
--- a/docs/src/reference/the-graph.asciidoc
+++ b/docs/src/reference/the-graph.asciidoc
@@ -108,7 +108,7 @@ g.V(v).values('name') <8>
 <2> If a property is added with a cardinality of `Cardinality.list`, an additional property with the provided key will be added.
 <3> A vertex property can have standard key/value properties attached to it.
 <4> Vertex property removal is identical to property removal.
-<5> It is property to get the properties of a vertex property.
+<5> Gets the meta-properties of each vertex property.
 <6> A vertex property can have any number of key/value properties attached to it.
 <7> `property(...)` will remove all existing key'd properties before adding the new single property (see `VertexProperty.Cardinality`).
 <8> If only the value of a property is needed, then `values()` can be used.


[29/50] tinkerpop git commit: Updated .NET version in Dockerfile for the tinkerpop:base image

Posted by sp...@apache.org.
Updated .NET version in Dockerfile for the tinkerpop:base image


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

Branch: refs/heads/TINKERPOP-1656
Commit: f972d117ad87cd7d850334b28ed6f8a706235b62
Parents: cbdce11
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Thu Mar 22 20:53:20 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Mar 22 20:53:20 2018 -0700

----------------------------------------------------------------------
 docker/Dockerfile | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f972d117/docker/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 08b7b3c..ef6b06c 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -23,11 +23,12 @@ RUN apt-get update \
     && apt-get -y install software-properties-common python-software-properties apt-transport-https \
     && echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections \
     && add-apt-repository -y ppa:webupd8team/java \
-    && sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' \
+    && sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list' \
     && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 \
     && apt-get update \
-    && apt-get install -y oracle-java8-installer curl gawk git maven openssh-server dotnet-dev-1.0.4 subversion zip \
-    && apt-get install -y python python-dev python-pip build-essential \
+    && apt-get install -y oracle-java8-installer curl gawk git maven openssh-server subversion zip \
+    && sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg' \
+    && apt-get install -y --force-yes dotnet-sdk-2.1.101 python python-dev python-pip build-essential \
     && pip install virtualenv virtualenvwrapper \
     && pip install --upgrade pip \
     && rm -rf /var/lib/apt/lists/* /var/cache/oracle-jdk8-installer


[30/50] tinkerpop git commit: Merge branch 'TINKERPOP-1880' into tp32

Posted by sp...@apache.org.
Merge branch 'TINKERPOP-1880' into tp32


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

Branch: refs/heads/TINKERPOP-1656
Commit: fdac6531f89e59306659ca850112b6a6857bd32a
Parents: 8a76583 f972d11
Author: Jorge Bay Gondra <jo...@gmail.com>
Authored: Fri Mar 23 12:21:00 2018 +0100
Committer: Jorge Bay Gondra <jo...@gmail.com>
Committed: Fri Mar 23 12:21:00 2018 +0100

----------------------------------------------------------------------
 .travis.yml                                                  | 8 +++++---
 docker/Dockerfile                                            | 7 ++++---
 docs/src/dev/developer/development-environment.asciidoc      | 2 +-
 gremlin-dotnet/glv/Gremlin.Net.csproj.template               | 1 -
 gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj            | 1 -
 .../Gremlin.Net.IntegrationTest.csproj                       | 3 +--
 .../test/Gremlin.Net.UnitTest/Gremlin.Net.UnitTest.csproj    | 3 +--
 7 files changed, 12 insertions(+), 13 deletions(-)
----------------------------------------------------------------------



[08/50] tinkerpop git commit: TINKERPOP-1919 Add note about merged P classes to upgrade docs

Posted by sp...@apache.org.
TINKERPOP-1919 Add note about merged P classes to upgrade docs


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

Branch: refs/heads/TINKERPOP-1656
Commit: 5cf1cba59cfb6818b371b1d605dac3b8d190157a
Parents: 359b08c
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Tue Mar 13 23:39:21 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Tue Mar 13 23:39:21 2018 +0100

----------------------------------------------------------------------
 docs/src/upgrade/release-3.2.x-incubating.asciidoc | 12 ++++++++++++
 1 file changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5cf1cba5/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 0cb8ddc..0848843 100644
--- a/docs/src/upgrade/release-3.2.x-incubating.asciidoc
+++ b/docs/src/upgrade/release-3.2.x-incubating.asciidoc
@@ -53,6 +53,18 @@ However, usage of these tokens themselves shouldn't change at all (e.g. `T.Id` i
 
 See: link:https://issues.apache.org/jira/browse/TINKERPOP-1901[TINKERPOP-1901]
 
+==== Gremlin.Net: Traversal Predicate Classes Merged
+
+Gremlin.Net used two classes for traversal predicates: `P` and `TraversalPredicate`. Steps that worked with traversal
+predicates expected objects of type `TraversalPredicate`, but they were constructed from the `P` class
+(e.g. `P.Gt(1)` returned a `TraversalPredicate`). Merging these two classes into the `P` class should avoid unnecessary
+confusion. Most users should not notice this change as predicates can still be constructed exactly as before, e.g.,
+`P.Gt(1).And(P.Lt(3))` still works without any modifications.
+Only users that implemented their own predicates and used `TraversalPredicate` as the base class need to change their
+implementation to now use `P` as the new base class.
+
+See: link:https://issues.apache.org/jira/browse/TINKERPOP-1919[TINKERPOP-1919]
+
 === Upgrading for Providers
 
 ==== Graph System Providers


[05/50] tinkerpop git commit: TINKERPOP-1901 Describe improved Gremlin.Net tokens in upgrade docs

Posted by sp...@apache.org.
TINKERPOP-1901 Describe improved Gremlin.Net tokens in upgrade docs


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

Branch: refs/heads/TINKERPOP-1656
Commit: df989dc40ab7cf834b6ed275c453c4bb220315bf
Parents: 4d5768b
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Tue Mar 13 19:26:00 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Tue Mar 13 19:26:00 2018 +0100

----------------------------------------------------------------------
 docs/src/upgrade/release-3.2.x-incubating.asciidoc | 11 +++++++++++
 1 file changed, 11 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/df989dc4/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 7d2a80c..0cb8ddc 100644
--- a/docs/src/upgrade/release-3.2.x-incubating.asciidoc
+++ b/docs/src/upgrade/release-3.2.x-incubating.asciidoc
@@ -42,6 +42,17 @@ by clients that might mysteriously disappear without properly closing their conn
 
 See: link:https://issues.apache.org/jira/browse/TINKERPOP-1726[TINKERPOP-1726]
 
+==== Gremlin.Net Tokens Improved
+
+The various Gremlin tokens (e.g. `T`, `Order`, `Operator`, etc.) that were implemented as Enums before in Gremlin.Net
+are now implemented as classes. This mainly allows them to implement interfaces which their Java counterparts already
+did. `T` for example now implements the new interface `IFunction` which simply mirrors its Java counterpart `Function`.
+Steps that expect objects for those interfaces as arguments now explicitly use the interface. Before, they used just
+`object` as the type for these arguments which made it hard for users to know what kind of `object` they can use.
+However, usage of these tokens themselves shouldn't change at all (e.g. `T.Id` is still `T.Id`).
+
+See: link:https://issues.apache.org/jira/browse/TINKERPOP-1901[TINKERPOP-1901]
+
 === Upgrading for Providers
 
 ==== Graph System Providers


[48/50] tinkerpop git commit: Added gremlin-javascript logo to docs CTR

Posted by sp...@apache.org.
Added gremlin-javascript logo to docs CTR


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

Branch: refs/heads/TINKERPOP-1656
Commit: b99c56a6e50a86d6c3d2a0d12dbcac946e4ee2af
Parents: 6ac2274
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Apr 19 07:15:33 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 19 07:15:33 2018 -0400

----------------------------------------------------------------------
 docs/src/reference/gremlin-variants.asciidoc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b99c56a6/docs/src/reference/gremlin-variants.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-variants.asciidoc b/docs/src/reference/gremlin-variants.asciidoc
index c19160a..d929b3c 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -457,10 +457,10 @@ their Java counterparts which makes it possible to use lambdas with Gremlin.Net
 [[gremlin-javascript]]
 == Gremlin-JavaScript
 
-
-Apache TinkerPop's Gremlin-JavaScript implements Gremlin within the JavaScript language. It targets Node.js runtime
-and can be used on different operating systems on any Node.js 4 or above. Since the JavaScript naming conventions are
-very similar to that of Java, it should be very easy to switch between Gremlin-Java and Gremlin-JavaScript.
+image:gremlin-js.png[width=130,float=right] Apache TinkerPop's Gremlin-JavaScript implements Gremlin within the
+JavaScript language. It targets Node.js runtime and can be used on different operating systems on any Node.js 4 or
+above. Since the JavaScript naming conventions are very similar to that of Java, it should be very easy to switch
+between Gremlin-Java and Gremlin-JavaScript.
 
 [source,bash]
 npm install gremlin-javascript


[03/50] tinkerpop git commit: TINKERPOP-1892 Fix ignoring of test scenarios in Gremlin.Net CTR

Posted by sp...@apache.org.
TINKERPOP-1892 Fix ignoring of test scenarios in Gremlin.Net CTR

Without this fix, all following scenarios after one ignored scenario
in the same feature weren't parsed at all. This also revealed another
failing scenario that needed to be ignored for now.


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

Branch: refs/heads/TINKERPOP-1656
Commit: b25b9767547b2956f224cbe6fb55c756d5df612e
Parents: d3be13b
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Mon Mar 12 20:08:21 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Mon Mar 12 20:08:21 2018 +0100

----------------------------------------------------------------------
 .../Gherkin/GherkinTestRunner.cs                          |  6 +++++-
 .../Gherkin/IgnoreException.cs                            | 10 +++++-----
 2 files changed, 10 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b25b9767/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
index 9d0f15d..d906357 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -57,6 +57,10 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                 {
                     "g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_inXcreatedX_asXdX_whereXa_ltXbX_orXgtXcXX_andXneqXdXXX_byXageX_byXweightX_byXinXcreatedX_valuesXageX_minX_selectXa_c_dX",
                     IgnoreReason.PNotCreatedCorrectlyByGherkinRunner
+                },
+                {
+                    "g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX",
+                    IgnoreReason.PNotDeserializationProblem
                 }
             };
         
@@ -107,7 +111,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                     if (IgnoredScenarios.TryGetValue(scenario.Name, out var reason))
                     {
                         failedSteps.Add(scenario.Steps.First(), new IgnoreException(reason));
-                        break;
+                        continue;
                     }
                     StepBlock? currentStep = null;
                     StepDefinition stepDefinition = null;

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b25b9767/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
index c8cb29a..dae2ced 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
@@ -47,12 +47,12 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                     reasonSuffix =
                         " because the Gherkin runner can't call methods in TraversalPredicate class (TINKERPOP-1919)";
                     break;
-                case IgnoreReason.NumericalValuesHaveWrongTypes:
-                    reasonSuffix = " because the asserts currently fail due to type mismatches (TINKERPOP-1918)";
-                    break;
                 case IgnoreReason.PWithinWrapsArgumentsInArray:
                     reasonSuffix = " because P.Within() arguments are incorrectly wrapped in an array (TINKERPOP-1920)";
                     break;
+                case IgnoreReason.PNotDeserializationProblem:
+                    reasonSuffix = " because P.Not() cannot be deserialized by Gremlin Server (TINKERPOP-1922)";
+                    break;
             }
             return $"Scenario ignored" + reasonSuffix;
         }
@@ -62,7 +62,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
     {
         LambdaNotSupported,
         PNotCreatedCorrectlyByGherkinRunner,
-        NumericalValuesHaveWrongTypes,
-        PWithinWrapsArgumentsInArray
+        PWithinWrapsArgumentsInArray,
+        PNotDeserializationProblem
     }
 }
\ No newline at end of file


[16/50] tinkerpop git commit: Merge branch 'TINKERPOP-1854' into tp32

Posted by sp...@apache.org.
Merge branch 'TINKERPOP-1854' into tp32


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

Branch: refs/heads/TINKERPOP-1656
Commit: eeea8696e1de69dd6c918feed6ac4fc531ea61dc
Parents: d3d1ccf 4ebc68e
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Sun Mar 18 12:27:55 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Sun Mar 18 12:27:55 2018 +0100

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 docs/src/reference/gremlin-variants.asciidoc    | 29 ++++++--
 .../upgrade/release-3.2.x-incubating.asciidoc   |  7 ++
 gremlin-dotnet/glv/generate.groovy              |  4 +-
 .../Process/Traversal/GraphTraversalSource.cs   | 52 +++++++++++++-
 .../Gremlin.Net/Process/Traversal/ISupplier.cs  | 32 +++++++++
 .../Process/Traversal/IUnaryOperator.cs         | 33 +++++++++
 .../src/Gremlin.Net/Process/Traversal/Lambda.cs | 73 ++++++++++++++++++++
 .../Process/Traversal/StringBasedLambda.cs      | 42 +++++++++++
 .../Structure/IO/GraphSON/GraphSONWriter.cs     |  3 +-
 .../Structure/IO/GraphSON/LambdaSerializer.cs   | 43 ++++++++++++
 .../Gherkin/CommonSteps.cs                      |  2 +-
 .../Gherkin/IgnoreException.cs                  |  4 --
 .../TraversalEvaluation/TraversalParser.cs      |  2 +-
 .../IO/GraphSON/GraphSONWriterTests.cs          | 13 ++++
 15 files changed, 325 insertions(+), 15 deletions(-)
----------------------------------------------------------------------



[11/50] tinkerpop git commit: TINKERPOP-1919 Add Lambda support to Gremlin.Net

Posted by sp...@apache.org.
TINKERPOP-1919 Add Lambda support to Gremlin.Net

This adds a Lambda class that can be used to construct Groovy or Python
lambdas. The Lambda class implements all interfaces that mirror Javas
functional interfaces like Function.


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

Branch: refs/heads/TINKERPOP-1656
Commit: 0cdaa3a2114670a34999aa56e0487a2e7ef998e1
Parents: 0bf9b2f
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Wed Mar 14 18:56:47 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Thu Mar 15 18:16:05 2018 +0100

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 docs/src/reference/gremlin-variants.asciidoc    | 29 ++++++--
 .../upgrade/release-3.2.x-incubating.asciidoc   |  7 ++
 gremlin-dotnet/glv/generate.groovy              |  4 +-
 .../Process/Traversal/GraphTraversalSource.cs   | 52 +++++++++++++-
 .../Gremlin.Net/Process/Traversal/ISupplier.cs  | 32 +++++++++
 .../Process/Traversal/IUnaryOperator.cs         | 33 +++++++++
 .../src/Gremlin.Net/Process/Traversal/Lambda.cs | 72 ++++++++++++++++++++
 .../Structure/IO/GraphSON/GraphSONWriter.cs     |  3 +-
 .../Structure/IO/GraphSON/LambdaSerializer.cs   | 43 ++++++++++++
 .../Gherkin/CommonSteps.cs                      |  2 +-
 .../Gherkin/IgnoreException.cs                  |  4 --
 .../TraversalEvaluation/TraversalParser.cs      |  2 +-
 .../IO/GraphSON/GraphSONWriterTests.cs          | 13 ++++
 14 files changed, 282 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 94ee24f..8fcbe1a 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -23,6 +23,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 [[release-3-2-8]]
 === TinkerPop 3.2.8 (Release Date: NOT OFFICIALLY RELEASED YET)
 
+* Added a `Lambda` class to Gremlin.Net that makes it possible to use Groovy and Python lambdas with Gremlin.Net.
 * Enums are now represented as classes in Gremlin.Net which allows to use them as arguments in more steps.
 * Bumped to Groovy 2.4.14.
 * Added `checkAdjacentVertices` option to `SubgraphStrategy`.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/docs/src/reference/gremlin-variants.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-variants.asciidoc b/docs/src/reference/gremlin-variants.asciidoc
index ace8119..bf8c8b1 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -46,7 +46,7 @@ implementation of Gremlin and serves as the foundation by which all other Gremli
 === The Lambda Solution
 
 Supporting link:https://en.wikipedia.org/wiki/Anonymous_function[anonymous functions] across languages is difficult as
-most language do not support lambda introspection and thus, code analysis. In Gremlin-Java, Java8 lambdas can be leveraged.
+most languages do not support lambda introspection and thus, code analysis. In Gremlin-Java, Java8 lambdas can be leveraged.
 
 [source,java]
 g.V().out("knows").map(t -> t.get().value("name") + " is the friend name") <1>
@@ -281,7 +281,7 @@ re-construction machine-side.
 === The Lambda Solution
 
 Supporting link:https://en.wikipedia.org/wiki/Anonymous_function[anonymous functions] across languages is difficult as
-most language do not support lambda introspection and thus, code analysis. In Gremlin-Python,
+most languages do not support lambda introspection and thus, code analysis. In Gremlin-Python,
 a link:https://docs.python.org/2/reference/expressions.html#lambda[Python lambda] should be represented as a zero-arg callable
 that returns a string representation of a lambda. The default lambda language is `gremlin-python` and can be changed via
 `gremlin_python.statics.default_lambda_language`. When the lambda is represented in `Bytecode` its language is encoded
@@ -343,8 +343,10 @@ var g = graph.Traversal().WithRemote(new DriverRemoteConnection(new GremlinClien
 
 When a traversal from the `GraphTraversalSource` is iterated, the traversal’s `Bytecode` is sent over the wire via the registered
 `IRemoteConnection`. The bytecode is used to construct the equivalent traversal at the remote traversal source.
-Since Gremlin.Net currently doesn't support lambda expressions, all traversals can be translated to Gremlin-Java on the remote
-location (e.g. Gremlin Server).
+Moreover, typically the bytecode is analyzed to determine which language the bytecode should be translated to. If the traversal
+does not contain lambdas, the remote location (e.g. Gremlin Server) will typically
+use Gremlin-Java. If it has lambdas written in Groovy, it will use Gremlin-Groovy (e.g. `GremlinGroovyScriptEngine`).
+Likewise, if it has lambdas represented in Python, it will use Gremlin-Python (e.g. `GremlinJythonScriptEngine`).
 
 IMPORTANT: Gremlin.Net’s `ITraversal` interface supports the standard Gremlin methods such as `Next()`, `NextTraverser()`, `ToSet()`,
 `ToList()`, etc. Such "terminal" methods trigger the evaluation of the traversal.
@@ -433,6 +435,25 @@ NOTE: Many of the TraversalStrategy classes in Gremlin.Net are proxies to the re
 JVM-based Gremlin traversal machine. As such, their `Apply(ITraversal)` method does nothing. However, the strategy is
 encoded in the Gremlin.Net bytecode and transmitted to the Gremlin traversal machine for re-construction machine-side.
 
+=== The Lambda Solution
+
+Supporting link:https://en.wikipedia.org/wiki/Anonymous_function[anonymous functions] across languages is difficult as
+most languages do not support lambda introspection and thus, code analysis. While Gremlin.Net doesn't support C# lambdas, it
+is still able to represent lambdas in other languages. When the lambda is represented in `Bytecode` its language is encoded
+such that the remote connection host can infer which translator and ultimate execution engine to use.
+
+[source,csharp]
+----
+g.V().Out().Map<int>(Lambda.Groovy("it.get().value('name').length()")).Sum<int>().ToList();      <1>
+g.V().Out().Map<int>(Lambda.Python("lambda x: len(x.get().value('name'))")).Sum<int>().ToList(); <2>
+----
+
+<1> `Lambda.Groovy()` can be used to create a Groovy lambda. 
+<2> `Lambda.Python()` can be used to create a Python lambda.
+
+The `Lambda` class implements interfaces like `IFunction` and `IPredicate` that mirror their Java counterparts which makes it possible
+to use lambdas with Gremlin.Net for the same steps as in Gremlin-Java.
+
 [[gremlin-javascript]]
 == Gremlin-JavaScript
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/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 0848843..edc7f79 100644
--- a/docs/src/upgrade/release-3.2.x-incubating.asciidoc
+++ b/docs/src/upgrade/release-3.2.x-incubating.asciidoc
@@ -42,6 +42,13 @@ by clients that might mysteriously disappear without properly closing their conn
 
 See: link:https://issues.apache.org/jira/browse/TINKERPOP-1726[TINKERPOP-1726]
 
+==== Gremlin.Net Lambdas
+
+Gremlin.Net now has a `Lambda` class that can be used to construct Groovy or Java lambdas which will be evaluated on the
+server.
+
+See: link:https://issues.apache.org/jira/browse/TINKERPOP-1854[TINKERPOP-1854], link:http://tinkerpop.apache.org/docs/3.2.8/reference/#_the_lambda_solution_3[Reference Documentation - Gremlin.Net - The Lambda Solution].
+
 ==== Gremlin.Net Tokens Improved
 
 The various Gremlin tokens (e.g. `T`, `Order`, `Operator`, etc.) that were implemented as Enums before in Gremlin.Net

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/glv/generate.groovy
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/glv/generate.groovy b/gremlin-dotnet/glv/generate.groovy
index 5057ff8..10b1008 100644
--- a/gremlin-dotnet/glv/generate.groovy
+++ b/gremlin-dotnet/glv/generate.groovy
@@ -54,10 +54,10 @@ def toCSharpTypeMap = ["Long": "long",
                        "TraversalStrategy[]": "ITraversalStrategy[]",
                        "Function": "IFunction",
                        "BiFunction": "IBiFunction",
-                       "UnaryOperator": "object",
+                       "UnaryOperator": "IUnaryOperator",
                        "BinaryOperator": "IBinaryOperator",
                        "Consumer": "IConsumer",
-                       "Supplier": "object",
+                       "Supplier": "ISupplier",
                        "Comparator": "IComparator",
                        "VertexProgram": "object"]
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs
index 9c32559..7115016 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs
@@ -104,7 +104,7 @@ namespace Gremlin.Net.Process.Traversal
             return source;
         }
 
-        public GraphTraversalSource WithSack(object initialValue, object splitOperator)
+        public GraphTraversalSource WithSack(object initialValue, IUnaryOperator splitOperator)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
@@ -112,7 +112,39 @@ namespace Gremlin.Net.Process.Traversal
             return source;
         }
 
-        public GraphTraversalSource WithSack(object initialValue, object splitOperator, IBinaryOperator mergeOperator)
+        public GraphTraversalSource WithSack(object initialValue, IUnaryOperator splitOperator, IBinaryOperator mergeOperator)
+        {
+            var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
+                                                  new Bytecode(Bytecode));
+            source.Bytecode.AddSource("withSack", initialValue, splitOperator, mergeOperator);
+            return source;
+        }
+
+        public GraphTraversalSource WithSack(ISupplier initialValue)
+        {
+            var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
+                                                  new Bytecode(Bytecode));
+            source.Bytecode.AddSource("withSack", initialValue);
+            return source;
+        }
+
+        public GraphTraversalSource WithSack(ISupplier initialValue, IBinaryOperator mergeOperator)
+        {
+            var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
+                                                  new Bytecode(Bytecode));
+            source.Bytecode.AddSource("withSack", initialValue, mergeOperator);
+            return source;
+        }
+
+        public GraphTraversalSource WithSack(ISupplier initialValue, IUnaryOperator splitOperator)
+        {
+            var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
+                                                  new Bytecode(Bytecode));
+            source.Bytecode.AddSource("withSack", initialValue, splitOperator);
+            return source;
+        }
+
+        public GraphTraversalSource WithSack(ISupplier initialValue, IUnaryOperator splitOperator, IBinaryOperator mergeOperator)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
                                                   new Bytecode(Bytecode));
@@ -136,6 +168,22 @@ namespace Gremlin.Net.Process.Traversal
             return source;
         }
 
+        public GraphTraversalSource WithSideEffect(string key, ISupplier initialValue)
+        {
+            var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
+                                                  new Bytecode(Bytecode));
+            source.Bytecode.AddSource("withSideEffect", key, initialValue);
+            return source;
+        }
+
+        public GraphTraversalSource WithSideEffect(string key, ISupplier initialValue, IBinaryOperator reducer)
+        {
+            var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),
+                                                  new Bytecode(Bytecode));
+            source.Bytecode.AddSource("withSideEffect", key, initialValue, reducer);
+            return source;
+        }
+
         public GraphTraversalSource WithStrategies(params ITraversalStrategy[] traversalStrategies)
         {
             var source = new GraphTraversalSource(new List<ITraversalStrategy>(TraversalStrategies),

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/ISupplier.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/ISupplier.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/ISupplier.cs
new file mode 100644
index 0000000..b1dda13
--- /dev/null
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/ISupplier.cs
@@ -0,0 +1,32 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+namespace Gremlin.Net.Process.Traversal
+{
+    /// <summary>
+    ///     Represents a supplier of results
+    /// </summary>
+    public interface ISupplier
+    {
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/IUnaryOperator.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/IUnaryOperator.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/IUnaryOperator.cs
new file mode 100644
index 0000000..b57be02
--- /dev/null
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/IUnaryOperator.cs
@@ -0,0 +1,33 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+namespace Gremlin.Net.Process.Traversal
+{
+    /// <summary>
+    ///     Represents an operation on a single operand that produces a result of the same type as its operand. This is a
+    ///     specialization of Function for the case where the operand and result are of the same type.
+    /// </summary>
+    public interface IUnaryOperator : IFunction
+    {
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
new file mode 100644
index 0000000..21849ef
--- /dev/null
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/Lambda.cs
@@ -0,0 +1,72 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+namespace Gremlin.Net.Process.Traversal
+{
+    /// <summary>
+    ///     Represents a lambda.
+    /// </summary>
+    public class Lambda : IFunction, IBiFunction, IPredicate, IUnaryOperator, IBinaryOperator, IComparator, IConsumer,
+        ISupplier
+    {
+        private const int DefaultArgument = -1;
+
+        private Lambda(string expression, string language)
+        {
+            LambdaExpression = expression;
+            Language = language;
+        }
+
+        /// <summary>
+        ///     Gets the lambda expression.
+        /// </summary>
+        public string LambdaExpression { get; }
+
+        /// <summary>
+        ///     Gets the language of this lambda.
+        /// </summary>
+        public string Language { get; }
+
+        internal object Arguments => DefaultArgument;
+
+        /// <summary>
+        ///     Creates a new Groovy <see cref="Lambda"/>.
+        /// </summary>
+        /// <param name="expression">The lambda expression.</param>
+        /// <returns>The created <see cref="Lambda"/>.</returns>
+        public static Lambda Groovy(string expression)
+        {
+            return new Lambda(expression, "gremlin-groovy");
+        }
+
+        /// <summary>
+        ///     Creates a new Python <see cref="Lambda"/>.
+        /// </summary>
+        /// <param name="expression">The lambda expression.</param>
+        /// <returns>The created <see cref="Lambda"/>.</returns>
+        public static Lambda Python(string expression)
+        {
+            return new Lambda(expression, "gremlin-python");
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
index f23d80d..826d608 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
@@ -59,7 +59,8 @@ namespace Gremlin.Net.Structure.IO.GraphSON
                 {typeof(Edge), new EdgeSerializer()},
                 {typeof(Property), new PropertySerializer()},
                 {typeof(VertexProperty), new VertexPropertySerializer()},
-                {typeof(AbstractTraversalStrategy), new TraversalStrategySerializer()}
+                {typeof(AbstractTraversalStrategy), new TraversalStrategySerializer()},
+                {typeof(Lambda), new LambdaSerializer()}
             };
 
         /// <summary>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
new file mode 100644
index 0000000..fa739fd
--- /dev/null
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/LambdaSerializer.cs
@@ -0,0 +1,43 @@
+#region License
+
+/*
+ * 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.
+ */
+
+#endregion
+
+using System.Collections.Generic;
+using Gremlin.Net.Process.Traversal;
+
+namespace Gremlin.Net.Structure.IO.GraphSON
+{
+    internal class LambdaSerializer : IGraphSONSerializer
+    {
+        public Dictionary<string, dynamic> Dictify(dynamic objectData, GraphSONWriter writer)
+        {
+            Lambda lambda = objectData;
+            var valueDict = new Dictionary<string, dynamic>
+            {
+                {"script", lambda.LambdaExpression},
+                {"language", lambda.Language},
+                {"arguments", lambda.Arguments}
+            };
+            return GraphSONUtil.ToTypedValue(nameof(Lambda), valueDict);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
index 0abc247..dd96474 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
@@ -233,7 +233,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
 
         private static object ToLambda(string stringLambda, string graphName)
         {
-            throw new IgnoreException(IgnoreReason.LambdaNotSupported);
+            return Lambda.Groovy(stringLambda);
         }
 
         private static object ToNumber(string stringNumber, string graphName)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
index fd226bf..9aa5213 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
@@ -40,9 +40,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             string reasonSuffix = null;
             switch (reason)
             {
-                case IgnoreReason.LambdaNotSupported:
-                    reasonSuffix = " because lambdas are not supported in Gremlin.NET (TINKERPOP-1854)";
-                    break;
                 case IgnoreReason.PWithinWrapsArgumentsInArray:
                     reasonSuffix = " because P.Within() arguments are incorrectly wrapped in an array (TINKERPOP-1920)";
                     break;
@@ -56,7 +53,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
     
     public enum IgnoreReason
     {
-        LambdaNotSupported,
         PWithinWrapsArgumentsInArray,
         PNotDeserializationProblem
     }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
index 11145da..7e1486c 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/TraversalParser.cs
@@ -398,7 +398,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
             {
                 return ParseNumber(text, ref i);
             }
-            if (text.Substring(i, 3).StartsWith("__."))
+            if (text.Length >= i + 3 && text.Substring(i, 3).StartsWith("__."))
             {
                 var startIndex = i;
                 var tokens = ParseTokens(text, ref i);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0cdaa3a2/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
index 3e2d307..54dc8f3 100644
--- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
@@ -333,6 +333,19 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON
             const string expected = "{\"@type\":\"g:SubgraphStrategy\",\"@value\":{}}";
             Assert.Equal(expected, graphSon);
         }
+
+        [Fact]
+        public void ShouldSerializeLambda()
+        {
+            var writer = CreateStandardGraphSONWriter();
+            var lambda = Lambda.Groovy("{ it.get() }");
+
+            var graphSon = writer.WriteObject(lambda);
+
+            const string expected =
+                "{\"@type\":\"g:Lambda\",\"@value\":{\"script\":\"{ it.get() }\",\"language\":\"gremlin-groovy\",\"arguments\":-1}}";
+            Assert.Equal(expected, graphSon);
+        }
     }
 
     internal class TestGraphSONSerializer : IGraphSONSerializer