You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by fl...@apache.org on 2018/03/05 18:54:19 UTC

[01/39] tinkerpop git commit: TINKERPOP-1586 Added checkAdjacentVertices option to SubgraphStrategy [Forced Update!]

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1897 fd4829070 -> a7cb12b6e (forced update)


TINKERPOP-1586 Added checkAdjacentVertices option to SubgraphStrategy

This change allows the user to turn off an aspect of SubgraphStrategy that prevents it from working properly in OLAP situations.


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

Branch: refs/heads/TINKERPOP-1897
Commit: d1121544017acf1189f0270f60b5f1f402fec0ea
Parents: bcffaad
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Feb 15 16:22:58 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Feb 15 16:24:54 2018 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../strategy/decoration/SubgraphStrategy.java   | 58 ++++++++++----
 .../decoration/SubgraphStrategyProcessTest.java | 84 ++++++++++++++++++++
 3 files changed, 127 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d1121544/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index f1519b6..1701342 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 `checkAdjacentVertices` option to `SubgraphStrategy`.
 * Modified `GremlinDslProcessor` so that it generated the `getAnonymousTraversalClass()` method to return the DSL version of `__`.
 * Added the "Kitchen Sink" test data set.
 * Fixed a bug in `NumberHelper` that led to wrong min/max results if numbers exceeded the Integer limits.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d1121544/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 4747cd4..e0d260f 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
@@ -82,13 +82,14 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
 
     private final String MARKER = Graph.Hidden.hide("gremlin.subgraphStrategy");
 
-    private SubgraphStrategy(final Traversal<Vertex, ?> vertexCriterion, final Traversal<Edge, ?> edgeCriterion, final Traversal<VertexProperty, ?> vertexPropertyCriterion) {
+    private SubgraphStrategy(final Builder builder) {
 
-        this.vertexCriterion = null == vertexCriterion ? null : vertexCriterion.asAdmin().clone();
+        this.vertexCriterion = null == builder.vertexCriterion ? null : builder.vertexCriterion.asAdmin().clone();
 
-        // if there is no vertex predicate there is no need to test either side of the edge
-        if (null == this.vertexCriterion) {
-            this.edgeCriterion = null == edgeCriterion ? null : edgeCriterion.asAdmin().clone();
+        // if there is no vertex predicate there is no need to test either side of the edge - also this option can
+        // be simply configured in the builder to not be used
+        if (null == this.vertexCriterion || !builder.checkAdjacentVertices) {
+            this.edgeCriterion = null == builder.edgeCriterion ? null : builder.edgeCriterion.asAdmin().clone();
         } else {
             final Traversal.Admin<Edge, ?> vertexPredicate;
             vertexPredicate = __.<Edge>and(
@@ -97,12 +98,12 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
 
             // if there is a vertex predicate then there is an implied edge filter on vertices even if there is no
             // edge predicate provided by the user.
-            this.edgeCriterion = null == edgeCriterion ?
+            this.edgeCriterion = null == builder.edgeCriterion ?
                     vertexPredicate :
-                    edgeCriterion.asAdmin().clone().addStep(new TraversalFilterStep<>(edgeCriterion.asAdmin(), vertexPredicate));
+                    builder.edgeCriterion.asAdmin().clone().addStep(new TraversalFilterStep<>(builder.edgeCriterion.asAdmin(), vertexPredicate));
         }
 
-        this.vertexPropertyCriterion = null == vertexPropertyCriterion ? null : vertexPropertyCriterion.asAdmin().clone();
+        this.vertexPropertyCriterion = null == builder.vertexPropertyCriterion ? null : builder.vertexPropertyCriterion.asAdmin().clone();
 
         if (null != this.vertexCriterion)
             TraversalHelper.applyTraversalRecursively(t -> t.getStartStep().addLabel(MARKER), this.vertexCriterion);
@@ -316,25 +317,50 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
 
     public final static class Builder {
 
-        private Traversal<Vertex, ?> vertexPredicate = null;
-        private Traversal<Edge, ?> edgePredicate = null;
-        private Traversal<VertexProperty, ?> vertexPropertyPredicate = null;
+        private Traversal<Vertex, ?> vertexCriterion = null;
+        private Traversal<Edge, ?> edgeCriterion = null;
+        private Traversal<VertexProperty, ?> vertexPropertyCriterion = null;
+        private boolean checkAdjacentVertices = true;
 
         private Builder() {
         }
 
+        /**
+         * Enables the strategy to apply the {@link #vertices(Traversal)} filter to the adjacent vertices of an edge.
+         * If using this strategy for OLAP then this value should be set to {@code false} as checking adjacent vertices
+         * will force the traversal to leave the local star graph (which is not possible in OLAP) and will cause an
+         * error. By default, this value is {@code true}.
+         */
+        public Builder checkAdjacentVertices(final boolean enable) {
+            this.checkAdjacentVertices = enable;
+            return this;
+        }
+
+        /**
+         * The traversal predicate that defines the vertices to include in the subgraph. If
+         * {@link #checkAdjacentVertices(boolean)} is {@code true} then this predicate will also be applied to the
+         * adjacent vertices of edges. Take care when setting this value for OLAP based traversals as the traversal
+         * predicate cannot be written in such a way as to leave the local star graph and can thus only evaluate the
+         * current vertex and its related edges.
+         */
         public Builder vertices(final Traversal<Vertex, ?> vertexPredicate) {
-            this.vertexPredicate = vertexPredicate;
+            this.vertexCriterion = vertexPredicate;
             return this;
         }
 
+        /**
+         * The traversal predicate that defines the edges to include in the subgraph.
+         */
         public Builder edges(final Traversal<Edge, ?> edgePredicate) {
-            this.edgePredicate = edgePredicate;
+            this.edgeCriterion = edgePredicate;
             return this;
         }
 
+        /**
+         * The traversal predicate that defines the vertex properties to include in the subgraph.
+         */
         public Builder vertexProperties(final Traversal<VertexProperty, ?> vertexPropertyPredicate) {
-            this.vertexPropertyPredicate = vertexPropertyPredicate;
+            this.vertexPropertyCriterion = vertexPropertyPredicate;
             return this;
         }
 
@@ -355,9 +381,9 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
         }
 
         public SubgraphStrategy create() {
-            if (null == this.vertexPredicate && null == this.edgePredicate && null == this.vertexPropertyPredicate)
+            if (null == this.vertexCriterion && null == this.edgeCriterion && null == this.vertexPropertyCriterion)
                 throw new IllegalStateException("A subgraph must be filtered by a vertex, edge, or vertex property criterion");
-            return new SubgraphStrategy(this.vertexPredicate, this.edgePredicate, this.vertexPropertyPredicate);
+            return new SubgraphStrategy(this);
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d1121544/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyProcessTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyProcessTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyProcessTest.java
index ad2501d..2565770 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyProcessTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyProcessTest.java
@@ -252,6 +252,90 @@ public class SubgraphStrategyProcessTest extends AbstractGremlinProcessTest {
 
     @Test
     @LoadGraphWith(MODERN)
+    public void shouldFilterMixedCriteriaButNotCheckAdjacentVertices() {
+        final Traversal<Vertex, ?> vertexCriterion = has("name", P.within("josh", "lop", "ripple"));
+
+        // 9 isn't present because marko is not in the vertex list
+        final Traversal<Edge, ?> edgeCriterion = __.or(
+                has("weight", 0.4d).hasLabel("created"), // 11
+                has("weight", 1.0d).hasLabel("created") // 10
+        );
+
+        final SubgraphStrategy strategy = SubgraphStrategy.build().
+                checkAdjacentVertices(false).
+                edges(edgeCriterion).vertices(vertexCriterion).create();
+        final GraphTraversalSource sg = g.withStrategies(strategy);
+
+        // three vertices are included in the subgraph
+        assertEquals(6, g.V().count().next().longValue());
+        assertEquals(3, sg.V().count().next().longValue());
+
+        // three edges are explicitly included as we ignore checking of adjacent vertices
+        assertEquals(6, g.E().count().next().longValue());
+        assertEquals(3, sg.E().count().next().longValue());
+
+        // from vertex
+
+        assertEquals(2, g.V(convertToVertexId("josh")).outE().count().next().longValue());
+        assertEquals(2, sg.V(convertToVertexId("josh")).outE().count().next().longValue());
+        assertEquals(2, g.V(convertToVertexId("josh")).out().count().next().longValue());
+        assertEquals(2, sg.V(convertToVertexId("josh")).out().count().next().longValue());
+
+        assertEquals(1, g.V(convertToVertexId("josh")).inE().count().next().longValue());
+        assertEquals(0, sg.V(convertToVertexId("josh")).inE().count().next().longValue());
+        assertEquals(1, g.V(convertToVertexId("josh")).in().count().next().longValue());
+        assertEquals(0, sg.V(convertToVertexId("josh")).in().count().next().longValue());
+
+        assertEquals(3, g.V(convertToVertexId("josh")).bothE().count().next().longValue());
+        assertEquals(2, sg.V(convertToVertexId("josh")).bothE().count().next().longValue());
+        assertEquals(3, g.V(convertToVertexId("josh")).both().count().next().longValue());
+        assertEquals(2, sg.V(convertToVertexId("josh")).both().count().next().longValue());
+
+        // marko not present directly because of vertexCriterion - only accessible via vertices in the subgraph
+        assertEquals(1, g.V(convertToVertexId("marko")).count().next().longValue());
+        assertEquals(0, sg.V(convertToVertexId("marko")).count().next().longValue());
+
+        // with label
+
+        assertEquals(2, g.V(convertToVertexId("josh")).outE("created").count().next().longValue());
+        assertEquals(2, sg.V(convertToVertexId("josh")).outE("created").count().next().longValue());
+        assertEquals(2, g.V(convertToVertexId("josh")).out("created").count().next().longValue());
+        assertEquals(2, sg.V(convertToVertexId("josh")).out("created").count().next().longValue());
+        assertEquals(2, g.V(convertToVertexId("josh")).bothE("created").count().next().longValue());
+        assertEquals(2, sg.V(convertToVertexId("josh")).bothE("created").count().next().longValue());
+        assertEquals(2, g.V(convertToVertexId("josh")).both("created").count().next().longValue());
+        assertEquals(2, sg.V(convertToVertexId("josh")).both("created").count().next().longValue());
+
+        assertEquals(1, g.V(convertToVertexId("josh")).inE("knows").count().next().longValue());
+        assertEquals(0, sg.V(convertToVertexId("josh")).inE("knows").count().next().longValue());
+        assertEquals(1, g.V(convertToVertexId("josh")).in("knows").count().next().longValue());
+        assertEquals(0, sg.V(convertToVertexId("josh")).in("knows").count().next().longValue());
+        assertEquals(1, g.V(convertToVertexId("josh")).bothE("knows").count().next().longValue());
+        assertEquals(0, sg.V(convertToVertexId("josh")).bothE("knows").count().next().longValue());
+        assertEquals(1, g.V(convertToVertexId("josh")).both("knows").count().next().longValue());
+        assertEquals(0, sg.V(convertToVertexId("josh")).both("knows").count().next().longValue());
+
+        // with branch factor
+
+        assertEquals(1, g.V(convertToVertexId("josh")).local(bothE().limit(1)).count().next().longValue());
+        assertEquals(1, sg.V(convertToVertexId("josh")).local(bothE().limit(1)).count().next().longValue());
+        assertEquals(1, g.V(convertToVertexId("josh")).local(bothE().limit(1)).inV().count().next().longValue());
+        assertEquals(1, sg.V(convertToVertexId("josh")).local(bothE().limit(1)).inV().count().next().longValue());
+        assertEquals(1, g.V(convertToVertexId("josh")).local(bothE("knows", "created").limit(1)).count().next().longValue());
+        assertEquals(1, sg.V(convertToVertexId("josh")).local(bothE("knows", "created").limit(1)).count().next().longValue());
+        assertEquals(1, g.V(convertToVertexId("josh")).local(bothE("knows", "created").limit(1)).inV().count().next().longValue());
+        assertEquals(1, sg.V(convertToVertexId("josh")).local(bothE("knows", "created").limit(1)).inV().count().next().longValue());
+
+        // from edge
+
+        // marko is not accessible from the edge
+        assertEquals(2, g.E(convertToEdgeId("marko", "created", "lop")).bothV().count().next().longValue());
+        assertEquals(1, sg.E(convertToEdgeId("marko", "created", "lop")).bothV().count().next().longValue());
+    }
+
+
+    @Test
+    @LoadGraphWith(MODERN)
     public void shouldFilterMixedCriteria() throws Exception {
         final Traversal<Vertex, ?> vertexCriterion = has("name", P.within("josh", "lop", "ripple"));
 


[14/39] tinkerpop git commit: Using "name" instead of "propertyin"

Posted by fl...@apache.org.
Using "name" instead of "propertyin"


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

Branch: refs/heads/TINKERPOP-1897
Commit: 027ae2771d3c67bb613c525a689fe10123686b45
Parents: 0490a08
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Wed Feb 28 11:38:33 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Wed Feb 28 11:38:33 2018 -0500

----------------------------------------------------------------------
 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 300 -> 288 bytes
 .../process/computer/GraphComputerTest.java        |   2 +-
 .../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 300 -> 288 bytes
 .../tinkergraph/structure/TinkerFactory.java       |   6 +++---
 12 files changed, 20 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/027ae277/data/tinkerpop-sink-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-typed.json b/data/tinkerpop-sink-typed.json
index aae410e..bc56489 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","propertyin":["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","propertyin":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
+{"@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":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/027ae277/data/tinkerpop-sink-v2d0-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0-typed.json b/data/tinkerpop-sink-v2d0-typed.json
index e90b677..c0844a3 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":{"propertyin":[{"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":{"propertyin":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
+{"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":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/027ae277/data/tinkerpop-sink-v2d0.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0.json b/data/tinkerpop-sink-v2d0.json
index e6c284e..44fbda9 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":{"propertyin":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"propertyin":[{"id":3,"value":"b"}]}}
+{"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":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/027ae277/data/tinkerpop-sink.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.json b/data/tinkerpop-sink.json
index e6c284e..44fbda9 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":{"propertyin":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"propertyin":[{"id":3,"value":"b"}]}}
+{"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":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/027ae277/data/tinkerpop-sink.kryo
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.kryo b/data/tinkerpop-sink.kryo
index 25419fa..24a3468 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/027ae277/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 4cbe584..9157571 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
@@ -2753,7 +2753,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
     private static class VertexProgramR implements VertexProgram<String> {
         private static final String SIMPLE_VERTEX_PROGRAM_CFG_PREFIX = "gremlin.simpleVertexProgram";
         private static final String PROPERTY_OUT = "propertyout";
-        private static final String PROPERTY_IN = "propertyin";
+        private static final String PROPERTY_IN = "name";
         private static final String VERTEX_LABEL = "message_passing_test";
         private static final String DIRECTION_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".direction";
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/027ae277/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 aae410e..bc56489 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","propertyin":["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","propertyin":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
+{"@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":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/027ae277/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 e90b677..c0844a3 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":{"propertyin":[{"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":{"propertyin":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
+{"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":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/027ae277/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 e6c284e..44fbda9 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":{"propertyin":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"propertyin":[{"id":3,"value":"b"}]}}
+{"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":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/027ae277/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 e6c284e..44fbda9 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":{"propertyin":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"propertyin":[{"id":3,"value":"b"}]}}
+{"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":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/027ae277/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 25419fa..24a3468 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/027ae277/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 4e2989d..1b908ab 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
@@ -151,9 +151,9 @@ public final class TinkerFactory {
           iterate();
         final String LABEL = "message_passing_test";
         final String EDGE_LABEL = "msg_pass_test_edge";
-        final String PROPERTY_IN = "propertyin";
-        Vertex a = graph.addVertex(T.id, 2000, T.label, LABEL, PROPERTY_IN, "a");
-        Vertex b = graph.addVertex(T.id, 2001, T.label, LABEL, PROPERTY_IN, "b");
+        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);
     }


[22/39] tinkerpop git commit: Fixed some types in GLV tests that were failing for .NET CTR

Posted by fl...@apache.org.
Fixed some types in GLV tests that were failing for .NET CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: bbc96eeaf41e97ec0fecc1e7a36da824e9654015
Parents: 2ddf2e3
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 10:07:33 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 10:07:33 2018 -0500

----------------------------------------------------------------------
 .../Gherkin/GherkinTestRunner.cs                    |  4 +---
 gremlin-test/features/map/Order.feature             | 16 ++++++++--------
 2 files changed, 9 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bbc96eea/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 a8c25ec..3b39cd3 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -43,9 +43,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_outE_weight_groupCount_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_decrX", IgnoreReason.NeedsFurtherInvestigation }
+            { "g_V_outE_weight_groupCount_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation }
         };
         
         private static class Keywords

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bbc96eea/gremlin-test/features/map/Order.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Order.feature b/gremlin-test/features/map/Order.feature
index e7ff00c..6dd8ac4 100644
--- a/gremlin-test/features/map/Order.feature
+++ b/gremlin-test/features/map/Order.feature
@@ -192,7 +192,7 @@ Feature: Step - order()
     When iterated to list
     Then the result should be ordered
       | result |
-      | m[{"vadas":"d[0].d","peter":"d[0.2].d","josh":"d[1.4].d","marko":"d[1.9].d"}] |
+      | m[{"vadas":"d[0].i","peter":"d[0.2].d","josh":"d[1.4].d","marko":"d[1.9].d"}] |
 
   Scenario: g_V_localXbothE_weight_foldX_order_byXsumXlocalX_decrX
     Given the modern graph
@@ -203,12 +203,12 @@ Feature: Step - order()
     When iterated to list
     Then the result should be ordered
       | result |
-      | l[d[1.0].f,d[0.4].f,d[1.0].f] |
-      | l[d[0.4].f,d[0.5].f,d[1.0].f] |
-      | l[d[0.4].f,d[0.4].f,d[0.2].f] |
-      | l[d[1.0].f]                   |
-      | l[d[0.5].f]                   |
-      | l[d[0.2].f]                   |
+      | l[d[1.0].d,d[0.4].d,d[1.0].d] |
+      | l[d[0.4].d,d[0.5].d,d[1.0].d] |
+      | l[d[0.4].d,d[0.4].d,d[0.2].d] |
+      | l[d[1.0].d]                   |
+      | l[d[0.5].d]                   |
+      | l[d[0.2].d]                   |
 
   Scenario: g_V_group_byXlabelX_byXname_order_byXdecrX_foldX
     Given the modern graph
@@ -233,7 +233,7 @@ Feature: Step - order()
       | m[{"marko":"d[1.9].d"}]  |
       | m[{"josh":"d[1.4].d"}]  |
       | m[{"peter":"d[0.2].d"}]  |
-      | m[{"vadas":"d[0].d"}]  |
+      | m[{"vadas":"d[0].i"}]  |
 
   Scenario: g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_decrX
     Given the modern graph


[24/39] tinkerpop git commit: Added friendWeight to type info in .NET

Posted by fl...@apache.org.
Added friendWeight to type info in .NET

Tests were failing for .NET as a result of the missing type information. We really shouldn't have tests that modify the toy graphs, but something to resolve another day. CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 153f852b3abbe801f77d4cc3cd15ca8bc88ad5ed
Parents: c972512
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 10:22:59 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 10:22:59 2018 -0500

----------------------------------------------------------------------
 .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs | 3 +--
 .../Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs     | 3 ++-
 2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/153f852b/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 cc2b540..c2a8850 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -40,8 +40,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
         private static readonly IDictionary<string, IgnoreReason> IgnoredScenarios = new Dictionary<string, IgnoreReason> {
             { "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
             { "g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
-            { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX", IgnoreReason.NeedsFurtherInvestigation }
+            { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation }
         };
         
         private static class Keywords

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/153f852b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
index 7eca018..327a50a 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
@@ -38,7 +38,8 @@ namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
             {"name", typeof(string)},
             {"lang", typeof(string)},
             {"weight", typeof(float)},
-            {"foo", typeof(object)} // used when for invalid property key lookups
+            {"foo", typeof(object)}, // used when for invalid property key lookups
+            {"friendWeight", typeof(float)}  // used in an AddVertex.feature test
         };
         
         /// <summary>


[32/39] tinkerpop git commit: TINKERPOP-1509 tree() tests working now

Posted by fl...@apache.org.
TINKERPOP-1509 tree() tests working now

Seems like this was fixed at some point a while back. Test is passing consistently now. CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 4db099137548d4dcfe2534112282f052710bff9e
Parents: a61dd58
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Mar 2 15:00:49 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Mar 2 15:00:49 2018 -0500

----------------------------------------------------------------------
 .../driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java        | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4db09913/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
index fb9bfe2..7b25120 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
@@ -261,7 +261,6 @@ public class GraphSONMessageSerializerGremlinV2d0Test {
     }
 
     @Test
-    @org.junit.Ignore
     public void shouldSerializeToTreeJson() throws Exception {
         final TinkerGraph graph = TinkerFactory.createClassic();
         final GraphTraversalSource g = graph.traversal();


[30/39] tinkerpop git commit: TINKERPOP-1862 Updated changelog

Posted by fl...@apache.org.
TINKERPOP-1862 Updated changelog


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

Branch: refs/heads/TINKERPOP-1897
Commit: 7956b481b459a9998401abc8b02322f256a73ae7
Parents: 26a5770
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Mar 2 11:33:21 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Mar 2 11:33:21 2018 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7956b481/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 60e0ef4..ca1053e 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -29,6 +29,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * 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.
+* Fixed handling of `Direction.BOTH` in `Messenger` implementations to pass the message to the opposite side of the `StarGraph`.
 * Removed hardcoded expectation in metrics serialization test suite as different providers may have different outputs.
 * 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.


[31/39] tinkerpop git commit: TINKERPOP-1862 Added back computer tests accidentally commented out

Posted by fl...@apache.org.
TINKERPOP-1862 Added back computer tests accidentally commented out


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

Branch: refs/heads/TINKERPOP-1897
Commit: 8db0730a70fc693ce458603010abc831ce871f46
Parents: 7956b48
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Mar 2 12:28:18 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Mar 2 12:28:18 2018 -0500

----------------------------------------------------------------------
 .../gremlin/process/ProcessComputerSuite.java   | 168 +++++++++----------
 1 file changed, 84 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8db0730a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
index e1c97df..1d69a76 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
@@ -117,90 +117,90 @@ public class ProcessComputerSuite extends AbstractGremlinSuite {
             GraphComputerTest.class,
 
             // branch
-//            BranchTest.Traversals.class,
-//            ChooseTest.Traversals.class,
-//            OptionalTest.Traversals.class,
-//            LocalTest.Traversals.class,
-//            RepeatTest.Traversals.class,
-//            UnionTest.Traversals.class,
-//
-//            // filter
-//            AndTest.Traversals.class,
-//            CoinTest.Traversals.class,
-//            CyclicPathTest.Traversals.class,
-//            DedupTest.Traversals.class,
-//            FilterTest.Traversals.class,
-//            HasTest.Traversals.class,
-//            IsTest.Traversals.class,
-//            OrTest.Traversals.class,
-//            RangeTest.Traversals.class,
-//            SampleTest.Traversals.class,
-//            SimplePathTest.Traversals.class,
-//            TailTest.Traversals.class,
-//            WhereTest.Traversals.class,
-//
-//            // map
-//            CoalesceTest.Traversals.class,
-//            ConstantTest.Traversals.class,
-//            CountTest.Traversals.class,
-//            FlatMapTest.Traversals.class,
-//            FoldTest.Traversals.class,
-//            GraphTest.Traversals.class,
-//            LoopsTest.Traversals.class,
-//            MapTest.Traversals.class,
-//            MapKeysTest.Traversals.class,
-//            MapValuesTest.Traversals.class,
-//            MatchTest.CountMatchTraversals.class,
-//            MatchTest.GreedyMatchTraversals.class,
-//            MaxTest.Traversals.class,
-//            MeanTest.Traversals.class,
-//            MinTest.Traversals.class,
-//            SumTest.Traversals.class,
-//            OrderTest.Traversals.class,
-//            PageRankTest.Traversals.class,
-//            PathTest.Traversals.class,
-//            PeerPressureTest.Traversals.class,
-//            ProfileTest.Traversals.class,
-//            ProjectTest.Traversals.class,
-//            ProgramTest.Traversals.class,
-//            PropertiesTest.Traversals.class,
-//            SelectTest.Traversals.class,
-//            UnfoldTest.Traversals.class,
-//            ValueMapTest.Traversals.class,
-//            VertexTest.Traversals.class,
-//
-//            // sideEffect
-//            AddEdgeTest.Traversals.class,
-//            AggregateTest.Traversals.class,
-//            ExplainTest.Traversals.class,
-//            GroupTest.Traversals.class,
-//            GroupTestV3d0.Traversals.class,
-//            GroupCountTest.Traversals.class,
-//            InjectTest.Traversals.class,
-//            ProfileTest.Traversals.class,
-//            SackTest.Traversals.class,
-//            SideEffectCapTest.Traversals.class,
-//            SideEffectTest.Traversals.class,
-//            StoreTest.Traversals.class,
-//            SubgraphTest.Traversals.class,
-//            TreeTest.Traversals.class,
-//
-//            // compliance
-//            ComplexTest.Traversals.class,
-//            TraversalInterruptionComputerTest.class,
-//
-//            // algorithms
-//            PageRankVertexProgramTest.class,
-//            PeerPressureVertexProgramTest.class,
-//            BulkLoaderVertexProgramTest.class,
-//            BulkDumperVertexProgramTest.class,
-//
-//            // creations
-//            TranslationStrategyProcessTest.class,
-//
-//            // decorations
-//            ReadOnlyStrategyProcessTest.class,
-//            SubgraphStrategyProcessTest.class
+            BranchTest.Traversals.class,
+            ChooseTest.Traversals.class,
+            OptionalTest.Traversals.class,
+            LocalTest.Traversals.class,
+            RepeatTest.Traversals.class,
+            UnionTest.Traversals.class,
+
+            // filter
+            AndTest.Traversals.class,
+            CoinTest.Traversals.class,
+            CyclicPathTest.Traversals.class,
+            DedupTest.Traversals.class,
+            FilterTest.Traversals.class,
+            HasTest.Traversals.class,
+            IsTest.Traversals.class,
+            OrTest.Traversals.class,
+            RangeTest.Traversals.class,
+            SampleTest.Traversals.class,
+            SimplePathTest.Traversals.class,
+            TailTest.Traversals.class,
+            WhereTest.Traversals.class,
+
+            // map
+            CoalesceTest.Traversals.class,
+            ConstantTest.Traversals.class,
+            CountTest.Traversals.class,
+            FlatMapTest.Traversals.class,
+            FoldTest.Traversals.class,
+            GraphTest.Traversals.class,
+            LoopsTest.Traversals.class,
+            MapTest.Traversals.class,
+            MapKeysTest.Traversals.class,
+            MapValuesTest.Traversals.class,
+            MatchTest.CountMatchTraversals.class,
+            MatchTest.GreedyMatchTraversals.class,
+            MaxTest.Traversals.class,
+            MeanTest.Traversals.class,
+            MinTest.Traversals.class,
+            SumTest.Traversals.class,
+            OrderTest.Traversals.class,
+            PageRankTest.Traversals.class,
+            PathTest.Traversals.class,
+            PeerPressureTest.Traversals.class,
+            ProfileTest.Traversals.class,
+            ProjectTest.Traversals.class,
+            ProgramTest.Traversals.class,
+            PropertiesTest.Traversals.class,
+            SelectTest.Traversals.class,
+            UnfoldTest.Traversals.class,
+            ValueMapTest.Traversals.class,
+            VertexTest.Traversals.class,
+
+            // sideEffect
+            AddEdgeTest.Traversals.class,
+            AggregateTest.Traversals.class,
+            ExplainTest.Traversals.class,
+            GroupTest.Traversals.class,
+            GroupTestV3d0.Traversals.class,
+            GroupCountTest.Traversals.class,
+            InjectTest.Traversals.class,
+            ProfileTest.Traversals.class,
+            SackTest.Traversals.class,
+            SideEffectCapTest.Traversals.class,
+            SideEffectTest.Traversals.class,
+            StoreTest.Traversals.class,
+            SubgraphTest.Traversals.class,
+            TreeTest.Traversals.class,
+
+            // compliance
+            ComplexTest.Traversals.class,
+            TraversalInterruptionComputerTest.class,
+
+            // algorithms
+            PageRankVertexProgramTest.class,
+            PeerPressureVertexProgramTest.class,
+            BulkLoaderVertexProgramTest.class,
+            BulkDumperVertexProgramTest.class,
+
+            // creations
+            TranslationStrategyProcessTest.class,
+
+            // decorations
+            ReadOnlyStrategyProcessTest.class,
+            SubgraphStrategyProcessTest.class
     };
 
     /**


[03/39] tinkerpop git commit: Updated dev docs for release candidates CTR

Posted by fl...@apache.org.
Updated dev docs for release candidates CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 072f112df0faff4d8e78772e73c8b708e184a44b
Parents: 5b4bd00
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat Feb 24 16:00:37 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat Feb 24 16:00:37 2018 -0500

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/072f112d/docs/src/dev/developer/release.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/release.asciidoc b/docs/src/dev/developer/release.asciidoc
index 44afe8f..fab9819 100644
--- a/docs/src/dev/developer/release.asciidoc
+++ b/docs/src/dev/developer/release.asciidoc
@@ -135,7 +135,8 @@ of the published documentation on the dev mailing list.
 
 A release candidate is an unofficial release that is represented by a tagged version in the Git repository.  It is
 offered in cases where there is significant change in a particular version and the potential for upgrades and problems
-might be high.
+might be high. Release candidates do not require a vote thread. Lazy consensus is acceptable for confirming their
+deployment.
 
 . `mvn clean install -DincludeNeo4j`
 .. `mvn verify -DskipIntegrationTests=false -DincludeNeo4j`
@@ -153,6 +154,14 @@ might be high.
 . Announce the release candidate to `dev` mailing list and await feedback
 . Repeat as required or proceed to the next phase
 
+Note that release candidates need not require the release of all artifacts. For example, if the risk is with one
+particular GLV, then a release candidate can be prepared of just that particular artifact. In those cases, a tag on
+the commit that represents the release candidate is sufficient and does not necessarily require that the versions
+be bumped to reflect the actual "-rc" version. In other words, if preparing a release candidate for .NET, then there
+is no need to go through the processing of bumping versions in Java artifacts and all GLVs. Nor is it necessary to
+alter the version of .NET to include the release candidate versioning. It can simply be altered locally by the
+release manager and deployed.
+
 == PMC Vote
 
 This section describes the process that process that prepares a release for VOTE by the community. If there are multiple


[18/39] tinkerpop git commit: Fixed up more GLV definitions to get more .NET tests pass

Posted by fl...@apache.org.
Fixed up more GLV definitions to get more .NET tests pass


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

Branch: refs/heads/TINKERPOP-1897
Commit: 2c96d424d825ce98d8ad28d915f6fa375fc3b714
Parents: 6cfdfa9
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 08:46:53 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 08:46:53 2018 -0500

----------------------------------------------------------------------
 .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs  | 2 --
 gremlin-test/features/map/Match.feature                            | 2 +-
 gremlin-test/features/sideEffect/SideEffectCap.feature             | 2 +-
 3 files changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2c96d424/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 627570c..402a910 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -47,11 +47,9 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             { "g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
             { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
             { "g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_outE_weight_groupCount_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_asXaX_out_asXbX_matchXa_out_count_c__b_in_count_cX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_foo_injectX9999999999X_min", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_localXbothE_weight_foldX_order_byXsumXlocalX_decrX", IgnoreReason.NeedsFurtherInvestigation },

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2c96d424/gremlin-test/features/map/Match.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Match.feature b/gremlin-test/features/map/Match.feature
index e44d363..55dffcf 100644
--- a/gremlin-test/features/map/Match.feature
+++ b/gremlin-test/features/map/Match.feature
@@ -134,7 +134,7 @@ Feature: Step - match()
     When iterated to list
     Then the result should be unordered
       | result |
-      | m[{"a":"v[marko]","b":"v[lop]","c":3}] |
+      | m[{"a":"v[marko]","b":"v[lop]","c":"d[3].l"}] |
 
   Scenario: g_V_matchXa__a_out_b__notXa_created_bXX
     Given the modern graph

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2c96d424/gremlin-test/features/sideEffect/SideEffectCap.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/sideEffect/SideEffectCap.feature b/gremlin-test/features/sideEffect/SideEffectCap.feature
index 795db7e..437bd08 100644
--- a/gremlin-test/features/sideEffect/SideEffectCap.feature
+++ b/gremlin-test/features/sideEffect/SideEffectCap.feature
@@ -26,7 +26,7 @@ Feature: Step - cap()
     When iterated to list
     Then the result should be unordered
       | result |
-      | m[{"peter":"d[1].i", "vadas":"d[1].i", "josh":"d[1].i", "marko": "d[1].i"}] |
+      | m[{"peter":"d[1].l", "vadas":"d[1].l", "josh":"d[1].l", "marko": "d[1].l"}] |
 
   Scenario: g_V_chooseXlabel_person__age_groupCountXaX__name_groupCountXbXX_capXa_bX
     Given an unsupported test


[08/39] tinkerpop git commit: Test bug fix and refactoring repeated code

Posted by fl...@apache.org.
Test bug fix and refactoring repeated code


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

Branch: refs/heads/TINKERPOP-1897
Commit: 5467a33f2e17ad22b736effebede124556f049ed
Parents: 153238b
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Sun Jan 14 13:44:33 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 10:44:53 2018 -0500

----------------------------------------------------------------------
 .../process/computer/GraphComputerTest.java     | 28 +++++++++-----------
 1 file changed, 12 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5467a33f/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 785f03d..da0e53f 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
@@ -2689,12 +2689,8 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
 
     @Test
     public void testMessagePassingIn() throws Exception {
-        runTest(Direction.BOTH).forEachRemaining(v -> {
-            assertEquals(2, v.keys().size());
-            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN));
-            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT));
-            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN)));
-            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT)));
+        runTest(Direction.IN).forEachRemaining(v -> {
+            vertexPropertyChecks(v);
             final String in = v.value(VertexProgramR.PROPERTY_IN);
             if (in.equals("a"))
                 assertEquals("ab", v.value(VertexProgramR.PROPERTY_OUT).toString());
@@ -2709,11 +2705,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
     @Test
     public void testMessagePassingOut() throws Exception {
         runTest(Direction.OUT).forEachRemaining(v -> {
-            assertEquals(2, v.keys().size());
-            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN));
-            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT));
-            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN)));
-            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT)));
+            vertexPropertyChecks(v);
             final String in = v.value(VertexProgramR.PROPERTY_IN);
             if (in.equals("a"))
                 assertEquals("a", v.value(VertexProgramR.PROPERTY_OUT).toString());
@@ -2728,11 +2720,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
     @Test
     public void testMessagePassingBoth() throws Exception {
         runTest(Direction.BOTH).forEachRemaining(v -> {
-            assertEquals(2, v.keys().size());
-            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN));
-            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT));
-            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN)));
-            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT)));
+            vertexPropertyChecks(v);
             final String in = v.value(VertexProgramR.PROPERTY_IN);
             if (in.equals("a"))
                 assertEquals("aab", v.value(VertexProgramR.PROPERTY_OUT).toString());
@@ -2754,6 +2742,14 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
         return result.graph().traversal().V();
     }
 
+    private static void vertexPropertyChecks(Vertex v) {
+        assertEquals(2, v.keys().size());
+        assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN));
+        assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT));
+        assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN)));
+        assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT)));
+    }
+
     private static class VertexProgramR implements VertexProgram<String> {
         private static final String SIMPLE_VERTEX_PROGRAM_CFG_PREFIX = "gremlin.simpleVertexProgram";
         private static final String PROPERTY_OUT = "propertyout";


[06/39] tinkerpop git commit: Test cleanup - hopefully can run now

Posted by fl...@apache.org.
Test cleanup - hopefully can run now


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

Branch: refs/heads/TINKERPOP-1897
Commit: 750677cf55d7445c3746870d86c6592f6cd3664d
Parents: 80c0b84
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Sat Jan 13 23:49:27 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 10:44:27 2018 -0500

----------------------------------------------------------------------
 .../process/computer/GraphComputerTest.java     | 97 +++++++++++---------
 1 file changed, 52 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/750677cf/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 c34c2dc..0e8d06a 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
@@ -2689,63 +2689,84 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
 
     @Test
     public void testMessagePassingIn() throws Exception {
-        runTest(Direction.IN).forEachRemaining(v -> {
-            String in = v.value("propin").toString();
-            if (in.equals("a")) {
-                assertEquals("ab", v.value("propout").toString());
-            } else {
-                assertEquals("", v.value("propout").toString());
-            }
+        runTest(Direction.BOTH).forEachRemaining(v -> {
+            assertEquals(2, v.keys().size());
+            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN));
+            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT));
+            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN)));
+            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT)));
+            final String in = v.value(VertexProgramR.PROPERTY_IN);
+            if (in.equals("a"))
+                assertEquals("ab", v.value(VertexProgramR.PROPERTY_OUT).toString());
+            else if (in.equals("b"))
+                assertEquals("", v.value(VertexProgramR.PROPERTY_OUT).toString());
+            else
+                throw new IllegalStateException("This vertex should not exist: " + VertexProgramR.PROPERTY_IN
+                        + "=" + String.valueOf(in));
         });
     }
 
     @Test
     public void testMessagePassingOut() throws Exception {
         runTest(Direction.OUT).forEachRemaining(v -> {
-            String in = v.value("propin").toString();
-            if (in.equals("a")) {
-                assertEquals("a", v.value("propout").toString());
-            } else {
-                assertEquals("a", v.value("propout").toString());
-            }
+            assertEquals(2, v.keys().size());
+            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN));
+            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT));
+            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN)));
+            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT)));
+            final String in = v.value(VertexProgramR.PROPERTY_IN);
+            if (in.equals("a"))
+                assertEquals("a", v.value(VertexProgramR.PROPERTY_OUT).toString());
+            else if (in.equals("b"))
+                assertEquals("a", v.value(VertexProgramR.PROPERTY_OUT).toString());
+            else
+                throw new IllegalStateException("This vertex should not exist: " + VertexProgramR.PROPERTY_IN
+                        + "=" + String.valueOf(in));
         });
     }
 
     @Test
     public void testMessagePassingBoth() throws Exception {
         runTest(Direction.BOTH).forEachRemaining(v -> {
-            String in = v.value("propin").toString();
-            if (in.equals("a")) {
-                assertEquals("aab", v.value("propout").toString());
-            } else {
-                assertEquals("a", v.value("propout").toString());
-            }
+            assertEquals(2, v.keys().size());
+            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN));
+            assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT));
+            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN)));
+            assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT)));
+            final String in = v.value(VertexProgramR.PROPERTY_IN);
+            if (in.equals("a"))
+                assertEquals("aab", v.value(VertexProgramR.PROPERTY_OUT).toString());
+            else if (in.equals("b"))
+                assertEquals("a", v.value(VertexProgramR.PROPERTY_OUT).toString());
+            else
+                throw new IllegalStateException("This vertex should not exist: " + VertexProgramR.PROPERTY_IN
+                        + "=" + String.valueOf(in));
         });
     }
 
     private GraphTraversal<Vertex, Vertex> runTest(Direction direction) throws Exception {
-        g.addV().property("propin", "a").as("a")
-                .addV().property("propin", "b").as("b")
-                .addE("edge").from("a").to("b").addE("edge").from("a").to("a").iterate();
-        final VertexProgramR svp = VertexProgramR.build().propertyIn("propin")
-                .propertyOut("propout").direction(direction).create();
+        final Vertex a = graph.addVertex(VertexProgramR.PROPERTY_IN, "a");
+        final Vertex b = graph.addVertex(VertexProgramR.PROPERTY_IN, "b");
+        a.addEdge("edge", b);
+        a.addEdge("edge", a);
+        final VertexProgramR svp = VertexProgramR.build().direction(direction).create();
         final ComputerResult result = graphProvider.getGraphComputer(graph).program(svp).submit().get();
         return result.graph().traversal().V();
     }
 
     private static class VertexProgramR implements VertexProgram<String> {
         private static final String SIMPLE_VERTEX_PROGRAM_CFG_PREFIX = "gremlin.simpleVertexProgram";
-        private static final String PROPERTY_OUT_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".propertyout";
-        private static final String PROPERTY_IN_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".propertyin";
+        private static final String PROPERTY_OUT = "propertyout";
+        private static final String PROPERTY_IN = "propertyin";
         private static final String DIRECTION_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".direction";
 
         private final MessageScope.Local<String> inMessageScope = MessageScope.Local.of(__::inE);
         private final MessageScope.Local<String> outMessageScope = MessageScope.Local.of(__::outE);
         private final MessageScope.Local<String> bothMessageScope = MessageScope.Local.of(__::bothE);
         private MessageScope.Local<String> messageScope;
-        private Set<VertexComputeKey> vertexComputeKeys;
-
-        private String propertyout, propertyin;
+        private final Set<VertexComputeKey> vertexComputeKeys = new HashSet<>(Arrays.asList(
+                VertexComputeKey.of(VertexProgramR.PROPERTY_OUT, false),
+                VertexComputeKey.of(VertexProgramR.PROPERTY_IN, false)));
 
         /**
          * Clones this vertex program.
@@ -2756,8 +2777,6 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
 
         @Override
         public void loadState(final Graph graph, final Configuration configuration) {
-            this.propertyout = configuration.getString(PROPERTY_OUT_CFG_KEY);
-            this.propertyin = configuration.getString(PROPERTY_IN_CFG_KEY);
             Direction direction = Direction.valueOf(configuration.getString(DIRECTION_CFG_KEY));
             switch (direction) {
                 case IN:
@@ -2770,8 +2789,6 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
                     this.messageScope = this.bothMessageScope;
                     break;
             }
-            this.vertexComputeKeys = new HashSet<>(Arrays.asList(VertexComputeKey.of(this.propertyout, false),
-                    VertexComputeKey.of(this.propertyin, false)));
         }
 
         @Override
@@ -2781,11 +2798,11 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
         @Override
         public void execute(Vertex vertex, Messenger<String> messenger, Memory memory) {
             if (memory.isInitialIteration()) {
-                messenger.sendMessage(this.messageScope, vertex.value(this.propertyin).toString());
+                messenger.sendMessage(this.messageScope, vertex.value(PROPERTY_IN).toString());
             } else {
                 char[] composite = IteratorUtils.reduce(messenger.receiveMessages(), "", (a, b) -> a + b).toCharArray();
                 Arrays.sort(composite);
-                vertex.property(this.propertyout, new String(composite));
+                vertex.property(PROPERTY_OUT, new String(composite));
             }
         }
 
@@ -2842,16 +2859,6 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
                 return create(null);
             }
 
-            public Builder propertyOut(final String name) {
-                configuration.setProperty(PROPERTY_OUT_CFG_KEY, name);
-                return this;
-            }
-
-            public Builder propertyIn(final String name) {
-                configuration.setProperty(PROPERTY_IN_CFG_KEY, name);
-                return this;
-            }
-
             public Builder direction(final Direction direction) {
                 configuration.setProperty(DIRECTION_CFG_KEY, direction.toString());
                 return this;


[36/39] tinkerpop git commit: Add docker images for console and server TINKERPOP-1897

Posted by fl...@apache.org.
Add docker images for console and server TINKERPOP-1897


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

Branch: refs/heads/TINKERPOP-1897
Commit: e0d025c36ed33f10192d52d1ff5fff9eb07e21e9
Parents: 6fbf130
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Sun Feb 25 18:14:03 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Mon Mar 5 19:53:58 2018 +0100

----------------------------------------------------------------------
 .dockerignore                                   |  2 +
 .gitignore                                      |  1 +
 CHANGELOG.asciidoc                              |  1 +
 .../developer/development-environment.asciidoc  | 16 +++-
 .../src/reference/gremlin-applications.asciidoc | 89 ++++++++++++++++++++
 gremlin-console/Dockerfile                      | 31 +++++++
 gremlin-console/pom.xml                         | 34 ++++++++
 .../src/main/docker/docker-entrypoint.sh        | 24 ++++++
 gremlin-server/Dockerfile                       | 35 ++++++++
 gremlin-server/pom.xml                          | 34 ++++++++
 .../src/main/docker/docker-entrypoint.sh        | 31 +++++++
 pom.xml                                         |  6 ++
 12 files changed, 303 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/.dockerignore
----------------------------------------------------------------------
diff --git a/.dockerignore b/.dockerignore
index afe0e54..50d6801 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,7 @@
 **/*.log
 **/target
+!gremlin-server/target/apache-tinkerpop-gremlin-server-*
+!gremlin-console/target/apache-tinkerpop-gremlin-console-*
 *.iml
 .idea
 **/*.DS_Store

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 0109f82..10e5b4f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@ __pycache__/
 *.py[cdo]
 __version__.py
 .glv
+.docker
 settings.xml
 tools/
 [Dd]ebug/

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index b9f22e1..e5a2e72 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 Docker images for Gremlin Console and Gremlin Server
 * Added `checkAdjacentVertices` option to `SubgraphStrategy`.
 * Modified `GremlinDslProcessor` so that it generated the `getAnonymousTraversalClass()` method to return the DSL version of `__`.
 * Added the "Kitchen Sink" test data set.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/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..c0d5389 100644
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@ -104,7 +104,7 @@ The build optionally requires link:https://www.microsoft.com/net/core[.NET Core
 `gremlin-dotnet` module. If .NET Core SDK is not installed, TinkerPop will still build with Maven, but .NET projects
 will be skipped.
 
-`gremlin-dotnet` can be build and tested from the command line with:
+`gremlin-dotnet` can be built and tested from the command line with:
 
 [source,text]
 mvn clean install -Pgremlin-dotnet
@@ -142,6 +142,20 @@ The release manager should have the authentication token set, for more informati
 section below.
 
 
+[[docker-environment]]
+=== Docker Environment
+The build optionally requires Docker to build Docker images of Gremlin Server and Gremlin Console.
+
+The Docker images can be built from the command line with:
+[source,text]
+----
+mvn clean install -Pdocker-images
+----
+which enables the "docker-images" Maven profile or in a more automated fashion simply add a `.docker` file to the
+directories of the `gremlin-server` and/or `gremlin-console` modules which will signify to Maven that Docker is present
+in the environment.
+
+
 [[release-environment]]
 === Release Environment
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/docs/src/reference/gremlin-applications.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-applications.asciidoc b/docs/src/reference/gremlin-applications.asciidoc
index 380ff4e..0486827 100644
--- a/docs/src/reference/gremlin-applications.asciidoc
+++ b/docs/src/reference/gremlin-applications.asciidoc
@@ -353,6 +353,38 @@ variable initialization code into the console.
 Like, execution mode, it is also possible to pass multiple scripts by specifying multiple `-i` options. See the
 <<execution-mode, Execution Mode Section>> for more information on the specifics of that capability.
 
+[[gremlin-console-docker-image]]
+=== Docker Image
+The Gremlin Console can also be started as a link:https://hub.docker.com/r/tinkerpop/gremlin-console/[Docker image]:
+
+[source,text]
+----
+$ docker run -it tinkerpop/gremlin-console:x.y.z
+Feb 25, 2018 3:47:24 PM java.util.prefs.FileSystemPreferences$1 run
+INFO: Created user preferences directory.
+
+         \,,,/
+         (o o)
+-----oOOo-(3)-oOOo-----
+plugin activated: tinkerpop.server
+plugin activated: tinkerpop.utilities
+plugin activated: tinkerpop.tinkergraph
+gremlin>
+----
+
+The Docker image offers the same options as the standalone Console. It can be used for example to execute scripts:
+
+[source,bash]
+----
+$ docker run -it tinkerpop/gremlin-console:x.y.z -e gremlin.groovy
+v[1]
+v[2]
+v[3]
+v[4]
+v[5]
+v[6]
+----
+
 [[gremlin-server]]
 == Gremlin Server
 
@@ -1830,6 +1862,63 @@ $ curl -X POST -d "{\"gremlin\":\"divideIt(8, 2)\"}" "http://localhost:8182"
 In the above REST-based requests, the bindings contain a special parameter that tells the `ScriptEngine` cache to
 immediately forget the script after execution. In this way, the function does not end up being globally available.
 
+[[gremlin-server-docker-image]]
+=== Docker Image
+The Gremlin Server can also be started as a link:https://hub.docker.com/r/tinkerpop/gremlin-server/[Docker image]:
+
+[source,text]
+----
+$ docker run tinkerpop/gremlin-server:x.y.z
+[INFO] GremlinServer - 
+         \,,,/
+         (o o)
+-----oOOo-(3)-oOOo-----
+
+[INFO] GremlinServer - Configuring Gremlin Server from conf/gremlin-server.yaml
+[INFO] MetricManager - Configured Metrics ConsoleReporter configured with report interval=180000ms
+[INFO] MetricManager - Configured Metrics CsvReporter configured with report interval=180000ms to fileName=/tmp/gremlin-server-metrics.csv
+[INFO] MetricManager - Configured Metrics JmxReporter configured with domain= and agentId=
+[INFO] MetricManager - Configured Metrics Slf4jReporter configured with interval=180000ms and loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics
+[INFO] DefaultGraphManager - Graph [graph] was successfully configured via [conf/tinkergraph-empty.properties].
+[INFO] ServerGremlinExecutor - Initialized Gremlin thread pool.  Threads in pool named with pattern gremlin-*
+[INFO] ScriptEngines - Loaded gremlin-groovy ScriptEngine
+[INFO] GremlinExecutor - Initialized gremlin-groovy ScriptEngine with scripts/empty-sample.groovy
+[INFO] ServerGremlinExecutor - Initialized GremlinExecutor and preparing GremlinScriptEngines instances.
+[INFO] ServerGremlinExecutor - Initialized gremlin-groovy GremlinScriptEngine and registered metrics
+[INFO] ServerGremlinExecutor - A GraphTraversalSource is now bound to [g] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
+[INFO] OpLoader - Adding the standard OpProcessor.
+[INFO] OpLoader - Adding the control OpProcessor.
+[INFO] OpLoader - Adding the session OpProcessor.
+[INFO] OpLoader - Adding the traversal OpProcessor.
+[INFO] TraversalOpProcessor - Initialized cache for TraversalOpProcessor with size 1000 and expiration time of 600000 ms
+[INFO] GremlinServer - Executing start up LifeCycleHook
+[INFO] Logger$info - Executed once at startup of Gremlin Server.
+[INFO] GremlinServer - idleConnectionTimeout was set to 0 which resolves to 0 seconds when configuring this value - this feature will be disabled
+[INFO] GremlinServer - keepAliveInterval was set to 0 which resolves to 0 seconds when configuring this value - this feature will be disabled
+[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+gryo with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
+[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+gryo-stringd with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
+[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0
+[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v2.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0
+[INFO] AbstractChannelizer - Configured application/json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0
+[INFO] GremlinServer$1 - Gremlin Server configured with worker thread pool of 1, gremlin pool of 4 and boss thread pool of 1.
+[INFO] GremlinServer$1 - Channel started at port 8182.
+----
+
+By default, Gremlin Server listens on port 8182. So that port should be exposed if it should be reachable on the host:
+
+[source,bash]
+----
+$ docker run -p 8182:8182 tinkerpop/gremlin-server:x.y.z
+----
+
+Arguments provided with `docker run` are forwarded to the script that starts Gremlin Server. This allows for example
+to use an alternative config file:
+
+[source,bash]
+----
+$ docker run tinkerpop/gremlin-server:x.y.z conf/gremlin-server-secure.yaml
+----
+
 [[gremlin-plugins]]
 == Gremlin Plugins
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/gremlin-console/Dockerfile
----------------------------------------------------------------------
diff --git a/gremlin-console/Dockerfile b/gremlin-console/Dockerfile
new file mode 100644
index 0000000..909952f
--- /dev/null
+++ b/gremlin-console/Dockerfile
@@ -0,0 +1,31 @@
+# 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.
+
+FROM openjdk:8u151-jre-alpine3.7
+
+ARG GREMLIN_CONSOLE_DIR
+
+RUN apk add --update \
+    bash \
+    && rm -rf /var/cache/apk/*
+
+COPY src/main/docker/docker-entrypoint.sh /
+COPY ${GREMLIN_CONSOLE_DIR} /opt/gremlin-console
+
+WORKDIR /opt/gremlin-console
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/gremlin-console/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-console/pom.xml b/gremlin-console/pom.xml
index 7c50ce5..d58bacf 100644
--- a/gremlin-console/pom.xml
+++ b/gremlin-console/pom.xml
@@ -336,5 +336,39 @@ limitations under the License.
                 </plugins>
             </build>
         </profile>
+
+        <profile>
+            <id>docker-images</id>
+            <activation>
+                <activeByDefault>false</activeByDefault>
+                <file>
+                    <exists>.docker</exists>
+                </file>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.spotify</groupId>
+                        <artifactId>dockerfile-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                            <id>docker-image</id>
+                            <goals>
+                                <goal>build</goal>
+                                <goal>push</goal>
+                            </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <repository>tinkerpop/gremlin-console</repository>
+                            <tag>${project.version}</tag>
+                            <buildArgs>
+                                <GREMLIN_CONSOLE_DIR>target/apache-tinkerpop-${project.artifactId}-${project.version}-standalone</GREMLIN_CONSOLE_DIR>
+                            </buildArgs>
+                        </configuration>
+                    </plugin>
+                </plugins>                
+            </build>
+        </profile>
     </profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/gremlin-console/src/main/docker/docker-entrypoint.sh
----------------------------------------------------------------------
diff --git a/gremlin-console/src/main/docker/docker-entrypoint.sh b/gremlin-console/src/main/docker/docker-entrypoint.sh
new file mode 100644
index 0000000..2c8d204
--- /dev/null
+++ b/gremlin-console/src/main/docker/docker-entrypoint.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+#
+#
+# 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.
+#
+
+set -e
+
+exec /opt/gremlin-console/bin/gremlin.sh "$@"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/gremlin-server/Dockerfile
----------------------------------------------------------------------
diff --git a/gremlin-server/Dockerfile b/gremlin-server/Dockerfile
new file mode 100644
index 0000000..c47e0cf
--- /dev/null
+++ b/gremlin-server/Dockerfile
@@ -0,0 +1,35 @@
+# 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.
+
+FROM openjdk:8u151-jre-alpine3.7
+
+ARG GREMLIN_SERVER_DIR
+
+RUN apk add --update \
+    bash \
+    perl \
+    && rm -rf /var/cache/apk/*
+
+COPY src/main/docker/docker-entrypoint.sh /
+COPY ${GREMLIN_SERVER_DIR} /opt/gremlin-server
+
+WORKDIR /opt/gremlin-server
+
+EXPOSE 8182
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["conf/gremlin-server.yaml"]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/gremlin-server/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-server/pom.xml b/gremlin-server/pom.xml
index 5a8d725..17101bf 100644
--- a/gremlin-server/pom.xml
+++ b/gremlin-server/pom.xml
@@ -244,5 +244,39 @@ limitations under the License.
                 </plugins>
             </build>
         </profile>
+
+        <profile>
+            <id>docker-images</id>
+            <activation>
+                <activeByDefault>false</activeByDefault>
+                <file>
+                    <exists>.docker</exists>
+                </file>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.spotify</groupId>
+                        <artifactId>dockerfile-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>docker-image</id>
+                                <goals>
+                                    <goal>build</goal>
+                                    <goal>push</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <repository>tinkerpop/gremlin-server</repository>
+                            <tag>${project.version}</tag>
+                            <buildArgs>
+                                <GREMLIN_SERVER_DIR>target/apache-tinkerpop-${project.artifactId}-${project.version}-standalone</GREMLIN_SERVER_DIR>
+                            </buildArgs>
+                        </configuration>
+                    </plugin>
+                </plugins>                
+            </build>
+        </profile>
     </profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/gremlin-server/src/main/docker/docker-entrypoint.sh
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/docker/docker-entrypoint.sh b/gremlin-server/src/main/docker/docker-entrypoint.sh
new file mode 100644
index 0000000..d869b8c
--- /dev/null
+++ b/gremlin-server/src/main/docker/docker-entrypoint.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+#
+# 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.
+#
+
+set -e
+
+CONF_FILE=$1
+
+# IP substitution hack borrowed from:
+# https://github.com/htaox/NEAT/blob/94a004831cf89767e116d955192fc14ac82e5069/docker-scripts/gremlin-server-3.0.0/files/default_cmd#L5
+IP=$(ip -o -4 addr list eth0 | perl -n -e 'if (m{inet\s([\d\.]+)\/\d+\s}xms) { print $1 }')
+sed -i "s|^host:.*|host: $IP|" $CONF_FILE
+
+exec /opt/gremlin-server/bin/gremlin-server.sh "$@"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e0d025c3/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5a3db27..3f23ea1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -313,6 +313,7 @@ limitations under the License.
                         <exclude>**/_bsp/**</exclude>
                         <exclude>DEPENDENCIES</exclude>
                         <exclude>**/.glv</exclude>
+                        <exclude>**/.docker</exclude>
                         <exclude>bin/gremlin.sh</exclude>
                         <exclude>gremlin-console/bin/gremlin.sh</exclude>
                         <exclude>**/Debug/**</exclude>
@@ -490,6 +491,11 @@ limitations under the License.
                     <artifactId>maven-jar-plugin</artifactId>
                     <version>3.0.2</version>
                 </plugin>
+                <plugin>
+                    <groupId>com.spotify</groupId>
+                    <artifactId>dockerfile-maven-plugin</artifactId>
+                    <version>1.3.7</version>
+                </plugin>
             </plugins>
         </pluginManagement>
     </build>


[37/39] tinkerpop git commit: Increase test timeout for slow systems TINKERPOP-1897

Posted by fl...@apache.org.
Increase test timeout for slow systems TINKERPOP-1897


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

Branch: refs/heads/TINKERPOP-1897
Commit: c9390d9a5479a032b03fbed92497681b626213e4
Parents: 653fb3c
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Thu Mar 1 17:17:11 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Mon Mar 5 19:53:59 2018 +0100

----------------------------------------------------------------------
 .../java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c9390d9a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
index a7e6066..43442be 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
@@ -281,7 +281,7 @@ public class ResultQueueTest extends AbstractResultQueueTest {
                 latch.countDown();
             });
 
-            assertThat(latch.await(3000, TimeUnit.MILLISECONDS), is(true));
+            assertThat(latch.await(10000, TimeUnit.MILLISECONDS), is(true));
 
             assertEquals(500, count1.get());
             assertEquals(150, count2.get());


[20/39] tinkerpop git commit: Fixed typing in GLV tests that were failing for .NET CTR

Posted by fl...@apache.org.
Fixed typing in GLV tests that were failing for .NET CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: eab4bce69d113adc766f141eb5adcba006ee6398
Parents: 85b7338
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 09:32:34 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 09:32:34 2018 -0500

----------------------------------------------------------------------
 .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs  | 2 --
 gremlin-test/features/sideEffect/Sack.feature                      | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/eab4bce6/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 7fa9716..0685d89 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -40,9 +40,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
         private static readonly IDictionary<string, IgnoreReason> IgnoredScenarios = new Dictionary<string, IgnoreReason> {
             { "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
             { "g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
-            { "g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
             { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_outE_weight_groupCount_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/eab4bce6/gremlin-test/features/sideEffect/Sack.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/sideEffect/Sack.feature b/gremlin-test/features/sideEffect/Sack.feature
index f5baf64..89e3946 100644
--- a/gremlin-test/features/sideEffect/Sack.feature
+++ b/gremlin-test/features/sideEffect/Sack.feature
@@ -80,7 +80,7 @@ Feature: Step - sack()
     When iterated to list
     Then the result should be unordered
       | result |
-      | d[1.0].d |
+      | d[1.0].m |
 
   Scenario: g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack
     Given the modern graph


[16/39] tinkerpop git commit: Merge branch 'TINKERPOP-1586' into tp32

Posted by fl...@apache.org.
Merge branch 'TINKERPOP-1586' into tp32


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

Branch: refs/heads/TINKERPOP-1897
Commit: d52051615783c83f7d185b257059ec2d37e97095
Parents: 3aa9e70 d112154
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Feb 28 15:40:20 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Feb 28 15:40:20 2018 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../strategy/decoration/SubgraphStrategy.java   | 58 ++++++++++----
 .../decoration/SubgraphStrategyProcessTest.java | 84 ++++++++++++++++++++
 3 files changed, 127 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d5205161/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 60e0ef4,1701342..92e1d9e
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -23,9 -23,9 +23,10 @@@ image::https://raw.githubusercontent.co
  [[release-3-2-8]]
  === TinkerPop 3.2.8 (Release Date: NOT OFFICIALLY RELEASED YET)
  
+ * Added `checkAdjacentVertices` option to `SubgraphStrategy`.
  * Modified `GremlinDslProcessor` so that it generated the `getAnonymousTraversalClass()` method to return the DSL version of `__`.
  * Added the "Kitchen Sink" test data set.
 +* 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.
  * Improved error messaging for failed serialization and deserialization of request/response messages.


[21/39] tinkerpop git commit: Fixed up failing .NET GLV test

Posted by fl...@apache.org.
Fixed up failing .NET GLV test

Was using "foo" as a property key that .NET gherkin parser didn't know about. CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 2ddf2e3110376acfd6ef7d8142ba156eb27de6c5
Parents: eab4bce
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 09:46:16 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 09:46:16 2018 -0500

----------------------------------------------------------------------
 .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs | 1 -
 .../Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs     | 3 ++-
 gremlin-test/features/map/Min.feature                             | 3 ++-
 3 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ddf2e31/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 0685d89..a8c25ec 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -44,7 +44,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             { "g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_outE_weight_groupCount_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_foo_injectX9999999999X_min", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_decrX", IgnoreReason.NeedsFurtherInvestigation }
         };

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ddf2e31/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
index aec3d3e..7eca018 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
@@ -37,7 +37,8 @@ namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
             {"age", typeof(int)},
             {"name", typeof(string)},
             {"lang", typeof(string)},
-            {"weight", typeof(float)}
+            {"weight", typeof(float)},
+            {"foo", typeof(object)} // used when for invalid property key lookups
         };
         
         /// <summary>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ddf2e31/gremlin-test/features/map/Min.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Min.feature b/gremlin-test/features/map/Min.feature
index 99d53dd..d77e9f3 100644
--- a/gremlin-test/features/map/Min.feature
+++ b/gremlin-test/features/map/Min.feature
@@ -52,9 +52,10 @@ Feature: Step - min()
 
   Scenario: g_V_foo_injectX9999999999X_min
     Given the modern graph
+    And using the parameter injectVal defined as "d[9999999999].l"
     And the traversal of
       """
-      g.V().values("foo").inject(9999999999L).min()
+      g.V().values("foo").inject(injectVal).min()
       """
     When iterated to list
     Then the result should be unordered


[34/39] tinkerpop git commit: Merge branch 'TINKERPOP-1862' into tp32

Posted by fl...@apache.org.
Merge branch 'TINKERPOP-1862' into tp32


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

Branch: refs/heads/TINKERPOP-1897
Commit: 6fbf13047db83cb77292386cce4c1f5bee66101e
Parents: 81e6ba6 8db0730
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Mar 5 08:39:46 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Mar 5 08:39:46 2018 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |   1 +
 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 76 -> 288 bytes
 .../process/computer/GiraphMessenger.java       |  14 +-
 .../process/computer/GraphComputerTest.java     | 192 +++++++++++++++++++
 .../io/graphson/tinkerpop-sink-typed.json       |   4 +-
 .../io/graphson/tinkerpop-sink-v2d0-typed.json  |   4 +-
 .../io/graphson/tinkerpop-sink-v2d0.json        |   4 +-
 .../structure/io/graphson/tinkerpop-sink.json   |   4 +-
 .../structure/io/gryo/tinkerpop-sink.kryo       | Bin 76 -> 288 bytes
 .../computer/util/ComputerSubmissionHelper.java |   2 +-
 .../spark/process/computer/SparkMessenger.java  |  12 +-
 .../process/computer/TinkerMessenger.java       |  11 +-
 .../tinkergraph/structure/TinkerFactory.java    |   7 +
 17 files changed, 258 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


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


[13/39] tinkerpop git commit: Updated branching strategy now that tp33 is present CTR

Posted by fl...@apache.org.
Updated branching strategy now that tp33 is present CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 1a857da8a09bb5289296493f21ba89b581e77882
Parents: 072f112
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Feb 27 08:51:18 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Feb 27 08:51:18 2018 -0500

----------------------------------------------------------------------
 docs/src/dev/developer/for-committers.asciidoc | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1a857da8/docs/src/dev/developer/for-committers.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/for-committers.asciidoc b/docs/src/dev/developer/for-committers.asciidoc
index b44de9a..c8b5559 100644
--- a/docs/src/dev/developer/for-committers.asciidoc
+++ b/docs/src/dev/developer/for-committers.asciidoc
@@ -65,10 +65,11 @@ TinkerPop has several release branches:
 * `tp30` - 3.0.x (no longer maintained)
 * `tp31` - 3.1.x (no longer maintained)
 * `tp32` - 3.2.x (bug fixes and documentation updates only)
-* `master` - 3.3.x
+* `tp33` - 3.3.x (current development)
+* `master` - 3.4.x (future development)
 
-Changes to `tp32` should merge to `master`. Please read more about this process in the <<pull-requests, Pull Requests>>
-section.
+Changes to `tp32` should merge to `tp33` and then `tp33` to `master`. Please read more about this process in the
+<<pull-requests, Pull Requests>> section.
 
 Other branches may be created for collaborating on features or for RFC's that other developers may want to inspect.
 It is suggested that the JIRA issue ID be used as the prefix, since that triggers certain automation, and it provides a


[07/39] tinkerpop git commit: Additional check. Tests still fail - but I think this is a problem with the implementations, not the test.

Posted by fl...@apache.org.
Additional check. Tests still fail - but I think this is a problem with the implementations, not the test.


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

Branch: refs/heads/TINKERPOP-1897
Commit: 153238b2a8a3fc5e051251662ef6ab80f72c659f
Parents: 750677c
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Sun Jan 14 01:01:17 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 10:44:40 2018 -0500

----------------------------------------------------------------------
 .../tinkerpop/gremlin/process/computer/GraphComputerTest.java    | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/153238b2/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 0e8d06a..785f03d 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
@@ -2785,9 +2785,11 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
                 case OUT:
                     this.messageScope = this.outMessageScope;
                     break;
-                default:
+                case BOTH:
                     this.messageScope = this.bothMessageScope;
                     break;
+                default:
+                    throw new IllegalStateException("Should not reach this point!");
             }
         }
 


[28/39] tinkerpop git commit: Updated test class for loading "sink" data to spark CTR

Posted by fl...@apache.org.
Updated test class for loading "sink" data to spark CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: a61dd58eea353637d74086426e4258de5927a8d9
Parents: 2350cbe
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 13:45:22 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 13:45:22 2018 -0500

----------------------------------------------------------------------
 .../tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java     | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a61dd58e/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java
----------------------------------------------------------------------
diff --git a/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java b/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java
index 4cd8cea..72b5b9a 100644
--- a/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java
+++ b/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java
@@ -55,6 +55,8 @@ public final class ToyGraphInputRDD implements InputRDD {
             vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createClassic().vertices(), VertexWritable::new));
         else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("crew"))
             vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createTheCrew().vertices(), VertexWritable::new));
+        else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("sink"))
+            vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createKitchenSink().vertices(), VertexWritable::new));
         else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("grateful")) {
             try {
                 final Graph graph = TinkerGraph.open();


[29/39] tinkerpop git commit: TINKERPOP-1862 Fix Messenger implementations for Spark/Giraph handling BOTH

Posted by fl...@apache.org.
TINKERPOP-1862 Fix Messenger implementations for Spark/Giraph handling BOTH

These now behave like TinkerMessenger and in the case of BOTH pass the message to the opposite vertex in the StarGraph


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

Branch: refs/heads/TINKERPOP-1897
Commit: 26a5770efb288d60150cf9db60a5dd67568179f2
Parents: 027ae27
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Mar 2 11:29:57 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Mar 2 11:29:57 2018 -0500

----------------------------------------------------------------------
 .../process/computer/GiraphMessenger.java       |  14 +-
 .../gremlin/process/ProcessComputerSuite.java   | 168 +++++++++----------
 .../process/computer/GraphComputerTest.java     |  41 +++--
 .../computer/util/ComputerSubmissionHelper.java |   2 +-
 .../spark/process/computer/SparkMessenger.java  |  12 +-
 .../spark/structure/io/ToyGraphInputRDD.java    |   2 +
 6 files changed, 136 insertions(+), 103 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26a5770e/giraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/giraph/process/computer/GiraphMessenger.java
----------------------------------------------------------------------
diff --git a/giraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/giraph/process/computer/GiraphMessenger.java b/giraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/giraph/process/computer/GiraphMessenger.java
index 03818b2..36e641e 100644
--- a/giraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/giraph/process/computer/GiraphMessenger.java
+++ b/giraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/giraph/process/computer/GiraphMessenger.java
@@ -27,6 +27,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.util.star.StarGraph;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 
 import java.util.Iterator;
@@ -57,10 +58,19 @@ public final class GiraphMessenger<M> implements Messenger<M> {
             final MessageScope.Local<M> localMessageScope = (MessageScope.Local) messageScope;
             final Traversal.Admin<Vertex, Edge> incidentTraversal = GiraphMessenger.setVertexStart(localMessageScope.getIncidentTraversal().get().asAdmin(), this.giraphVertex.getValue().get());
             final Direction direction = GiraphMessenger.getOppositeDirection(incidentTraversal);
-            incidentTraversal.forEachRemaining(edge ->
+
+            // handle processing for BOTH given TINKERPOP-1862 where the target of the message is the one opposite
+            // the current vertex
+            incidentTraversal.forEachRemaining(edge -> {
+                if (direction.equals(Direction.IN) || direction.equals(Direction.OUT))
                     this.giraphComputation.sendMessage(
                             new ObjectWritable<>(edge.vertices(direction).next().id()),
-                            new ObjectWritable<>(localMessageScope.getEdgeFunction().apply(message, edge))));
+                            new ObjectWritable<>(localMessageScope.getEdgeFunction().apply(message, edge)));
+                else
+                    this.giraphComputation.sendMessage(
+                            new ObjectWritable<>(edge instanceof StarGraph.StarOutEdge ? edge.inVertex().id() : edge.outVertex().id()),
+                            new ObjectWritable<>(localMessageScope.getEdgeFunction().apply(message, edge)));
+            });
         } else {
             final MessageScope.Global globalMessageScope = (MessageScope.Global) messageScope;
             globalMessageScope.vertices().forEach(vertex ->

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26a5770e/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
index 1d69a76..e1c97df 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
@@ -117,90 +117,90 @@ public class ProcessComputerSuite extends AbstractGremlinSuite {
             GraphComputerTest.class,
 
             // branch
-            BranchTest.Traversals.class,
-            ChooseTest.Traversals.class,
-            OptionalTest.Traversals.class,
-            LocalTest.Traversals.class,
-            RepeatTest.Traversals.class,
-            UnionTest.Traversals.class,
-
-            // filter
-            AndTest.Traversals.class,
-            CoinTest.Traversals.class,
-            CyclicPathTest.Traversals.class,
-            DedupTest.Traversals.class,
-            FilterTest.Traversals.class,
-            HasTest.Traversals.class,
-            IsTest.Traversals.class,
-            OrTest.Traversals.class,
-            RangeTest.Traversals.class,
-            SampleTest.Traversals.class,
-            SimplePathTest.Traversals.class,
-            TailTest.Traversals.class,
-            WhereTest.Traversals.class,
-
-            // map
-            CoalesceTest.Traversals.class,
-            ConstantTest.Traversals.class,
-            CountTest.Traversals.class,
-            FlatMapTest.Traversals.class,
-            FoldTest.Traversals.class,
-            GraphTest.Traversals.class,
-            LoopsTest.Traversals.class,
-            MapTest.Traversals.class,
-            MapKeysTest.Traversals.class,
-            MapValuesTest.Traversals.class,
-            MatchTest.CountMatchTraversals.class,
-            MatchTest.GreedyMatchTraversals.class,
-            MaxTest.Traversals.class,
-            MeanTest.Traversals.class,
-            MinTest.Traversals.class,
-            SumTest.Traversals.class,
-            OrderTest.Traversals.class,
-            PageRankTest.Traversals.class,
-            PathTest.Traversals.class,
-            PeerPressureTest.Traversals.class,
-            ProfileTest.Traversals.class,
-            ProjectTest.Traversals.class,
-            ProgramTest.Traversals.class,
-            PropertiesTest.Traversals.class,
-            SelectTest.Traversals.class,
-            UnfoldTest.Traversals.class,
-            ValueMapTest.Traversals.class,
-            VertexTest.Traversals.class,
-
-            // sideEffect
-            AddEdgeTest.Traversals.class,
-            AggregateTest.Traversals.class,
-            ExplainTest.Traversals.class,
-            GroupTest.Traversals.class,
-            GroupTestV3d0.Traversals.class,
-            GroupCountTest.Traversals.class,
-            InjectTest.Traversals.class,
-            ProfileTest.Traversals.class,
-            SackTest.Traversals.class,
-            SideEffectCapTest.Traversals.class,
-            SideEffectTest.Traversals.class,
-            StoreTest.Traversals.class,
-            SubgraphTest.Traversals.class,
-            TreeTest.Traversals.class,
-
-            // compliance
-            ComplexTest.Traversals.class,
-            TraversalInterruptionComputerTest.class,
-
-            // algorithms
-            PageRankVertexProgramTest.class,
-            PeerPressureVertexProgramTest.class,
-            BulkLoaderVertexProgramTest.class,
-            BulkDumperVertexProgramTest.class,
-
-            // creations
-            TranslationStrategyProcessTest.class,
-
-            // decorations
-            ReadOnlyStrategyProcessTest.class,
-            SubgraphStrategyProcessTest.class
+//            BranchTest.Traversals.class,
+//            ChooseTest.Traversals.class,
+//            OptionalTest.Traversals.class,
+//            LocalTest.Traversals.class,
+//            RepeatTest.Traversals.class,
+//            UnionTest.Traversals.class,
+//
+//            // filter
+//            AndTest.Traversals.class,
+//            CoinTest.Traversals.class,
+//            CyclicPathTest.Traversals.class,
+//            DedupTest.Traversals.class,
+//            FilterTest.Traversals.class,
+//            HasTest.Traversals.class,
+//            IsTest.Traversals.class,
+//            OrTest.Traversals.class,
+//            RangeTest.Traversals.class,
+//            SampleTest.Traversals.class,
+//            SimplePathTest.Traversals.class,
+//            TailTest.Traversals.class,
+//            WhereTest.Traversals.class,
+//
+//            // map
+//            CoalesceTest.Traversals.class,
+//            ConstantTest.Traversals.class,
+//            CountTest.Traversals.class,
+//            FlatMapTest.Traversals.class,
+//            FoldTest.Traversals.class,
+//            GraphTest.Traversals.class,
+//            LoopsTest.Traversals.class,
+//            MapTest.Traversals.class,
+//            MapKeysTest.Traversals.class,
+//            MapValuesTest.Traversals.class,
+//            MatchTest.CountMatchTraversals.class,
+//            MatchTest.GreedyMatchTraversals.class,
+//            MaxTest.Traversals.class,
+//            MeanTest.Traversals.class,
+//            MinTest.Traversals.class,
+//            SumTest.Traversals.class,
+//            OrderTest.Traversals.class,
+//            PageRankTest.Traversals.class,
+//            PathTest.Traversals.class,
+//            PeerPressureTest.Traversals.class,
+//            ProfileTest.Traversals.class,
+//            ProjectTest.Traversals.class,
+//            ProgramTest.Traversals.class,
+//            PropertiesTest.Traversals.class,
+//            SelectTest.Traversals.class,
+//            UnfoldTest.Traversals.class,
+//            ValueMapTest.Traversals.class,
+//            VertexTest.Traversals.class,
+//
+//            // sideEffect
+//            AddEdgeTest.Traversals.class,
+//            AggregateTest.Traversals.class,
+//            ExplainTest.Traversals.class,
+//            GroupTest.Traversals.class,
+//            GroupTestV3d0.Traversals.class,
+//            GroupCountTest.Traversals.class,
+//            InjectTest.Traversals.class,
+//            ProfileTest.Traversals.class,
+//            SackTest.Traversals.class,
+//            SideEffectCapTest.Traversals.class,
+//            SideEffectTest.Traversals.class,
+//            StoreTest.Traversals.class,
+//            SubgraphTest.Traversals.class,
+//            TreeTest.Traversals.class,
+//
+//            // compliance
+//            ComplexTest.Traversals.class,
+//            TraversalInterruptionComputerTest.class,
+//
+//            // algorithms
+//            PageRankVertexProgramTest.class,
+//            PeerPressureVertexProgramTest.class,
+//            BulkLoaderVertexProgramTest.class,
+//            BulkDumperVertexProgramTest.class,
+//
+//            // creations
+//            TranslationStrategyProcessTest.class,
+//
+//            // decorations
+//            ReadOnlyStrategyProcessTest.class,
+//            SubgraphStrategyProcessTest.class
     };
 
     /**

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26a5770e/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 9157571..f9e79ae 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
@@ -2726,23 +2726,27 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
         runMPTest(Direction.BOTH).forEachRemaining(v -> {
             vertexPropertyChecks(v);
             final String in = v.value(VertexProgramR.PROPERTY_IN);
-            if (in.equals("a"))
-                assertEquals("aab", v.value(VertexProgramR.PROPERTY_OUT).toString());
-            else if (in.equals("b"))
-                assertEquals("a", v.value(VertexProgramR.PROPERTY_OUT).toString());
-            else
-                throw new IllegalStateException("This vertex should not exist: " + VertexProgramR.PROPERTY_IN
-                        + "=" + String.valueOf(in));
+            switch (in) {
+                case "a":
+                    assertEquals("aab", v.value(VertexProgramR.PROPERTY_OUT).toString());
+                    break;
+                case "b":
+                    assertEquals("a", v.value(VertexProgramR.PROPERTY_OUT).toString());
+                    break;
+                default:
+                    throw new IllegalStateException("This vertex should not exist: " + VertexProgramR.PROPERTY_IN
+                            + "=" + String.valueOf(in));
+            }
         });
     }
 
-    private GraphTraversal<Vertex, Vertex> runMPTest(Direction direction) throws Exception {
+    private GraphTraversal<Vertex, Vertex> runMPTest(final Direction direction) throws Exception {
         final VertexProgramR svp = VertexProgramR.build().direction(direction).create();
         final ComputerResult result = graphProvider.getGraphComputer(graph).program(svp).vertices(__.hasLabel(VertexProgramR.VERTEX_LABEL)).submit().get();
         return result.graph().traversal().V().hasLabel(VertexProgramR.VERTEX_LABEL);
     }
 
-    private static void vertexPropertyChecks(Vertex v) {
+    private static void vertexPropertyChecks(final Vertex v) {
         assertEquals(2, v.keys().size());
         assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN));
         assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT));
@@ -2757,6 +2761,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
         private static final String VERTEX_LABEL = "message_passing_test";
         private static final String DIRECTION_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".direction";
 
+        private Direction direction;
         private final MessageScope.Local<String> inMessageScope = MessageScope.Local.of(__::inE);
         private final MessageScope.Local<String> outMessageScope = MessageScope.Local.of(__::outE);
         private final MessageScope.Local<String> bothMessageScope = MessageScope.Local.of(__::bothE);
@@ -2774,7 +2779,7 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
 
         @Override
         public void loadState(final Graph graph, final Configuration configuration) {
-            Direction direction = Direction.valueOf(configuration.getString(DIRECTION_CFG_KEY));
+            direction = Direction.valueOf(configuration.getString(DIRECTION_CFG_KEY));
             switch (direction) {
                 case IN:
                     this.messageScope = this.inMessageScope;
@@ -2791,27 +2796,33 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
         }
 
         @Override
-        public void setup(Memory memory) {
+        public void storeState(final Configuration configuration) {
+            VertexProgram.super.storeState(configuration);
+            configuration.setProperty(DIRECTION_CFG_KEY, direction.name());
+        }
+
+        @Override
+        public void setup(final Memory memory) {
         }
 
         @Override
-        public void execute(Vertex vertex, Messenger<String> messenger, Memory memory) {
+        public void execute(final Vertex vertex, final Messenger<String> messenger, final Memory memory) {
             if (memory.isInitialIteration()) {
                 messenger.sendMessage(this.messageScope, vertex.value(PROPERTY_IN).toString());
             } else {
-                char[] composite = IteratorUtils.reduce(messenger.receiveMessages(), "", (a, b) -> a + b).toCharArray();
+                final char[] composite = IteratorUtils.reduce(messenger.receiveMessages(), "", (a, b) -> a + b).toCharArray();
                 Arrays.sort(composite);
                 vertex.property(PROPERTY_OUT, new String(composite));
             }
         }
 
         @Override
-        public boolean terminate(Memory memory) {
+        public boolean terminate(final Memory memory) {
             return !memory.isInitialIteration();
         }
 
         @Override
-        public Set<MessageScope> getMessageScopes(Memory memory) {
+        public Set<MessageScope> getMessageScopes(final Memory memory) {
             return Collections.singleton(this.messageScope);
         }
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26a5770e/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/util/ComputerSubmissionHelper.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/util/ComputerSubmissionHelper.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/util/ComputerSubmissionHelper.java
index 1229440..e010bee 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/util/ComputerSubmissionHelper.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/util/ComputerSubmissionHelper.java
@@ -66,7 +66,7 @@ public final class ComputerSubmissionHelper {
 
         try {
             submissionExecutor = Executors.newSingleThreadExecutor(runnable -> {
-                Thread t = new Thread(threadGroup, runnable, threadName + "-TP-" + threadNameSuffix);
+                final Thread t = new Thread(threadGroup, runnable, threadName + "-TP-" + threadNameSuffix);
                 t.setContextClassLoader(classLoader);
                 return t;
             });

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26a5770e/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkMessenger.java
----------------------------------------------------------------------
diff --git a/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkMessenger.java b/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkMessenger.java
index 53a755c..77df48b 100644
--- a/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkMessenger.java
+++ b/spark-gremlin/src/main/java/org/apache/tinkerpop/gremlin/spark/process/computer/SparkMessenger.java
@@ -26,6 +26,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.util.star.StarGraph;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import scala.Tuple2;
 
@@ -63,7 +64,16 @@ public final class SparkMessenger<M> implements Messenger<M> {
             final MessageScope.Local<M> localMessageScope = (MessageScope.Local) messageScope;
             final Traversal.Admin<Vertex, Edge> incidentTraversal = SparkMessenger.setVertexStart(localMessageScope.getIncidentTraversal().get().asAdmin(), this.vertex);
             final Direction direction = SparkMessenger.getOppositeDirection(incidentTraversal);
-            incidentTraversal.forEachRemaining(edge -> this.outgoingMessages.add(new Tuple2<>(edge.vertices(direction).next().id(), localMessageScope.getEdgeFunction().apply(message, edge))));
+
+            // handle processing for BOTH given TINKERPOP-1862 where the target of the message is the one opposite
+            // the current vertex
+            incidentTraversal.forEachRemaining(edge -> {
+                if (direction.equals(Direction.IN) || direction.equals(Direction.OUT))
+                    this.outgoingMessages.add(new Tuple2<>(edge.vertices(direction).next().id(), localMessageScope.getEdgeFunction().apply(message, edge)));
+                else
+                    this.outgoingMessages.add(new Tuple2<>(edge instanceof StarGraph.StarOutEdge ? edge.inVertex().id() : edge.outVertex().id(), localMessageScope.getEdgeFunction().apply(message, edge)));
+
+            });
         } else {
             ((MessageScope.Global) messageScope).vertices().forEach(v -> this.outgoingMessages.add(new Tuple2<>(v.id(), message)));
         }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/26a5770e/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java
----------------------------------------------------------------------
diff --git a/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java b/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java
index 4cd8cea..72b5b9a 100644
--- a/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java
+++ b/spark-gremlin/src/test/java/org/apache/tinkerpop/gremlin/spark/structure/io/ToyGraphInputRDD.java
@@ -55,6 +55,8 @@ public final class ToyGraphInputRDD implements InputRDD {
             vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createClassic().vertices(), VertexWritable::new));
         else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("crew"))
             vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createTheCrew().vertices(), VertexWritable::new));
+        else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("sink"))
+            vertices = IteratorUtils.list(IteratorUtils.map(TinkerFactory.createKitchenSink().vertices(), VertexWritable::new));
         else if (configuration.getString(Constants.GREMLIN_HADOOP_INPUT_LOCATION).contains("grateful")) {
             try {
                 final Graph graph = TinkerGraph.open();


[02/39] tinkerpop git commit: Added some docs about Gherkin tests CTR

Posted by fl...@apache.org.
Added some docs about Gherkin tests CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 5b4bd0074f5547ecb9b08a751a3b7b0988835ed8
Parents: d970564
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat Feb 24 11:51:27 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat Feb 24 11:51:27 2018 -0500

----------------------------------------------------------------------
 docs/src/dev/developer/for-committers.asciidoc | 216 +++++++++++++++++++-
 1 file changed, 215 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5b4bd007/docs/src/dev/developer/for-committers.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/dev/developer/for-committers.asciidoc b/docs/src/dev/developer/for-committers.asciidoc
index 14fa90a..b44de9a 100644
--- a/docs/src/dev/developer/for-committers.asciidoc
+++ b/docs/src/dev/developer/for-committers.asciidoc
@@ -174,7 +174,14 @@ for an example.
 
 === Gremlin Language Test Cases
 
-When writing a test case for a Gremlin step, be sure to use the following conventions.
+Test cases for the Gremlin Language currently requires that the newly developed test be added in three places:
+
+1. As a test written in Java in the `gremlin-test` module within the subpackages of
+`org.apache.tinkerpop.gremlin.process.traversal.step`
+2. As a test written in Groovy in the `gremlin-groovy-test` module within the same subpackage structure as `gremlin-test`
+3. As a test written in Gherkin in the `gremlin-test` module in the `/features` subdirectory
+
+When writing a Java test case for a Gremlin step, be sure to use the following conventions.
 
 * The name of the traversal generator should start with `get`, use `X` for brackets, `_` for space, and the Gremlin-Groovy sugar syntax.
 ** `get_g_V_hasLabelXpersonX_groupXaX_byXageX_byXsumX_name()`
@@ -189,6 +196,213 @@ When writing a test case for a Gremlin step, be sure to use the following conven
 ** `checkResults(Arrays.asList("marko","josh"), traversal)`
 ** `checkMap(new HashMap<String,Long>() {{ put("marko",1l); }}, traversal.next())`
 
+Groovy tests are implemented by extending the Java test and implementing the abstract method that produces the
+traversal. Simply follow existing patterns in those tests - they are self-evident.
+
+Gherkin tests follow some important conventions and have a sub-language that must be adhered to for the tests to
+function properly. Note that Gherkin tests are designed to support the testing of GLVs and at some point will likely
+replace the Java tests (Groovy tests have already been removed in 3.3.x). If a new Java test is added and an associated
+Gherkin tests is not, the overall build will fail the `FeatureCoverageTest` of `gremlin-test` which validates that all
+tests written in Java are also implemented in Gherkin.
+
+The basic syntax of a Gherkin test is as follows:
+
+[source,gherkin]
+----
+Scenario: g_VX1X_unionXrepeatXoutX_timesX2X__outX_name
+  Given the modern graph
+  And using the parameter v1Id defined as "v[marko].id"
+  And the traversal of
+    """
+    g.V(v1Id).union(__.repeat(__.out()).times(2), __.out()).values("name")
+    """
+  When iterated to list
+  Then the result should be unordered
+    | result |
+    | ripple |
+    | lop |
+    | lop   |
+    | vadas |
+    | josh  |
+----
+
+==== Scenario Name
+
+The name of the scenario needs to match the name of the Java test. If it does not then the `FeatureCoverageTest` will
+fail.
+
+==== Given
+
+"Given" sets the context of the test. Specifically, it establishes the graph that will be used for the test. It
+conforms to the pattern of "Given the _xxx_ graph" where the "xxx" may be one of the following:
+
+* empty
+* modern
+* classic
+* crew
+* sink
+* grateful
+
+Never modify the data of any of the graphs except for the "empty" graph. The "empty" graph is the only graph that is
+guaranteed to be refreshed between tests. The "empty" graph maybe be modified by the traversal under test or by an
+additional "Given" option:
+
+[source,gherkin]
+----
+Given the empty graph
+And the graph initializer of
+  """
+  g.addV("person").property(T.id, 1).property("name", "marko").property("age", 29).as("marko").
+    addV("person").property(T.id, 2).property("name", "vadas").property("age", 27).as("vadas").
+    addV("software").property(T.id, 3).property("name", "lop").property("lang", "java").as("lop").
+    addV("person").property(T.id, 4).property("name","josh").property("age", 32).as("josh").
+    addV("software").property(T.id, 5).property("name", "ripple").property("lang", "java").as("ripple").
+    addV("person").property(T.id, 6).property("name", "peter").property("age", 35).as('peter').
+    addE("knows").from("marko").to("vadas").property(T.id, 7).property("weight", 0.5).
+    addE("knows").from("marko").to("josh").property(T.id, 8).property("weight", 1.0).
+    addE("created").from("marko").to("lop").property(T.id, 9).property("weight", 0.4).
+    addE("created").from("josh").to("ripple").property(T.id, 10).property("weight", 1.0).
+    addE("created").from("josh").to("lop").property(T.id, 11).property("weight", 0.4).
+    addE("created").from("peter").to("lop").property(T.id, 12).property("weight", 0.2)
+  """
+----
+
+The above configuration will use the "empty" graph and initialize it with the specified traversal. In this case, that
+traversal loads the "empty" graph with the "modern" graph.
+
+Once the graph for the test is defined, the context can be expanded to include parameters that will be applied to the
+traversal under test. Any variable value being used in the traversal under test, especially ones that require a
+specific type, should be defined as parameters. The structure for parameter definition looks like this:
+
+[source,gherkin]
+----
+Given the modern graph
+And using the parameter v1Id defined as "v[marko].id"
+----
+
+In the above example, "v1Id" is the name of the parameter that will be used in the traversal. The end of that line in
+quotes is the value of that parameter and should use the type system notation that has been developed for the TinkerPop
+Gherkin tests. The type system notation ensures that different language variants have the ability to construct the
+appropriate types expected by the tests.
+
+The syntax of the type notation involves a prefix character to help denote the type, a value between two square
+brackets, optionally suffixed with some additional notation depending on the primary type.
+
+* Edge - *e[_xxx_]* - The "xxx" should be replaced with a representation of an edge in the form of the
+`vertex_name-edgelabel->vertex_name`. This syntax may also include the `.id` suffix which would indicate getting the
+edge identifier or the `.sid` suffix which gets a string representation of the edge identifier.
+* Lambda - *c[_xxx_]* - The "xxx" should contain a lambda written in Groovy.
+* List - *l[_xxx_,_yyy_,_zzz_,...]* - A comma separated collection of values that make up the list should be added to
+between the square brackets. These values respect the type system thus allowing for creation of lists of vertices,
+edges, maps, and any other available type.
+* Map - *m[_xxx_]* - The "xxx" should be replaced with a JSON string. Note that keys and values will be parsed using
+the type notation system so that it is possible to have maps containing arbitrary keys and values.
+* Numeric - *d[_xxx_]._y_* - The "xxx" should be replaced with a number. The suffix denoted by "y" should always be
+included to further qualify the type of numeric. The following options are available:
+** *d* - 32-bit Double
+** *f* - 32-bit Float
+** *i* - 32-bit Integer
+** *l* - 64-bit Long
+** *m* - Arbitrary-precision signed decimal numbers (i.e. BigDecimal in Java)
+* Path - *p[_xxx_,_yyy_,_zzz_,...]* - A comma separated collection of values that make up the `Path` should be added to
+between the square brackets. These values respect the type system thus allowing for creation of `Path` of vertices,
+edges, maps, and any other available type.
+* Set - *s[_xxx_,_yyy_,_zzz_,...]* - A comma separated collection of values that make up the set should be added to
+between the square brackets. These values respect the type system thus allowing for creation of sets of vertices,
+edges, maps, and any other available type.
+* String - Any value not using the system notation will be interpreted as a string.
+* T - *t[_xxx_]* - The "xxx" should be replaced with a value of the `T` enum, such as `id` or `label`.
+* Vertex - *v[_xxx_]* - The "xxx" should be replaced with the "name" property of a vertex in the graph. This syntax may
+include the `.id` suffix which would indicate getting the vertex identifier or the `.sid` suffix which gets a string
+representation of the edge identifier.
+
+Finally, specify the traversal under test with the "Given" option "and the traversal":
+
+[source,gherkin]
+----
+And the traversal of
+  """
+  g.V(v1Id).union(__.repeat(__.out()).times(2), __.out()).values("name")
+  """
+----
+
+It will be the results of this traversal that end up being asserted by Gherkin. When writing these test traversals,
+be sure to always use the method and enum prefixes. For example, use  `__.out()` for an anonymous traversal rather
+than just `out()` and prefer `Scope.local` rather than just `local`.
+
+If a particular test cannot be written in Gherkin for some reason or cannot be otherwise supported by a GLV, first,
+consider whether or not this test can be re-written in Java so that it will work for GLVs and then, second, if it
+cannot, then use the following syntax for unsupported tests:
+
+[source,gherkin]
+----
+Scenario: g_V_outXcreatedX_groupCountXxX_capXxX
+  Given an unsupported test
+  Then nothing should happen because
+    """
+    The result returned is not supported under GraphSON 2.x and therefore cannot be properly asserted. More
+    specifically it has vertex keys which basically get toString()'d under GraphSON 2.x. This test can be supported
+    with GraphSON 3.x.
+    """
+----
+
+==== When
+
+The "When" options get the result from the traversal in preparation for assertion. There are two options to iterate:
+
+* "When iterated to list" - iterates the entire traversal into a list result that is asserted
+* "When iterated next" - gets the first value from the traversal as the result to be asserted
+
+There should be only one "When" defined in a scenario.
+
+==== Then
+
+The "Then" options handle the assertion of the result. There are several options to consider:
+
+* "the result should have a count of _xxx_" - assumes a list value in the result and counts the number of values
+in it
+* "the result should be empty" - no results
+* "the result should be ordered" - the exact results and should appear in the order presented
+* "the result should be unordered" - the exact results but can appear any order
+* "the result should be of" - results can be any of the specified values and in any order (use when guarantees
+regarding the exact results cannot be pre-determined easily - see the `range()` step tests for examples)
+
+These final three types of assertions mentioned above should be followed by a Gherkin table that has one column, where
+each row value in that column represents a value to assert in the result. These values are type notation respected as
+shown in the following example:
+
+[source,gherkin]
+----
+Then the result should be unordered
+  | result |
+  | ripple |
+  | lop |
+  | lop   |
+  | vadas |
+  | josh  |
+----
+
+Another method of assertion is to test mutations in the original graph. Again, mutations should only occur on the
+"empty" graph, but they can be validated as follows:
+
+[source,gherkin]
+----
+Scenario: g_V_outE_drop
+  Given the empty graph
+  And the graph initializer of
+    """
+    g.addV().as("a").addV().as("b").addE("knows").to("a")
+    """
+  And the traversal of
+    """
+    g.V().outE().drop()
+    """
+  When iterated to list
+  Then the result should be empty
+  And the graph should return 2 for count of "g.V()"
+  And the graph should return 0 for count of "g.E()"
+----
+
 == Developing Benchmarks
 
 Benchmarks are a useful tool to track performance between TinkerPop versions and also as tools to aid development


[12/39] tinkerpop git commit: Proper update of kitchen sink through TinkerFactory

Posted by fl...@apache.org.
Proper update of kitchen sink through TinkerFactory


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

Branch: refs/heads/TINKERPOP-1897
Commit: 0490a082d9b533cb7ef4a1a25bd25500844821a6
Parents: b0b124b
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Sun Feb 25 16:27:28 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 16:27:28 2018 -0500

----------------------------------------------------------------------
 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 76 -> 300 bytes
 .../structure/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 76 -> 300 bytes
 .../tinkergraph/structure/TinkerFactory.java        |   7 +++++++
 11 files changed, 31 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0490a082/data/tinkerpop-sink-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-typed.json b/data/tinkerpop-sink-typed.json
index f62a717..aae410e 100644
--- a/data/tinkerpop-sink-typed.json
+++ b/data/tinkerpop-sink-typed.json
@@ -1 +1,3 @@
-{"@class":"java.util.HashMap","id":["java.lang.Long",0],"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"outV":["java.lang.Long",0]}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"inV":["java.lang.Long",0]}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":"loop"}]]}}
+{"@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","propertyin":["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","propertyin":["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/0490a082/data/tinkerpop-sink-v2d0-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0-typed.json b/data/tinkerpop-sink-v2d0-typed.json
index df22167..e90b677 100644
--- a/data/tinkerpop-sink-v2d0-typed.json
+++ b/data/tinkerpop-sink-v2d0-typed.json
@@ -1 +1,3 @@
-{"id":{"@type":"g:Int64","@value":0},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int64","@value":2},"outV":{"@type":"g:Int64","@value":0}}]},"outE":{"self":[{"id":{"@type":"g:Int64","@value":2},"inV":{"@type":"g:Int64","@value":0}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"loop"}]}}
+{"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":{"propertyin":[{"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":{"propertyin":[{"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/0490a082/data/tinkerpop-sink-v2d0.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0.json b/data/tinkerpop-sink-v2d0.json
index 39496ba..e6c284e 100644
--- a/data/tinkerpop-sink-v2d0.json
+++ b/data/tinkerpop-sink-v2d0.json
@@ -1 +1,3 @@
-{"id":0,"label":"loops","inE":{"self":[{"id":2,"outV":0}]},"outE":{"self":[{"id":2,"inV":0}]},"properties":{"name":[{"id":1,"value":"loop"}]}}
+{"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":{"propertyin":[{"id":2,"value":"a"}]}}
+{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"propertyin":[{"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/0490a082/data/tinkerpop-sink.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.json b/data/tinkerpop-sink.json
index 39496ba..e6c284e 100644
--- a/data/tinkerpop-sink.json
+++ b/data/tinkerpop-sink.json
@@ -1 +1,3 @@
-{"id":0,"label":"loops","inE":{"self":[{"id":2,"outV":0}]},"outE":{"self":[{"id":2,"inV":0}]},"properties":{"name":[{"id":1,"value":"loop"}]}}
+{"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":{"propertyin":[{"id":2,"value":"a"}]}}
+{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"propertyin":[{"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/0490a082/data/tinkerpop-sink.kryo
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.kryo b/data/tinkerpop-sink.kryo
index 9a26e15..25419fa 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/0490a082/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 f62a717..aae410e 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 +1,3 @@
-{"@class":"java.util.HashMap","id":["java.lang.Long",0],"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"outV":["java.lang.Long",0]}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"inV":["java.lang.Long",0]}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":"loop"}]]}}
+{"@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","propertyin":["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","propertyin":["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/0490a082/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 df22167..e90b677 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 +1,3 @@
-{"id":{"@type":"g:Int64","@value":0},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int64","@value":2},"outV":{"@type":"g:Int64","@value":0}}]},"outE":{"self":[{"id":{"@type":"g:Int64","@value":2},"inV":{"@type":"g:Int64","@value":0}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"loop"}]}}
+{"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":{"propertyin":[{"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":{"propertyin":[{"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/0490a082/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 39496ba..e6c284e 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 +1,3 @@
-{"id":0,"label":"loops","inE":{"self":[{"id":2,"outV":0}]},"outE":{"self":[{"id":2,"inV":0}]},"properties":{"name":[{"id":1,"value":"loop"}]}}
+{"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":{"propertyin":[{"id":2,"value":"a"}]}}
+{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"propertyin":[{"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/0490a082/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 39496ba..e6c284e 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 +1,3 @@
-{"id":0,"label":"loops","inE":{"self":[{"id":2,"outV":0}]},"outE":{"self":[{"id":2,"inV":0}]},"properties":{"name":[{"id":1,"value":"loop"}]}}
+{"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":{"propertyin":[{"id":2,"value":"a"}]}}
+{"id":2001,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":2000}]},"properties":{"propertyin":[{"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/0490a082/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 9a26e15..25419fa 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/0490a082/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 96d26ca..4e2989d 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,6 +149,13 @@ 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 = "propertyin";
+        Vertex a = graph.addVertex(T.id, 2000, T.label, LABEL, PROPERTY_IN, "a");
+        Vertex b = graph.addVertex(T.id, 2001, T.label, LABEL, PROPERTY_IN, "b");
+        a.addEdge(EDGE_LABEL, b);
+        a.addEdge(EDGE_LABEL, a);
     }
 
     private static TinkerGraph getTinkerGraphWithNumberManager() {


[26/39] tinkerpop git commit: CTR: Minor change in the doc generation process. In case of an error, we'll now see the last 10 lines first and after a short 5 second break the errornous file will be opened for full inspection. This should make i

Posted by fl...@apache.org.
CTR: Minor change in the doc generation process. In case of an error, we'll now
     see the last 10 lines first and after a short 5 second break the errornous
     file will be opened for full inspection. This should make it much easier to
     identify errors that are not obvious in the output of the last 10 lines.


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

Branch: refs/heads/TINKERPOP-1897
Commit: aaf51464d91e481f9bd943e9d21303122f8ca981
Parents: 8ef717f
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Thu Mar 1 09:15:48 2018 -0700
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Thu Mar 1 09:15:48 2018 -0700

----------------------------------------------------------------------
 docs/preprocessor/preprocess-file.sh | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/aaf51464/docs/preprocessor/preprocess-file.sh
----------------------------------------------------------------------
diff --git a/docs/preprocessor/preprocess-file.sh b/docs/preprocessor/preprocess-file.sh
index 0ca534a..d5076f1 100755
--- a/docs/preprocessor/preprocess-file.sh
+++ b/docs/preprocessor/preprocess-file.sh
@@ -76,6 +76,9 @@ function cleanup {
       echo -e "\n\e[1mLast 10 lines of ${output}:\e[0m\n"
       tail -n10 ${output}
       echo
+      echo "Opening ${output} for full inspection"
+      sleep 5
+      less ${output}
     fi
   fi
   rm -rf ${output} ${CONSOLE_HOME}/.ext


[33/39] tinkerpop git commit: Update to apache pom version 19 CTR

Posted by fl...@apache.org.
Update to apache pom version 19 CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 81e6ba6fc4b49cc66b1ede2dd41a97495168b8e8
Parents: 4db0991
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon Mar 5 07:01:02 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Mon Mar 5 07:01:02 2018 -0500

----------------------------------------------------------------------
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/81e6ba6f/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f6ff536..5a3db27 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
     <parent>
         <groupId>org.apache</groupId>
         <artifactId>apache</artifactId>
-        <version>18</version>
+        <version>19</version>
     </parent>
     <groupId>org.apache.tinkerpop</groupId>
     <artifactId>tinkerpop</artifactId>


[38/39] tinkerpop git commit: Remove verbose log output TINKERPOP-1897

Posted by fl...@apache.org.
Remove verbose log output TINKERPOP-1897


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

Branch: refs/heads/TINKERPOP-1897
Commit: 77bf0605e947d6701ac6f53bc36167c9f3c02cf1
Parents: c9390d9
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Thu Mar 1 17:19:39 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Mon Mar 5 19:53:59 2018 +0100

----------------------------------------------------------------------
 .../src/reference/gremlin-applications.asciidoc | 26 +-------------------
 1 file changed, 1 insertion(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/77bf0605/docs/src/reference/gremlin-applications.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-applications.asciidoc b/docs/src/reference/gremlin-applications.asciidoc
index 0486827..be777a9 100644
--- a/docs/src/reference/gremlin-applications.asciidoc
+++ b/docs/src/reference/gremlin-applications.asciidoc
@@ -1875,31 +1875,7 @@ $ docker run tinkerpop/gremlin-server:x.y.z
 -----oOOo-(3)-oOOo-----
 
 [INFO] GremlinServer - Configuring Gremlin Server from conf/gremlin-server.yaml
-[INFO] MetricManager - Configured Metrics ConsoleReporter configured with report interval=180000ms
-[INFO] MetricManager - Configured Metrics CsvReporter configured with report interval=180000ms to fileName=/tmp/gremlin-server-metrics.csv
-[INFO] MetricManager - Configured Metrics JmxReporter configured with domain= and agentId=
-[INFO] MetricManager - Configured Metrics Slf4jReporter configured with interval=180000ms and loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics
-[INFO] DefaultGraphManager - Graph [graph] was successfully configured via [conf/tinkergraph-empty.properties].
-[INFO] ServerGremlinExecutor - Initialized Gremlin thread pool.  Threads in pool named with pattern gremlin-*
-[INFO] ScriptEngines - Loaded gremlin-groovy ScriptEngine
-[INFO] GremlinExecutor - Initialized gremlin-groovy ScriptEngine with scripts/empty-sample.groovy
-[INFO] ServerGremlinExecutor - Initialized GremlinExecutor and preparing GremlinScriptEngines instances.
-[INFO] ServerGremlinExecutor - Initialized gremlin-groovy GremlinScriptEngine and registered metrics
-[INFO] ServerGremlinExecutor - A GraphTraversalSource is now bound to [g] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
-[INFO] OpLoader - Adding the standard OpProcessor.
-[INFO] OpLoader - Adding the control OpProcessor.
-[INFO] OpLoader - Adding the session OpProcessor.
-[INFO] OpLoader - Adding the traversal OpProcessor.
-[INFO] TraversalOpProcessor - Initialized cache for TraversalOpProcessor with size 1000 and expiration time of 600000 ms
-[INFO] GremlinServer - Executing start up LifeCycleHook
-[INFO] Logger$info - Executed once at startup of Gremlin Server.
-[INFO] GremlinServer - idleConnectionTimeout was set to 0 which resolves to 0 seconds when configuring this value - this feature will be disabled
-[INFO] GremlinServer - keepAliveInterval was set to 0 which resolves to 0 seconds when configuring this value - this feature will be disabled
-[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+gryo with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
-[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+gryo-stringd with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
-[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0
-[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v2.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0
-[INFO] AbstractChannelizer - Configured application/json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0
+...
 [INFO] GremlinServer$1 - Gremlin Server configured with worker thread pool of 1, gremlin pool of 4 and boss thread pool of 1.
 [INFO] GremlinServer$1 - Channel started at port 8182.
 ----


[10/39] tinkerpop git commit: Updating message passing tests to use kitchen sink

Posted by fl...@apache.org.
Updating message passing tests to use kitchen sink


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

Branch: refs/heads/TINKERPOP-1897
Commit: f03c4df45473bafcf95d47f34467479f89af73a1
Parents: febe0ac
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Sun Feb 25 12:35:43 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 12:35:43 2018 -0500

----------------------------------------------------------------------
 .../process/computer/GraphComputerTest.java     | 21 ++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f03c4df4/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 da0e53f..4cbe584 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
@@ -69,6 +69,7 @@ import java.util.concurrent.Future;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.GRATEFUL;
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.SINK;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.outE;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -2688,8 +2689,9 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
     ///////////////////////////////////
 
     @Test
+    @LoadGraphWith(SINK)
     public void testMessagePassingIn() throws Exception {
-        runTest(Direction.IN).forEachRemaining(v -> {
+        runMPTest(Direction.IN).forEachRemaining(v -> {
             vertexPropertyChecks(v);
             final String in = v.value(VertexProgramR.PROPERTY_IN);
             if (in.equals("a"))
@@ -2703,8 +2705,9 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
     }
 
     @Test
+    @LoadGraphWith(SINK)
     public void testMessagePassingOut() throws Exception {
-        runTest(Direction.OUT).forEachRemaining(v -> {
+        runMPTest(Direction.OUT).forEachRemaining(v -> {
             vertexPropertyChecks(v);
             final String in = v.value(VertexProgramR.PROPERTY_IN);
             if (in.equals("a"))
@@ -2718,8 +2721,9 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
     }
 
     @Test
+    @LoadGraphWith(SINK)
     public void testMessagePassingBoth() throws Exception {
-        runTest(Direction.BOTH).forEachRemaining(v -> {
+        runMPTest(Direction.BOTH).forEachRemaining(v -> {
             vertexPropertyChecks(v);
             final String in = v.value(VertexProgramR.PROPERTY_IN);
             if (in.equals("a"))
@@ -2732,14 +2736,10 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
         });
     }
 
-    private GraphTraversal<Vertex, Vertex> runTest(Direction direction) throws Exception {
-        final Vertex a = graph.addVertex(VertexProgramR.PROPERTY_IN, "a");
-        final Vertex b = graph.addVertex(VertexProgramR.PROPERTY_IN, "b");
-        a.addEdge("edge", b);
-        a.addEdge("edge", a);
+    private GraphTraversal<Vertex, Vertex> runMPTest(Direction direction) throws Exception {
         final VertexProgramR svp = VertexProgramR.build().direction(direction).create();
-        final ComputerResult result = graphProvider.getGraphComputer(graph).program(svp).submit().get();
-        return result.graph().traversal().V();
+        final ComputerResult result = graphProvider.getGraphComputer(graph).program(svp).vertices(__.hasLabel(VertexProgramR.VERTEX_LABEL)).submit().get();
+        return result.graph().traversal().V().hasLabel(VertexProgramR.VERTEX_LABEL);
     }
 
     private static void vertexPropertyChecks(Vertex v) {
@@ -2754,6 +2754,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 = "propertyin";
+        private static final String VERTEX_LABEL = "message_passing_test";
         private static final String DIRECTION_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".direction";
 
         private final MessageScope.Local<String> inMessageScope = MessageScope.Local.of(__::inE);


[05/39] tinkerpop git commit: Adding simple graph computer test of proper message passing in all 3 directions

Posted by fl...@apache.org.
Adding simple graph computer test of proper message passing in all 3 directions


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

Branch: refs/heads/TINKERPOP-1897
Commit: 80c0b8465fe9bb6ddbe4522a36304c7ba054e909
Parents: f02ea33
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Sat Jan 13 21:32:29 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 10:44:15 2018 -0500

----------------------------------------------------------------------
 .../process/computer/GraphComputerTest.java     | 175 +++++++++++++++++++
 1 file changed, 175 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/80c0b846/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 8c846d5..c34c2dc 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
@@ -34,6 +34,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Operator;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyPath;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.VerificationException;
@@ -2683,4 +2684,178 @@ public class GraphComputerTest extends AbstractGremlinProcessTest {
             };
         }
     }
+
+    ///////////////////////////////////
+
+    @Test
+    public void testMessagePassingIn() throws Exception {
+        runTest(Direction.IN).forEachRemaining(v -> {
+            String in = v.value("propin").toString();
+            if (in.equals("a")) {
+                assertEquals("ab", v.value("propout").toString());
+            } else {
+                assertEquals("", v.value("propout").toString());
+            }
+        });
+    }
+
+    @Test
+    public void testMessagePassingOut() throws Exception {
+        runTest(Direction.OUT).forEachRemaining(v -> {
+            String in = v.value("propin").toString();
+            if (in.equals("a")) {
+                assertEquals("a", v.value("propout").toString());
+            } else {
+                assertEquals("a", v.value("propout").toString());
+            }
+        });
+    }
+
+    @Test
+    public void testMessagePassingBoth() throws Exception {
+        runTest(Direction.BOTH).forEachRemaining(v -> {
+            String in = v.value("propin").toString();
+            if (in.equals("a")) {
+                assertEquals("aab", v.value("propout").toString());
+            } else {
+                assertEquals("a", v.value("propout").toString());
+            }
+        });
+    }
+
+    private GraphTraversal<Vertex, Vertex> runTest(Direction direction) throws Exception {
+        g.addV().property("propin", "a").as("a")
+                .addV().property("propin", "b").as("b")
+                .addE("edge").from("a").to("b").addE("edge").from("a").to("a").iterate();
+        final VertexProgramR svp = VertexProgramR.build().propertyIn("propin")
+                .propertyOut("propout").direction(direction).create();
+        final ComputerResult result = graphProvider.getGraphComputer(graph).program(svp).submit().get();
+        return result.graph().traversal().V();
+    }
+
+    private static class VertexProgramR implements VertexProgram<String> {
+        private static final String SIMPLE_VERTEX_PROGRAM_CFG_PREFIX = "gremlin.simpleVertexProgram";
+        private static final String PROPERTY_OUT_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".propertyout";
+        private static final String PROPERTY_IN_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".propertyin";
+        private static final String DIRECTION_CFG_KEY = SIMPLE_VERTEX_PROGRAM_CFG_PREFIX + ".direction";
+
+        private final MessageScope.Local<String> inMessageScope = MessageScope.Local.of(__::inE);
+        private final MessageScope.Local<String> outMessageScope = MessageScope.Local.of(__::outE);
+        private final MessageScope.Local<String> bothMessageScope = MessageScope.Local.of(__::bothE);
+        private MessageScope.Local<String> messageScope;
+        private Set<VertexComputeKey> vertexComputeKeys;
+
+        private String propertyout, propertyin;
+
+        /**
+         * Clones this vertex program.
+         *
+         * @return a clone of this vertex program
+         */
+        public VertexProgramR clone() { return this; }
+
+        @Override
+        public void loadState(final Graph graph, final Configuration configuration) {
+            this.propertyout = configuration.getString(PROPERTY_OUT_CFG_KEY);
+            this.propertyin = configuration.getString(PROPERTY_IN_CFG_KEY);
+            Direction direction = Direction.valueOf(configuration.getString(DIRECTION_CFG_KEY));
+            switch (direction) {
+                case IN:
+                    this.messageScope = this.inMessageScope;
+                    break;
+                case OUT:
+                    this.messageScope = this.outMessageScope;
+                    break;
+                default:
+                    this.messageScope = this.bothMessageScope;
+                    break;
+            }
+            this.vertexComputeKeys = new HashSet<>(Arrays.asList(VertexComputeKey.of(this.propertyout, false),
+                    VertexComputeKey.of(this.propertyin, false)));
+        }
+
+        @Override
+        public void setup(Memory memory) {
+        }
+
+        @Override
+        public void execute(Vertex vertex, Messenger<String> messenger, Memory memory) {
+            if (memory.isInitialIteration()) {
+                messenger.sendMessage(this.messageScope, vertex.value(this.propertyin).toString());
+            } else {
+                char[] composite = IteratorUtils.reduce(messenger.receiveMessages(), "", (a, b) -> a + b).toCharArray();
+                Arrays.sort(composite);
+                vertex.property(this.propertyout, new String(composite));
+            }
+        }
+
+        @Override
+        public boolean terminate(Memory memory) {
+            return !memory.isInitialIteration();
+        }
+
+        @Override
+        public Set<MessageScope> getMessageScopes(Memory memory) {
+            return Collections.singleton(this.messageScope);
+        }
+
+        @Override
+        public GraphComputer.ResultGraph getPreferredResultGraph() {
+            return GraphComputer.ResultGraph.NEW;
+        }
+
+        @Override
+        public GraphComputer.Persist getPreferredPersist() {
+            return GraphComputer.Persist.VERTEX_PROPERTIES;
+        }
+
+        @Override
+        public Set<VertexComputeKey> getVertexComputeKeys() {
+            return this.vertexComputeKeys;
+        }
+
+        @Override
+        public Set<MemoryComputeKey> getMemoryComputeKeys() {
+            return Collections.emptySet();
+        }
+
+        public static Builder build() {
+            return new Builder();
+        }
+
+        static class Builder extends AbstractVertexProgramBuilder<Builder> {
+
+            private Builder() {
+                super(VertexProgramR.class);
+            }
+
+            @SuppressWarnings("unchecked")
+            @Override
+            public VertexProgramR create(final Graph graph) {
+                if (graph != null) {
+                    ConfigurationUtils.append(graph.configuration().subset(SIMPLE_VERTEX_PROGRAM_CFG_PREFIX), configuration);
+                }
+                return (VertexProgramR) VertexProgram.createVertexProgram(graph, configuration);
+            }
+
+            public VertexProgramR create() {
+                return create(null);
+            }
+
+            public Builder propertyOut(final String name) {
+                configuration.setProperty(PROPERTY_OUT_CFG_KEY, name);
+                return this;
+            }
+
+            public Builder propertyIn(final String name) {
+                configuration.setProperty(PROPERTY_IN_CFG_KEY, name);
+                return this;
+            }
+
+            public Builder direction(final Direction direction) {
+                configuration.setProperty(DIRECTION_CFG_KEY, direction.toString());
+                return this;
+            }
+        }
+    }
 }


[25/39] tinkerpop git commit: Created issue for ignored GLV test in .NET CTR

Posted by fl...@apache.org.
Created issue for ignored GLV test in .NET CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 8ef717f6c0e04161e43c87a83f67ada0f5e60349
Parents: 153f852
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 10:31:56 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 10:31:56 2018 -0500

----------------------------------------------------------------------
 .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ef717f6/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 c2a8850..f3e823a 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -40,7 +40,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
         private static readonly IDictionary<string, IgnoreReason> IgnoredScenarios = new Dictionary<string, IgnoreReason> {
             { "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
             { "g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
-            { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation }
+            { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation } // TINKERPOP-1907
         };
         
         private static class Keywords


[09/39] tinkerpop git commit: Updating kitchen sink graph

Posted by fl...@apache.org.
Updating kitchen sink graph


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

Branch: refs/heads/TINKERPOP-1897
Commit: febe0ac8ecdf1828233017864b629a644c7260a8
Parents: 5467a33
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Sun Feb 25 12:22:39 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 12:22:39 2018 -0500

----------------------------------------------------------------------
 data/tinkerpop-sink-typed.json      |   2 ++
 data/tinkerpop-sink-v2d0-typed.json |   2 ++
 data/tinkerpop-sink-v2d0.json       |   2 ++
 data/tinkerpop-sink.json            |   2 ++
 data/tinkerpop-sink.kryo            | Bin 76 -> 291 bytes
 5 files changed, 8 insertions(+)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/febe0ac8/data/tinkerpop-sink-v2d0-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0-typed.json b/data/tinkerpop-sink-v2d0-typed.json
index df22167..ecb5c52 100644
--- a/data/tinkerpop-sink-v2d0-typed.json
+++ b/data/tinkerpop-sink-v2d0-typed.json
@@ -1 +1,3 @@
 {"id":{"@type":"g:Int64","@value":0},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int64","@value":2},"outV":{"@type":"g:Int64","@value":0}}]},"outE":{"self":[{"id":{"@type":"g:Int64","@value":2},"inV":{"@type":"g:Int64","@value":0}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"loop"}]}}
+{"id":{"@type":"g:Int64","@value":1},"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int64","@value":6},"outV":{"@type":"g:Int64","@value":1}}]},"outE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int64","@value":5},"inV":{"@type":"g:Int64","@value":2}},{"id":{"@type":"g:Int64","@value":6},"inV":{"@type":"g:Int64","@value":1}}]},"properties":{"propertyin":[{"id":{"@type":"g:Int64","@value":3},"value":"a"}]}}
+{"id":{"@type":"g:Int64","@value":2},"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int64","@value":5},"outV":{"@type":"g:Int64","@value":1}}]},"properties":{"propertyin":[{"id":{"@type":"g:Int64","@value":4},"value":"b"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/febe0ac8/data/tinkerpop-sink-v2d0.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0.json b/data/tinkerpop-sink-v2d0.json
index 39496ba..1eade99 100644
--- a/data/tinkerpop-sink-v2d0.json
+++ b/data/tinkerpop-sink-v2d0.json
@@ -1 +1,3 @@
 {"id":0,"label":"loops","inE":{"self":[{"id":2,"outV":0}]},"outE":{"self":[{"id":2,"inV":0}]},"properties":{"name":[{"id":1,"value":"loop"}]}}
+{"id":1,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":5,"outV":1}]},"outE":{"msg_pass_test_edge":[{"id":4,"inV":2},{"id":5,"inV":1}]},"properties":{"propertyin":[{"id":0,"value":"a"}]}}
+{"id":2,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":1}]},"properties":{"propertyin":[{"id":3,"value":"b"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/febe0ac8/data/tinkerpop-sink.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.json b/data/tinkerpop-sink.json
index 39496ba..1eade99 100644
--- a/data/tinkerpop-sink.json
+++ b/data/tinkerpop-sink.json
@@ -1 +1,3 @@
 {"id":0,"label":"loops","inE":{"self":[{"id":2,"outV":0}]},"outE":{"self":[{"id":2,"inV":0}]},"properties":{"name":[{"id":1,"value":"loop"}]}}
+{"id":1,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":5,"outV":1}]},"outE":{"msg_pass_test_edge":[{"id":4,"inV":2},{"id":5,"inV":1}]},"properties":{"propertyin":[{"id":0,"value":"a"}]}}
+{"id":2,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":1}]},"properties":{"propertyin":[{"id":3,"value":"b"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/febe0ac8/data/tinkerpop-sink.kryo
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.kryo b/data/tinkerpop-sink.kryo
index 9a26e15..5f5da45 100644
Binary files a/data/tinkerpop-sink.kryo and b/data/tinkerpop-sink.kryo differ


[15/39] tinkerpop git commit: Added Gremlin's Anatomy tutorial

Posted by fl...@apache.org.
Added Gremlin's Anatomy tutorial

I might add more to this, but wanted the basic component parts of Gremlin documented. Seemed best to make this part of a standalone document as it didn't quite fit that well in the reference documentation, as it already has a way of introducing those topics and I didn't want to disturb that too much. CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 3aa9e70ef7e50d81886954e398b4355524f7b576
Parents: 1a857da
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Feb 28 14:14:01 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Feb 28 14:14:01 2018 -0500

----------------------------------------------------------------------
 docs/src/index.asciidoc                         |   3 +
 .../tutorials/gremlins-anatomy/index.asciidoc   | 189 +++++++++++++++++++
 docs/static/images/gremlin-anatomy-filter.png   | Bin 0 -> 168854 bytes
 docs/static/images/gremlin-anatomy-group.png    | Bin 0 -> 62410 bytes
 docs/static/images/gremlin-anatomy-navigate.png | Bin 0 -> 60514 bytes
 docs/static/images/gremlin-anatomy.png          | Bin 0 -> 87212 bytes
 pom.xml                                         |  23 +++
 7 files changed, 215 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa9e70e/docs/src/index.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/index.asciidoc b/docs/src/index.asciidoc
index 40fbb8c..5cc3dd5 100644
--- a/docs/src/index.asciidoc
+++ b/docs/src/index.asciidoc
@@ -57,6 +57,8 @@ Note the "+" following the link in each table entry - it forces an asciidoc line
 A gentle introduction to TinkerPop and the Gremlin traversal language that is divided into five, ten and fifteen minute tutorial blocks.
 |image:gremlin-dashboard.png[] |link:http://tinkerpop.apache.org/docs/x.y.z/tutorials/the-gremlin-console/[The Gremlin Console] +
 Provides a detailed look at The Gremlin Console and how it can be used when working with TinkerPop.
+^|image:gremlin-anatomy.png[width=125] |link:http://tinkerpop.apache.org/docs/x.y.z/gremlins-anatomy/[Gremlin's Anatomy]
+Identifies and explains the component parts of a Gremlin traversal.
 ^|image:gremlin-chef.png[width=125] |link:http://tinkerpop.apache.org/docs/x.y.z/recipes/[Gremlin Recipes]
 A collection of best practices and common traversal patterns for Gremlin.
 ^|image:gremlin-house-of-mirrors-cropped.png[width=200] |link:http://tinkerpop.apache.org/docs/x.y.z/tutorials/gremlin-language-variants/[Gremlin Language Variants]
@@ -77,6 +79,7 @@ A getting started guide for users of graph databases and the Gremlin query langu
 
 Unless otherwise noted, all "publications" are externally managed:
 
+* Mallette, S.P., link:https://www.slideshare.net/StephenMallette/gremlins-anatomy-88713465["Gremlin's Anatomy,"] DataStax User Group, February 2018.
 * Rodriguez, M.A., link:https://www.slideshare.net/slidarko/gremlin-1013-on-your-fm-dial["Gremlin 101.3 On Your FM Dial,"] DataStax Support and Engineering Summits, Carmel California and Las Vegas Nevada, May 2017.
 * Rodriguez, M.A., link:https://www.datastax.com/2017/03/graphoendodonticology["Graphoendodonticology,"] DataStax Engineering Blog, March 2017
 * Rodriguez, M.A., link:http://www.datastax.com/dev/blog/gremlins-time-machine["Gremlin's Time Machine,"] DataStax Engineering Blog, September 2016.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa9e70e/docs/src/tutorials/gremlins-anatomy/index.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/tutorials/gremlins-anatomy/index.asciidoc b/docs/src/tutorials/gremlins-anatomy/index.asciidoc
new file mode 100644
index 0000000..b36d881
--- /dev/null
+++ b/docs/src/tutorials/gremlins-anatomy/index.asciidoc
@@ -0,0 +1,189 @@
+////
+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.
+////
+
+image::apache-tinkerpop-logo.png[width=500,link="http://tinkerpop.apache.org"]
+
+*x.y.z*
+
+== Gremlin's Anatomy
+
+image:gremlin-anatomy.png[width=160,float=left]The Gremlin language is typically described by the individual
+link:http://tinkerpop.apache.org/docs/x.y.z/reference/#graph-traversal-steps[steps] that make up the language, but it
+is worth taking a look at the component parts of Gremlin that make a traversal work. Understanding these component
+parts make it possible to discuss and understand more advanced Gremlin topics, such as
+link:http://tinkerpop.apache.org/docs/x.y.z/reference/#dsl[Gremlin DSL] development and Gremlin debugging techniques.
+Ultimately, Gremlin's Anatomy provides a foundational understanding for helping to read and follow Gremlin of arbitrary
+complexity, which will lead you to more easily identify traversal patterns and thus enable you to craft better
+traversals of your own.
+
+NOTE: This tutorial is based on Stephen Mallette's presentation on Gremlin's Anatomy - the slides for that presentation
+can be found link:https://www.slideshare.net/StephenMallette/gremlins-anatomy-88713465[here].
+
+The component parts of a Gremlin traversal can be all be identified from the following code:
+
+[gremlin-groovy,modern]
+----
+g.V().
+  has('person', 'name', within('marko', 'josh')).
+  outE().
+  groupCount().
+    by(label()).next()
+----
+
+In plain English, this traversal requests an out-edge label distribution for "marko" and "josh". The following
+sections, will pick this traversal apart to show each component part and discuss it in some detail.
+
+=== GraphTraversalSource
+
+_`g.V()`_ - You are likely well acquainted with this bit of Gremlin. It is in virtually every traversal you read in
+documentation, blog posts, or examples and is likely the start of most every traversal you will write in your own
+applications.
+
+[gremlin-groovy,modern]
+----
+g.V()
+----
+
+While it is well known that `g.V()` returns a list of all the vertices in the graph, the technical underpinnings of
+this ubiquitous statement may be less so well established. First of all, the `g` is a variable. It could have been
+`x`, `y` or anything else, but by convention, you will normally see `g`. This `g` is a `GraphTraversalSource`
+and it spawns `GraphTraversal` instances with start steps. `V()` is one such start step, but there are others like
+`E` for getting all the edges in the graph. The important part is that these start steps begin the traversal.
+
+In addition to exposing the available start steps, the `GraphTraversalSource` also holds configuration options (perhaps
+think of them as pre-instructions for Gremlin) to be used for the traversal execution. The methods that allow you to
+set these configurations are prefixed by the word "with". Here are a few examples to consider:
+
+[source,groovy]
+----
+g.withStrategies(SubgraphStrategy.build().vertices(hasLabel('person')).create()).  <1>
+  V().has('name','marko').out().values('name')
+g.withSack(1.0f).V().sack()                                                        <2>
+g.withComputer().V().pageRank()                                                    <3>
+----
+
+<1> Define a link:http://tinkerpop.apache.org/docs/x.y.z/reference/#traversalstrategy[strategy] for the traversal
+<2> Define an initial link:http://tinkerpop.apache.org/docs/x.y.z/reference/#sack-step[sack] value
+<3> Define a link:http://tinkerpop.apache.org/docs/x.y.z/reference/#graphcomputer[GraphComputer] to use in conjunction
+with a `VertexProgram` for OLAP based traversals - for example, see
+link:http://tinkerpop.apache.org/docs/x.y.z/reference/#sparkgraphcomputer[Spark]
+
+IMPORTANT: How you instantiate the `GraphTraversalSource` is highly depending on the graph database implementation that
+you are using. Typically, they are instantiated from a `Graph` instance with the `traversal()` method, but some graph
+databases, ones that are managed or "server-oriented", will simply give you a `g` to work with. Consult the
+documentation of your graph database to determine how the `GraphTraversalSource` is constructed.
+
+=== GraphTraversal
+
+As you now know, a `GraphTraversal` is spawned from the start steps of a `GraphTraversalSource`. The `GraphTraversal`
+contain the steps that make up the Gremlin language. Each step returns a `GraphTraversal` so that the steps can be
+chained together in a fluent fashion. Revisiting the example from above:
+
+[gremlin-groovy,modern]
+----
+g.V().
+  has('person', 'name', within('marko', 'josh')).
+  outE().
+  groupCount().
+    by(label()).next()
+----
+
+the `GraphTraversal` components are represented by the `has()`, `outE()` and `groupCount()` steps. The key to reading
+this Gremlin is to realize that the output of one step becomes the input to the next. Therefore, if you consider the
+start step of `V()` and realize that it returns vertices in the graph, the input to `has()` is going to be a `Vertex`.
+The `has()` step is a filtering step and will take the vertices that are passed into it and block any that do not
+meet the criteria it has specified. In this case, that means that the output of the `has()` step is vertices that have
+the label of "person" and the "name" property value of "josh" or "marko". 
+
+image::gremlin-anatomy-filter.png[width=600]
+
+Given that you know the output of `has()`, you then also know the input to `outE()`. Recall that `outE()` is a
+navigational step in that it enables movement about the graph. In this case, `outE()` tells Gremlin to take the
+incoming "marko" and "josh" vertices and traverse their outgoing edges as the output.
+
+image::gremlin-anatomy-navigate.png[width=600]
+
+Now that it is clear that the output of `outE()` is an edge, you are aware of the input to `groupCount()` - edges.
+The `groupCount()` step requires a bit more discussion of other Gremlin components and will thus be examined in the
+following sections. At this point, it is simply worth noting that the output of `groupCount()` is a `Map` and if a
+Gremlin step followed it, the input to that step would therefore be a `Map`.
+
+The previous paragraph ended with an interesting point, in that it implied that there were no "steps" following
+`groupCount()`. Clearly, `groupCount()` is not the last function to be called in that Gremlin statement so you might
+wonder what the remaining bits are, specifically: `by(label()).next()`. The following sections will discuss those
+remaining pieces.
+
+=== Step Modulators
+
+It's been explained in several ways now that the output of one step becomes the input to the next, so surely the `Map`
+produced by `groupCount()` will feed the `by()` step. As alluded to at the end of the previous section, that
+expectation is not correct. Technically, `by()` is not a step. It is a step modulator. A step modulator modifies the
+behavior of the previous step. In this case, it is telling Gremlin how the key for the `groupCount()` should be
+determined. Or said another way in the context of the example, it answers this question: What do you want the "marko"
+and "josh" edges to be grouped by?
+
+=== Anonymous Traversals
+
+In this case, the answer to that question is provided by the anonymous traversal `label()` as the argument to the step
+modulator `by()`. An anonymous traversal is a traversal that is not bound to a `GraphTraversalSource`. It is
+constructed from the double underscore class (i.e. `__`), which exposes static functions to spawn the anonymous
+traversals. Typically, the double underscore is not visible in examples and code as by convention, TinkerPop typically
+recommends that the functions of that class be exposed in a standalone fashion. In Java, that would mean
+link:https://docs.oracle.com/javase/7/docs/technotes/guides/language/static-import.html[statically importing] the
+methods, thus allowing `__.label()` to be referred to simply as `label()`.
+
+NOTE: In Java, the full package name for the `__` is `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph`.
+
+In the context of the example traversal, you can imagine Gremlin getting to the `groupCount()` step with a "marko" or
+"josh" outgoing edge, checking the `by()` modulator to see "what to group by", and then putting edges into buckets
+by their `label()` and incrementing a counter on each bucket.
+
+image::gremlin-anatomy-group.png[width=600]
+
+The output is thus an edge label distribution for the outgoing edges of the "marko" and "josh" vertices.
+
+=== Terminal Step
+
+Terminal steps are different from the `GraphTraversal` steps in that terminal steps do not return a `GraphTraversal`
+instance, but instead return the result of the `GraphTraversal`. In the case of the example, `next()` is the terminal
+step and it returns the `Map` constructed in the `groupCount()` step. Other examples of terminal steps include:
+`hasNext()`, `toList()`, and `iterate()`. Without terminal steps, you don't have a result. You only have a
+`GraphTraversal`
+
+NOTE: You can read more about traversal iteration in the
+link:http://tinkerpop.apache.org/docs/x.y.z/tutorials/the-gremlin-console/#result-iteration[Gremlin Console Tutorial].
+
+=== Expressions
+
+It is worth backing up a moment to re-examine the `has()` step. Now that you have come to understand anonymous
+traversals, it would be reasonable to make the assumption that the `within()` argument to `has()` falls into that
+category. It does not. The `within()` option is not a step either, but instead, something called an expression. An
+expression typically refers to anything not mentioned in the previously described Gremlin component categories that
+can make Gremlin easier to read, write and maintain. Common examples of expressions would be string tokens, enum
+values, and classes with static methods that might spawn certain required values.
+
+A concrete example would be the class from which `within()` is called - `P`. The `P` class spawns `Predicate` values
+that can be used as arguments for certain traversals teps. Another example would be the `T` enum which provides a type
+safe way to reference `id` and `label` keys in a traversal. Like anonymous traversals, these classes are usually
+statically imported so that instead of having to write `P.within()`, you can simply write `within()`, as shown in the
+example.
+
+== Conclusion
+
+There's much more to a traversal than just a bunch of steps. Gremlin's Anatomy puts names to each of these component
+parts of a traversal and explains how they connect together. Understanding these components part should help provide
+more insight into how Gremlin works and help you grow in your Gremlin abilities.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa9e70e/docs/static/images/gremlin-anatomy-filter.png
----------------------------------------------------------------------
diff --git a/docs/static/images/gremlin-anatomy-filter.png b/docs/static/images/gremlin-anatomy-filter.png
new file mode 100755
index 0000000..317bb8c
Binary files /dev/null and b/docs/static/images/gremlin-anatomy-filter.png differ

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa9e70e/docs/static/images/gremlin-anatomy-group.png
----------------------------------------------------------------------
diff --git a/docs/static/images/gremlin-anatomy-group.png b/docs/static/images/gremlin-anatomy-group.png
new file mode 100755
index 0000000..0039c02
Binary files /dev/null and b/docs/static/images/gremlin-anatomy-group.png differ

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa9e70e/docs/static/images/gremlin-anatomy-navigate.png
----------------------------------------------------------------------
diff --git a/docs/static/images/gremlin-anatomy-navigate.png b/docs/static/images/gremlin-anatomy-navigate.png
new file mode 100755
index 0000000..152e40e
Binary files /dev/null and b/docs/static/images/gremlin-anatomy-navigate.png differ

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa9e70e/docs/static/images/gremlin-anatomy.png
----------------------------------------------------------------------
diff --git a/docs/static/images/gremlin-anatomy.png b/docs/static/images/gremlin-anatomy.png
new file mode 100755
index 0000000..d83ebf7
Binary files /dev/null and b/docs/static/images/gremlin-anatomy.png differ

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3aa9e70e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 259f16a..f6ff536 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1036,6 +1036,29 @@ limitations under the License.
                                     </attributes>
                                 </configuration>
                             </execution>
+                            <execution>
+                                <id>tutorial-gremlins-anatomy</id>
+                                <phase>generate-resources</phase>
+                                <goals>
+                                    <goal>process-asciidoc</goal>
+                                </goals>
+                                <configuration>
+                                    <sourceDirectory>${asciidoc.input.dir}/tutorials/gremlins-anatomy</sourceDirectory>
+                                    <sourceDocumentName>index.asciidoc</sourceDocumentName>
+                                    <outputDirectory>${htmlsingle.output.dir}/tutorials/gremlins-anatomy
+                                    </outputDirectory>
+                                    <backend>html5</backend>
+                                    <doctype>article</doctype>
+                                    <attributes>
+                                        <imagesdir>../../images</imagesdir>
+                                        <encoding>UTF-8</encoding>
+                                        <stylesdir>${asciidoctor.style.dir}</stylesdir>
+                                        <stylesheet>tinkerpop.css</stylesheet>
+                                        <source-highlighter>coderay</source-highlighter>
+                                        <basedir>${project.basedir}</basedir>
+                                    </attributes>
+                                </configuration>
+                            </execution>
                         </executions>
                     </plugin>
                 </plugins>


[19/39] tinkerpop git commit: Removed more ignored GLV tests for .NET

Posted by fl...@apache.org.
Removed more ignored GLV tests for .NET

Not sure why these suddenly pass. Makes me wonder if they were ever really failing in the first place. CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 85b733879abd7836f400ecff969eaee0a5b517f2
Parents: 2c96d42
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 09:06:26 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 09:07:01 2018 -0500

----------------------------------------------------------------------
 .../Gherkin/GherkinTestRunner.cs                            | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/85b73387/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 402a910..7fa9716 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -38,12 +38,8 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
     public class GherkinTestRunner
     {
         private static readonly IDictionary<string, IgnoreReason> IgnoredScenarios = new Dictionary<string, IgnoreReason> {
-            { "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_whereXa_gtXbX_orXeqXbXXX_byXageX_byXweightX_byXweightX_selectXa_cX_byXnameX", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_inXcreatedX_asXdX_whereXa_ltXbX_orXgtXcXX_andXneqXdXXX_byXageX_byXweightX_byXinXcreatedX_valuesXageX_minX_selectXa_c_dX", IgnoreReason.NeedsFurtherInvestigation },
+            { "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
+            { "g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
             { "g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
             { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
             { "g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
@@ -52,7 +48,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             { "g_V_outE_weight_groupCount_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_foo_injectX9999999999X_min", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_localXbothE_weight_foldX_order_byXsumXlocalX_decrX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_decrX", IgnoreReason.NeedsFurtherInvestigation }
         };
         


[35/39] tinkerpop git commit: Don't build docker images in docker build TINKERPOP-1897

Posted by fl...@apache.org.
Don't build docker images in docker build TINKERPOP-1897


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

Branch: refs/heads/TINKERPOP-1897
Commit: 653fb3c0b743bbdfe1d209f2e6889305a6612cd2
Parents: e0d025c
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Mon Feb 26 21:17:46 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Mon Mar 5 19:53:58 2018 +0100

----------------------------------------------------------------------
 docker/scripts/build.sh | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/653fb3c0/docker/scripts/build.sh
----------------------------------------------------------------------
diff --git a/docker/scripts/build.sh b/docker/scripts/build.sh
index 5ef74fc..3d8f0d3 100755
--- a/docker/scripts/build.sh
+++ b/docker/scripts/build.sh
@@ -67,6 +67,9 @@ touch gremlin-python/.glv
 touch gremlin-dotnet/src/.glv
 touch gremlin-dotnet/test/.glv
 
+rm gremlin-console/.docker
+rm gremlin-server/.docker
+
 # use a custom maven settings.xml
 if [ -r "settings.xml" ]; then
   echo "Copying settings.xml"


[39/39] tinkerpop git commit: Add description about Docker credentials TINKERPOP-1897

Posted by fl...@apache.org.
Add description about Docker credentials TINKERPOP-1897


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

Branch: refs/heads/TINKERPOP-1897
Commit: a7cb12b6ec12d1c0b7f2db6ed356c65e5f4c7921
Parents: 77bf060
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Mon Mar 5 19:52:28 2018 +0100
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Mon Mar 5 19:53:59 2018 +0100

----------------------------------------------------------------------
 docs/src/dev/developer/development-environment.asciidoc | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/a7cb12b6/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 c0d5389..2bd39e0 100644
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@ -195,6 +195,11 @@ To deploy `gremlin-javascript` on the link:https://www.npmjs.com[npm registry],
 authentication information on the ~/.npmrc file. The easiest way to do that is to use the `npm adduser` command. This
 must be done only once, as the auth token doesn't have an expiration date and it's stored on your file system.
 
+Deploying Docker images to link:https://hub.docker.com/[Docker Hub] requires authentication information in the
+`~/.docker/config.json` file. This information can simply be added with the `docker login` command which will ask for
+credentials. This must be done only once. Afterwards, `docker push` can be used to push images to Docker Hub which will
+be done automatically on `mvn deploy` or it can be triggered manually with `mvn dockerfile:push`.
+
 [[building-testing]]
 == Building and Testing
 


[23/39] tinkerpop git commit: Fixed GLV types in tests that were failing for .NET CTR

Posted by fl...@apache.org.
Fixed GLV types in tests that were failing for .NET CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: c97251297e47a3dafb3541d886e14e4cd28cc5f5
Parents: bbc96ee
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 10:16:08 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 10:16:45 2018 -0500

----------------------------------------------------------------------
 .../Gherkin/GherkinTestRunner.cs                    |  4 +---
 gremlin-test/features/map/Select.feature            | 16 ++++++++--------
 2 files changed, 9 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c9725129/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 3b39cd3..cc2b540 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -41,9 +41,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             { "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
             { "g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.NeedsFurtherInvestigation }, // TINKERPOP-1859??
             { "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_outE_weight_groupCount_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation }
+            { "g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX", IgnoreReason.NeedsFurtherInvestigation }
         };
         
         private static class Keywords

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c9725129/gremlin-test/features/map/Select.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Select.feature b/gremlin-test/features/map/Select.feature
index d77e21f..35d9322 100644
--- a/gremlin-test/features/map/Select.feature
+++ b/gremlin-test/features/map/Select.feature
@@ -347,10 +347,10 @@ Feature: Step - select()
     When iterated to list
     Then the result should be unordered
       | result |
-      | d[0.5].f |
-      | d[1.0].f |
-      | d[0.4].f |
-      | d[0.2].f |
+      | d[0.5].d |
+      | d[1.0].d |
+      | d[0.4].d |
+      | d[0.2].d |
 
   Scenario: g_V_hasLabelXsoftwareX_asXnameX_asXlanguageX_asXcreatorsX_selectXname_language_creatorsX_byXnameX_byXlangX_byXinXcreatedX_name_fold_orderXlocalXX
     Given the modern graph
@@ -374,10 +374,10 @@ Feature: Step - select()
     When iterated to list
     Then the result should be unordered
       | result |
-      | d[0.5].f |
-      | d[1.0].f |
-      | d[0.4].f |
-      | d[0.2].f |
+      | d[0.5].d |
+      | d[1.0].d |
+      | d[0.4].d |
+      | d[0.2].d |
 
   Scenario: g_V_outE_weight_groupCount_unfold_selectXvaluesX_unfold
     Given the modern graph


[17/39] tinkerpop git commit: Fixed a GLV test definition.

Posted by fl...@apache.org.
Fixed a GLV test definition.

This allowed some ignored tests to pass CTR


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

Branch: refs/heads/TINKERPOP-1897
Commit: 6cfdfa93787ff7620ac73dcda70dc8e11be519cc
Parents: d520516
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 08:35:57 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 08:35:57 2018 -0500

----------------------------------------------------------------------
 .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs  | 2 --
 gremlin-test/features/map/Match.feature                            | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6cfdfa93/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 69af86f..627570c 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -39,7 +39,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
     {
         private static readonly IDictionary<string, IgnoreReason> IgnoredScenarios = new Dictionary<string, IgnoreReason> {
             { "g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_hasIdXwithinXemptyXX_count", IgnoreReason.NeedsFurtherInvestigation },
             { "g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX", IgnoreReason.NeedsFurtherInvestigation },
@@ -53,7 +52,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             { "g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_outE_weight_groupCount_selectXkeysX_unfold", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_asXaX_out_asXbX_matchXa_out_count_c__b_in_count_cX", IgnoreReason.NeedsFurtherInvestigation },
-            { "g_V_matchXa_knows_b__andXa_created_c__b_created_c__andXb_created_count_d__a_knows_count_dXXX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_foo_injectX9999999999X_min", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX", IgnoreReason.NeedsFurtherInvestigation },
             { "g_V_localXbothE_weight_foldX_order_byXsumXlocalX_decrX", IgnoreReason.NeedsFurtherInvestigation },

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6cfdfa93/gremlin-test/features/map/Match.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Match.feature b/gremlin-test/features/map/Match.feature
index 006692a..e44d363 100644
--- a/gremlin-test/features/map/Match.feature
+++ b/gremlin-test/features/map/Match.feature
@@ -230,7 +230,7 @@ Feature: Step - match()
     When iterated to list
     Then the result should be unordered
       | result |
-      | m[{"a":"v[marko]","b":"v[josh]","c":"v[lop]","d":2}] |
+      | m[{"a":"v[marko]","b":"v[josh]","c":"v[lop]","d":"d[2].l"}] |
 
   Scenario: g_V_matchXa_whereXa_neqXcXX__a_created_b__orXa_knows_vadas__a_0knows_and_a_hasXlabel_personXX__b_0created_c__b_0created_count_isXgtX1XXX_selectXa_b_cX_byXidX
     Given the modern graph


[04/39] tinkerpop git commit: TinkerMessenger proper handling of Direction.BOTH

Posted by fl...@apache.org.
TinkerMessenger proper handling of Direction.BOTH


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

Branch: refs/heads/TINKERPOP-1897
Commit: f02ea338a8d039c50896f7c65ca57a695975fc43
Parents: 072f112
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Thu Jan 4 13:27:44 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 10:43:57 2018 -0500

----------------------------------------------------------------------
 .../tinkergraph/process/computer/TinkerMessenger.java    | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f02ea338/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessenger.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessenger.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessenger.java
index 5a0f478..3e49c34 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessenger.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessenger.java
@@ -68,7 +68,16 @@ public final class TinkerMessenger<M> implements Messenger<M> {
                 final Direction direction = TinkerMessenger.getDirection(incidentTraversal);
                 final Edge[] edge = new Edge[1]; // simulates storage side-effects available in Gremlin, but not Java8 streams
                 multiIterator.addIterator(StreamSupport.stream(Spliterators.spliteratorUnknownSize(VertexProgramHelper.reverse(incidentTraversal.asAdmin()), Spliterator.IMMUTABLE | Spliterator.SIZED), false)
-                        .map(e -> this.messageBoard.receiveMessages.get(messageScope).get((edge[0] = e).vertices(direction).next()))
+                        .map((Edge e) -> {
+                            edge[0] = e;
+                            Vertex vv;
+                            if (direction.equals(Direction.IN) || direction.equals(Direction.OUT)) {
+                                vv = e.vertices(direction).next();
+                            } else {
+                                vv = e.outVertex() == this.vertex ? e.inVertex() : e.outVertex();
+                            }
+                            return this.messageBoard.receiveMessages.get(messageScope).get(vv);
+                        })
                         .filter(q -> null != q)
                         .flatMap(Queue::stream)
                         .map(message -> localMessageScope.getEdgeFunction().apply(message, edge[0]))


[27/39] tinkerpop git commit: TINKERPOP-1894 Fixed deserialization of P.not() for GraphSON 2.x

Posted by fl...@apache.org.
TINKERPOP-1894 Fixed deserialization of P.not() for GraphSON 2.x

javascript and python GLVs seemed to respond well to this fix, but .NET did not. The related tests are still failing.


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

Branch: refs/heads/TINKERPOP-1897
Commit: 2350cbe04b5a4ed3fdca389b8a345017a4bc7d0a
Parents: aaf5146
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Mar 1 12:04:42 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Mar 1 12:06:43 2018 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                       |  1 +
 .../gremlin/structure/io/graphson/GraphSONTokens.java    |  1 +
 .../structure/io/graphson/TraversalSerializersV2d0.java  |  2 ++
 .../ser/GraphSONMessageSerializerGremlinV2d0Test.java    | 11 +++++++++++
 .../gremlin-javascript/test/cucumber/feature-steps.js    |  4 ----
 gremlin-python/src/main/jython/radish/feature_steps.py   |  5 -----
 6 files changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2350cbe0/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 92e1d9e..a24b1fb 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Added `checkAdjacentVertices` option to `SubgraphStrategy`.
 * 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.
 * 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.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2350cbe0/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java
index 9f0648a..7ec004a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTokens.java
@@ -72,6 +72,7 @@ public final class GraphSONTokens {
     public static final String ARGUMENTS = "arguments";
     public static final String PREDICATE = "predicate";
     public static final String AND = "and";
+    public static final String NOT = "not";
     public static final String OR = "or";
     public static final String SOURCE = "source";
     public static final String STEP = "step";

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2350cbe0/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
index f399cfa..a696280 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2d0.java
@@ -329,6 +329,8 @@ final class TraversalSerializersV2d0 {
 
             if (predicate.equals(GraphSONTokens.AND) || predicate.equals(GraphSONTokens.OR)) {
                 return predicate.equals(GraphSONTokens.AND) ? new AndP((List<P>) value) : new OrP((List<P>) value);
+            } else if (predicate.equals(GraphSONTokens.NOT) && value instanceof P) {
+                return P.not((P<?>) value);
             } else {
                 try {
                     if (value instanceof Collection) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2350cbe0/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
index 1f7efda..fb9bfe2 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
@@ -22,6 +22,7 @@ import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBufAllocator;
 import io.netty.buffer.UnpooledByteBufAllocator;
 import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
+import org.apache.tinkerpop.gremlin.driver.message.RequestMessage;
 import org.apache.tinkerpop.gremlin.driver.message.ResponseMessage;
 import org.apache.tinkerpop.gremlin.driver.message.ResponseStatusCode;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -329,6 +330,16 @@ public class GraphSONMessageSerializerGremlinV2d0Test {
         assertEquals(ResponseStatusCode.SUCCESS.getValue(), deserialized.getStatus().getCode().getValue());
         assertEquals("worked", deserialized.getStatus().getMessage());
     }
+
+    @Test
+    public void shouldDeserializeNotPredicate() throws Exception {
+        final String requestMessageWithP = "{\"requestId\":{\"@type\":\"g:UUID\",\"@value\":\"0397b9c0-ffab-470e-a6a8-644fc80c01d6\"},\"op\":\"bytecode\",\"processor\":\"traversal\",\"args\":{\"gremlin\":{\"@type\":\"g:Bytecode\",\"@value\":{\"step\":[[\"V\"],[\"hasLabel\",\"person\"],[\"has\",\"age\",{\"@type\":\"g:P\",\"@value\":{\"predicate\":\"not\",\"value\":{\"@type\":\"g:P\",\"@value\":{\"predicate\":\"lte\",\"value\":{\"@type\":\"g:Int32\",\"@value\":10}}}}}]]}},\"aliases\":{\"g\":\"gmodern\"}}}";
+        final ByteBuf bb = allocator.buffer(requestMessageWithP.length());
+        bb.writeBytes(requestMessageWithP.getBytes());
+        final RequestMessage m = serializer.deserializeRequest(bb);
+        assertEquals("bytecode", m.getOp());
+        assertNotNull(m.getArgs());
+    }
     
     private void assertCommon(final ResponseMessage response) {
         assertEquals(requestId, response.getRequestId());

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2350cbe0/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
index 2bb6ef0..c4eaebc 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
@@ -61,10 +61,6 @@ const ignoreReason = {
 const ignoredScenarios = {
   // An associative array containing the scenario name as key, for example:
   // 'g_V_branchXlabel_eq_person': new IgnoreError(ignoreReason.lambdaNotSupported),
-  'g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name': new IgnoreError(ignoreReason.needsFurtherInvestigation),
-  'g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX': new IgnoreError(ignoreReason.needsFurtherInvestigation),
-  'g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX': new IgnoreError(ignoreReason.needsFurtherInvestigation),
-  'g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX': new IgnoreError(ignoreReason.needsFurtherInvestigation),
 };
 
 defineSupportCode(function(methods) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2350cbe0/gremlin-python/src/main/jython/radish/feature_steps.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/radish/feature_steps.py b/gremlin-python/src/main/jython/radish/feature_steps.py
index 3ba88a2..5cf9059 100644
--- a/gremlin-python/src/main/jython/radish/feature_steps.py
+++ b/gremlin-python/src/main/jython/radish/feature_steps.py
@@ -44,11 +44,6 @@ tail = __.tail
 
 ignores = [
     "g.V(v1Id).out().inject(v2).values(\"name\")",  # bug in attachment won't connect v2
-    # TINKERPOP-1859 - for the following...seems to be related to P.not processing
-    "g.V().hasLabel(\"person\").has(\"age\", P.not(P.lte(d10).and(P.not(P.between(d11, d20)))).and(P.lt(d29).or(P.eq(d35)))).values(\"name\")",
-    "g.V(v1Id).out().aggregate(\"x\").out().where(P.not(P.within(\"x\")))",
-    "g.V().as(\"a\").out().as(\"b\").where(__.and(__.as(\"a\").out(\"knows\").as(\"b\"), __.or(__.as(\"b\").out(\"created\").has(\"name\", \"ripple\"), __.as(\"b\").in(\"knows\").count().is(P.not(P.eq(0)))))).select(\"a\", \"b\")",
-    "g.V().as(\"a\").out(\"created\").as(\"b\").in(\"created\").as(\"c\").both(\"knows\").both(\"knows\").as(\"d\").where(\"c\", P.not(P.eq(\"a\").or(P.eq(\"d\")))).select(\"a\", \"b\", \"c\", \"d\")"
            ]
 
 


[11/39] tinkerpop git commit: Revert "Updating kitchen sink graph"

Posted by fl...@apache.org.
Revert "Updating kitchen sink graph"

This reverts commit febe0ac8ecdf1828233017864b629a644c7260a8.


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

Branch: refs/heads/TINKERPOP-1897
Commit: b0b124b84c597079b271adb0dec2044f0c2ec9b3
Parents: f03c4df
Author: Graff, Philip B <Ph...@jhuapl.edu>
Authored: Sun Feb 25 16:15:40 2018 -0500
Committer: Graff, Philip B <Ph...@jhuapl.edu>
Committed: Sun Feb 25 16:15:40 2018 -0500

----------------------------------------------------------------------
 data/tinkerpop-sink-typed.json      |   2 --
 data/tinkerpop-sink-v2d0-typed.json |   2 --
 data/tinkerpop-sink-v2d0.json       |   2 --
 data/tinkerpop-sink.json            |   2 --
 data/tinkerpop-sink.kryo            | Bin 291 -> 76 bytes
 5 files changed, 8 deletions(-)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b0b124b8/data/tinkerpop-sink-v2d0-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0-typed.json b/data/tinkerpop-sink-v2d0-typed.json
index ecb5c52..df22167 100644
--- a/data/tinkerpop-sink-v2d0-typed.json
+++ b/data/tinkerpop-sink-v2d0-typed.json
@@ -1,3 +1 @@
 {"id":{"@type":"g:Int64","@value":0},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int64","@value":2},"outV":{"@type":"g:Int64","@value":0}}]},"outE":{"self":[{"id":{"@type":"g:Int64","@value":2},"inV":{"@type":"g:Int64","@value":0}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"loop"}]}}
-{"id":{"@type":"g:Int64","@value":1},"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int64","@value":6},"outV":{"@type":"g:Int64","@value":1}}]},"outE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int64","@value":5},"inV":{"@type":"g:Int64","@value":2}},{"id":{"@type":"g:Int64","@value":6},"inV":{"@type":"g:Int64","@value":1}}]},"properties":{"propertyin":[{"id":{"@type":"g:Int64","@value":3},"value":"a"}]}}
-{"id":{"@type":"g:Int64","@value":2},"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":{"@type":"g:Int64","@value":5},"outV":{"@type":"g:Int64","@value":1}}]},"properties":{"propertyin":[{"id":{"@type":"g:Int64","@value":4},"value":"b"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b0b124b8/data/tinkerpop-sink-v2d0.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0.json b/data/tinkerpop-sink-v2d0.json
index 1eade99..39496ba 100644
--- a/data/tinkerpop-sink-v2d0.json
+++ b/data/tinkerpop-sink-v2d0.json
@@ -1,3 +1 @@
 {"id":0,"label":"loops","inE":{"self":[{"id":2,"outV":0}]},"outE":{"self":[{"id":2,"inV":0}]},"properties":{"name":[{"id":1,"value":"loop"}]}}
-{"id":1,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":5,"outV":1}]},"outE":{"msg_pass_test_edge":[{"id":4,"inV":2},{"id":5,"inV":1}]},"properties":{"propertyin":[{"id":0,"value":"a"}]}}
-{"id":2,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":1}]},"properties":{"propertyin":[{"id":3,"value":"b"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b0b124b8/data/tinkerpop-sink.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.json b/data/tinkerpop-sink.json
index 1eade99..39496ba 100644
--- a/data/tinkerpop-sink.json
+++ b/data/tinkerpop-sink.json
@@ -1,3 +1 @@
 {"id":0,"label":"loops","inE":{"self":[{"id":2,"outV":0}]},"outE":{"self":[{"id":2,"inV":0}]},"properties":{"name":[{"id":1,"value":"loop"}]}}
-{"id":1,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":5,"outV":1}]},"outE":{"msg_pass_test_edge":[{"id":4,"inV":2},{"id":5,"inV":1}]},"properties":{"propertyin":[{"id":0,"value":"a"}]}}
-{"id":2,"label":"message_passing_test","inE":{"msg_pass_test_edge":[{"id":4,"outV":1}]},"properties":{"propertyin":[{"id":3,"value":"b"}]}}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b0b124b8/data/tinkerpop-sink.kryo
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.kryo b/data/tinkerpop-sink.kryo
index 5f5da45..9a26e15 100644
Binary files a/data/tinkerpop-sink.kryo and b/data/tinkerpop-sink.kryo differ