You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by mh...@apache.org on 2015/07/23 17:28:41 UTC

[1/3] incubator-tinkerpop git commit: TINKERPOP3-782: Implement getRequirements for TraversalMapStep/TraversalFlatMapStep

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/tp30 9f804373e -> e7a5dd5ac


TINKERPOP3-782: Implement getRequirements for TraversalMapStep/TraversalFlatMapStep


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

Branch: refs/heads/tp30
Commit: e7a5dd5ac9860bb1f7f04b3ede514edba3cda55a
Parents: c9c9dc2
Author: mhfrantz <mf...@redsealnetworks.com>
Authored: Wed Jul 22 21:09:01 2015 -0700
Committer: mhfrantz <mf...@redsealnetworks.com>
Committed: Thu Jul 23 08:27:49 2015 -0700

----------------------------------------------------------------------
 .../process/traversal/step/map/TraversalFlatMapStep.java      | 7 +++++++
 .../gremlin/process/traversal/step/map/TraversalMapStep.java  | 7 +++++++
 2 files changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e7a5dd5a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalFlatMapStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalFlatMapStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalFlatMapStep.java
index fac5076..9ac8727 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalFlatMapStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalFlatMapStep.java
@@ -24,12 +24,14 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -69,4 +71,9 @@ public final class TraversalFlatMapStep<S, E> extends FlatMapStep<S, E> implemen
     public int hashCode() {
         return super.hashCode() ^ this.flatMapTraversal.hashCode();
     }
+
+    @Override
+    public Set<TraverserRequirement> getRequirements() {
+        return this.getSelfAndChildRequirements(TraverserRequirement.OBJECT);
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e7a5dd5a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalMapStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalMapStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalMapStep.java
index 2ca94df..d3cda3b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalMapStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/TraversalMapStep.java
@@ -24,12 +24,14 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -70,4 +72,9 @@ public final class TraversalMapStep<S, E> extends MapStep<S, E> implements Trave
     public int hashCode() {
         return super.hashCode() ^ this.mapTraversal.hashCode();
     }
+
+    @Override
+    public Set<TraverserRequirement> getRequirements() {
+        return this.getSelfAndChildRequirements(TraverserRequirement.OBJECT);
+    }
 }


[2/3] incubator-tinkerpop git commit: TINKERPOP3-782: Add repro for flatMap(Traversal) not preserving path (new FlatMapTest suite)

Posted by mh...@apache.org.
TINKERPOP3-782: Add repro for flatMap(Traversal) not preserving path (new FlatMapTest suite)


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

Branch: refs/heads/tp30
Commit: c9c9dc278c5d831c8046e58783a32307e322014a
Parents: de10f55
Author: mhfrantz <mf...@redsealnetworks.com>
Authored: Wed Jul 22 20:54:31 2015 -0700
Committer: mhfrantz <mf...@redsealnetworks.com>
Committed: Thu Jul 23 08:27:49 2015 -0700

----------------------------------------------------------------------
 .../traversal/step/map/GroovyFlatMapTest.groovy | 38 ++++++++++++
 .../gremlin/process/ProcessComputerSuite.java   |  3 +
 .../gremlin/process/ProcessStandardSuite.java   |  2 +
 .../process/traversal/step/map/FlatMapTest.java | 65 ++++++++++++++++++++
 4 files changed, 108 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c9c9dc27/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyFlatMapTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyFlatMapTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyFlatMapTest.groovy
new file mode 100644
index 0000000..6b25682
--- /dev/null
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyFlatMapTest.groovy
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.process.traversal.step.map
+
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal
+import org.apache.tinkerpop.gremlin.structure.Vertex
+
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.select;
+
+/**
+ * @author Matt Frantz (http://github.com/mhfrantz)
+ */
+public abstract class GroovyFlatMapTest {
+
+    public static class Traversals extends FlatMapTest {
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_flatMapXselectXaXX() {
+            TraversalScriptHelper.compute("g.V.as('a').flatMap(select('a'))", g);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c9c9dc27/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 b3723cb..a14fc25 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
@@ -45,6 +45,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.CoalesceTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.ConstantTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.CountTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.FoldTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MapKeysTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MapTest;
@@ -127,6 +128,7 @@ public class ProcessComputerSuite extends AbstractGremlinSuite {
             CoalesceTest.Traversals.class,
             ConstantTest.Traversals.class,
             CountTest.Traversals.class,
+            FlatMapTest.Traversals.class,
             FoldTest.Traversals.class,
             MapTest.Traversals.class,
             MapKeysTest.Traversals.class,
@@ -200,6 +202,7 @@ public class ProcessComputerSuite extends AbstractGremlinSuite {
             CoalesceTest.class,
             ConstantTest.class,
             CountTest.class,
+            FlatMapTest.class,
             FoldTest.class,
             MapTest.class,
             MaxTest.class,

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c9c9dc27/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
index 6e78461..4c9d8e6 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
@@ -81,6 +81,7 @@ public class ProcessStandardSuite extends AbstractGremlinSuite {
             CoalesceTest.Traversals.class,
             ConstantTest.Traversals.class,
             CountTest.Traversals.class,
+            FlatMapTest.Traversals.class,
             FoldTest.Traversals.class,
             MapTest.Traversals.class,
             MapKeysTest.Traversals.class,
@@ -165,6 +166,7 @@ public class ProcessStandardSuite extends AbstractGremlinSuite {
             CoalesceTest.class,
             ConstantTest.class,
             CountTest.class,
+            FlatMapTest.class,
             FoldTest.class,
             MapTest.class,
             MapKeysTest.class,

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c9c9dc27/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/FlatMapTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/FlatMapTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/FlatMapTest.java
new file mode 100644
index 0000000..3af161f
--- /dev/null
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/FlatMapTest.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.process.traversal.step.map;
+
+import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
+import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
+import org.apache.tinkerpop.gremlin.process.IgnoreEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+
+import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.select;
+import static org.junit.Assert.*;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+@RunWith(GremlinProcessRunner.class)
+public abstract class FlatMapTest extends AbstractGremlinProcessTest {
+
+    public abstract Traversal<Vertex, Vertex> get_g_V_flatMapXselectXaXX();
+
+    /** TINKERPOP3-782 */
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_flatMapXselectXaXX() {
+        final Traversal<Vertex, Vertex> traversal = get_g_V_flatMapXselectXaXX();
+        printTraversalForm(traversal);
+        int counter = 0;
+        while (traversal.hasNext()) {
+            counter++;
+            traversal.next();
+        }
+        assertEquals(6, counter);
+    }
+
+    public static class Traversals extends FlatMapTest {
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_flatMapXselectXaXX() {
+            return g.V().as("a").flatMap(select("a"));
+        }
+    }
+}


[3/3] incubator-tinkerpop git commit: TINKERPOP3-782: Add repro for map(Traversal) not preserving path

Posted by mh...@apache.org.
TINKERPOP3-782: Add repro for map(Traversal) not preserving path


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

Branch: refs/heads/tp30
Commit: de10f5555cfdae364ef99c603159f140c73dc13f
Parents: 9f80437
Author: mhfrantz <mf...@redsealnetworks.com>
Authored: Wed Jul 22 20:46:57 2015 -0700
Committer: mhfrantz <mf...@redsealnetworks.com>
Committed: Thu Jul 23 08:27:49 2015 -0700

----------------------------------------------------------------------
 .../traversal/step/map/GroovyMapTest.groovy     |  7 +++++++
 .../process/traversal/step/map/MapTest.java     | 22 ++++++++++++++++++++
 2 files changed, 29 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/de10f555/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy
index e230215..18c03be 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy
@@ -22,6 +22,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal
 import org.apache.tinkerpop.gremlin.structure.Vertex
 
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.select;
+
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
@@ -53,5 +55,10 @@ public abstract class GroovyMapTest {
         public Traversal<Vertex, String> get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX() {
             TraversalScriptHelper.compute("g.withPath().V().as('a').out.out().map { v -> v.path('a').name + v.name }", g)
         }
+
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_mapXselectXaXX() {
+            TraversalScriptHelper.compute("g.V.as('a').map(select('a'))", g);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/de10f555/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java
index f257151..5539c86 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java
@@ -31,6 +31,7 @@ import org.junit.runner.RunWith;
 import java.util.List;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.select;
 import static org.junit.Assert.*;
 
 /**
@@ -48,6 +49,8 @@ public abstract class MapTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, String> get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX();
 
+    public abstract Traversal<Vertex, Vertex> get_g_V_mapXselectXaXX();
+
     @Test
     @LoadGraphWith(MODERN)
     public void g_VX1X_mapXnameX() {
@@ -120,6 +123,20 @@ public abstract class MapTest extends AbstractGremlinProcessTest {
         assertFalse(traversal.hasNext());
     }
 
+    /** TINKERPOP3-782 */
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_mapXselectXaXX() {
+        final Traversal<Vertex, Vertex> traversal = get_g_V_mapXselectXaXX();
+        printTraversalForm(traversal);
+        int counter = 0;
+        while (traversal.hasNext()) {
+            counter++;
+            traversal.next();
+        }
+        assertEquals(6, counter);
+    }
+
     public static class Traversals extends MapTest {
         @Override
         public Traversal<Vertex, String> get_g_VX1X_mapXnameX(final Object v1Id) {
@@ -145,5 +162,10 @@ public abstract class MapTest extends AbstractGremlinProcessTest {
         public Traversal<Vertex, String> get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX() {
             return g.withPath().V().as("a").out().out().map(v -> v.<Vertex>path("a").<String>value("name") + v.get().<String>value("name"));
         }
+
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_mapXselectXaXX() {
+            return g.V().as("a").map(select("a"));
+        }
     }
 }