tinkerpop git commit: the plot thickens with BulkSet and Tree needing special handling during detachment. @spmallette was right about the rabbit hole. Fortuantely, we have lots of test cases that fail

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1701 12de6fbf4 -> c01b27ea8


the plot thickens with BulkSet and Tree needing special handling during 
detachment. @spmallette was right about the rabbit hole. Fortuantely, we have 
lots of test cases that failed cause of not handling these collections 
correctly. So that is a win.


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

Branch: refs/heads/TINKERPOP-1701
Commit: c01b27ea870b15464a263254248b177a8bd0d9d4
Parents: 12de6fb
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 14:56:48 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 14:56:48 2017 -0600

--
 .../gremlin/structure/util/detached/DetachedFactory.java  | 10 +-
 .../structure/util/reference/ReferenceFactory.java| 10 +-
 2 files changed, 18 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c01b27ea/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
index 775e5c6..710511c 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
@@ -19,6 +19,8 @@
 package org.apache.tinkerpop.gremlin.structure.util.detached;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Property;
@@ -86,6 +88,12 @@ public class DetachedFactory {
 list.add(DetachedFactory.detach(item, withProperties));
 }
 return (D) list;
+} else if (object instanceof BulkSet) {
+final BulkSet set = new BulkSet();
+for (Map.Entry entry : ((BulkSet) 
object).asBulk().entrySet()) {
+
set.add(DetachedFactory.detach(entry.getKey(),withProperties),entry.getValue());
+}
+return (D) set;
 } else if (object instanceof Set) {
 final Set set = object instanceof LinkedHashSet ? new 
LinkedHashSet() : new HashSet();
 for (final Object item : (Set) object) {
@@ -93,7 +101,7 @@ public class DetachedFactory {
 }
 return (D) set;
 } else if (object instanceof Map) {
-final Map map = object instanceof LinkedHashMap ? new 
LinkedHashMap() : new HashMap();
+final Map map = object instanceof Tree ? new Tree() : object 
instanceof LinkedHashMap ? new LinkedHashMap() : new HashMap();
 for (final Map.Entry entry : ((Map) object).entrySet()) {
 map.put(DetachedFactory.detach(entry.getKey(), 
withProperties), DetachedFactory.detach(entry.getValue(), withProperties));
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c01b27ea/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
index 749e424..a703ada 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
@@ -19,6 +19,8 @@
 package org.apache.tinkerpop.gremlin.structure.util.reference;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Property;
@@ -86,6 +88,12 @@ public class ReferenceFactory {
 

tinkerpop git commit: add test cases to HaltedTraversaerStrategyTest to verify property collection handling during detachment.

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1701 7d54b1814 -> 12de6fbf4


add test cases to HaltedTraversaerStrategyTest to verify property collection 
handling during detachment.


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

Branch: refs/heads/TINKERPOP-1701
Commit: 12de6fbf49028072ffb0933776c516e1bf1e9763
Parents: 7d54b18
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 14:29:09 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 14:29:09 2017 -0600

--
 .../strategy/decoration/HaltedTraverserStrategyTest.java | 4 
 1 file changed, 4 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/12de6fbf/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/strategy/decoration/HaltedTraverserStrategyTest.java
--
diff --git 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/strategy/decoration/HaltedTraverserStrategyTest.java
 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/strategy/decoration/HaltedTraverserStrategyTest.java
index 3999433..288b4b4 100644
--- 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/strategy/decoration/HaltedTraverserStrategyTest.java
+++ 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/strategy/decoration/HaltedTraverserStrategyTest.java
@@ -76,6 +76,8 @@ public class HaltedTraverserStrategyTest {
 g.V().out().out().path().forEachRemaining(path -> 
assertEquals(DetachedPath.class, path.getClass()));
 g.V().out().pageRank().forEachRemaining(vertex -> 
assertEquals(DetachedVertex.class, vertex.getClass()));
 g.V().out().pageRank().out().forEachRemaining(vertex -> 
assertEquals(DetachedVertex.class, vertex.getClass()));
+// should handle nested collections
+g.V().out().fold().next().forEach(vertex -> 
assertEquals(DetachedVertex.class, vertex.getClass()));
 }
 
 @Test
@@ -104,6 +106,8 @@ public class HaltedTraverserStrategyTest {
 g.V().out().out().path().forEachRemaining(path -> 
assertEquals(ReferencePath.class, path.getClass()));
 g.V().out().pageRank().forEachRemaining(vertex -> 
assertEquals(ReferenceVertex.class, vertex.getClass()));
 g.V().out().pageRank().out().forEachRemaining(vertex -> 
assertEquals(ReferenceVertex.class, vertex.getClass()));
+// should handle nested collections
+g.V().out().fold().next().forEach(vertex -> 
assertEquals(ReferenceVertex.class, vertex.getClass()));
 }
 
 }



tinkerpop git commit: doh. needed to tweak the ReferenceFactory test as properties don't come over.

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1701 d16d0df5c -> 7d54b1814


doh. needed to tweak the ReferenceFactory test as properties don't come over.


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

Branch: refs/heads/TINKERPOP-1701
Commit: 7d54b1814937da8693b8d45498b2f56b941a9caf
Parents: d16d0df
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 14:23:12 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 14:23:12 2017 -0600

--
 .../structure/util/reference/ReferenceVertexTest.java   | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7d54b181/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
--
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
index 4f7f1da..35c31c6 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
@@ -189,38 +189,33 @@ public class ReferenceVertexTest extends 
AbstractGremlinTest {
 final List vertices = 
ReferenceFactory.detach(g.V().hasLabel("software").fold().next());
 for (final Vertex v : vertices) {
 assertTrue(v instanceof ReferenceVertex);
-assertEquals("java", v.value("lang"));
 }
 // double nested list
 final List lists = 
ReferenceFactory.detach(g.V().hasLabel("software").fold().fold().next());
 for (final Vertex v : lists.get(0)) {
 assertTrue(v instanceof ReferenceVertex);
-assertEquals("java", v.value("lang"));
 }
 // double nested list to set
 final Set set = 
ReferenceFactory.detach(g.V().hasLabel("software").fold().toSet());
 for (final Vertex v : set.iterator().next()) {
 assertTrue(v instanceof ReferenceVertex);
-assertEquals("java", v.value("lang"));
 }
 // map keys and values
 Map map = 
ReferenceFactory.detach(g.V().hasLabel("software").group().by().by(inE().fold()).next());
 for (final Map.Entry entry : map.entrySet()) {
 assertTrue(entry.getKey() instanceof ReferenceVertex);
-assertEquals("java", entry.getKey().value("lang"));
 for (final Edge edge : entry.getValue()) {
 assertTrue(edge instanceof ReferenceEdge);
-assertTrue(edge.property("weight").isPresent());
+assertFalse(edge.property("weight").isPresent());
 }
 }
 // map keys and values as sideEffect
 map = 
ReferenceFactory.detach(g.V().hasLabel("software").group("m").by().by(inE().fold()).identity().cap("m").next());
 for (final Map.Entry entry : map.entrySet()) {
 assertTrue(entry.getKey() instanceof ReferenceVertex);
-assertEquals("java", entry.getKey().value("lang"));
 for (final Edge edge : entry.getValue()) {
 assertTrue(edge instanceof ReferenceEdge);
-assertTrue(edge.property("weight").isPresent());
+assertFalse(edge.property("weight").isPresent());
 }
 }
 }



tinkerpop git commit: added test cases that verify that nested collection detachment works for Lists, Sets, and Maps (and any arbitrary nest of those collections within themselves).

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1701 6e2ebb52f -> d16d0df5c


added test cases that verify that nested collection detachment works for Lists, 
Sets, and Maps (and any arbitrary nest of those collections within themselves).


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

Branch: refs/heads/TINKERPOP-1701
Commit: d16d0df5c64f6da04c6a11c9403273f30eb264d4
Parents: 6e2ebb5
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 14:14:22 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 14:14:22 2017 -0600

--
 .../util/detached/DetachedVertexTest.java   | 49 ++
 .../util/reference/ReferenceVertexTest.java | 53 
 2 files changed, 102 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d16d0df5/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
--
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
index 582b9a5..93cb46f 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
 import org.apache.tinkerpop.gremlin.FeatureRequirement;
 import org.apache.tinkerpop.gremlin.FeatureRequirementSet;
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
@@ -39,6 +40,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.inE;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
@@ -325,4 +327,51 @@ public class DetachedVertexTest extends 
AbstractGremlinTest {
 });
 assertEquals(1, dogTimes.get());
 }
+
+@Test
+@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+@FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY)
+public void shouldDetachCollections() {
+// single element
+final Vertex vertex = DetachedFactory.detach(g.V().has("name", 
"marko").next(), true);
+assertTrue(vertex instanceof DetachedVertex);
+// list nest
+final List vertices = 
DetachedFactory.detach(g.V().hasLabel("software").fold().next(), true);
+for (final Vertex v : vertices) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// double nested list
+final List lists = 
DetachedFactory.detach(g.V().hasLabel("software").fold().fold().next(), true);
+for (final Vertex v : lists.get(0)) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// double nested list to set
+final Set set = 
DetachedFactory.detach(g.V().hasLabel("software").fold().toSet(), true);
+for (final Vertex v : set.iterator().next()) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// map keys and values
+Map map = 
DetachedFactory.detach(g.V().hasLabel("software").group().by().by(inE().fold()).next(),
 true);
+for (final Map.Entry entry : map.entrySet()) {
+assertTrue(entry.getKey() instanceof DetachedVertex);
+assertEquals("java", entry.getKey().value("lang"));
+for (final Edge edge : entry.getValue()) {
+assertTrue(edge instanceof DetachedEdge);
+assertTrue(edge.property("weight").isPresent());
+}
+}
+// map keys and values as sideEffect
+map = 
DetachedFactory.detach(g.V().hasLabel("software").group("m").by().by(inE().fold()).identity().cap("m").next(),
 true);
+for (final Map.Entry entry : map.entrySet()) {
+assertTrue(entry.getKey() instanceof DetachedVertex);
+

tinkerpop git commit: added colleciton handling to XXXFactory.detach(). This will ensure that collection nested graph elements get detached accordingly.

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1701 [created] 6e2ebb52f


added colleciton handling to XXXFactory.detach(). This will ensure that 
collection nested graph elements get detached accordingly.


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

Branch: refs/heads/TINKERPOP-1701
Commit: 6e2ebb52fdaa477e93a98d6c7c28b4ce5ed9bdb5
Parents: 9436585
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 13:51:47 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 13:51:47 2017 -0600

--
 .../util/detached/DetachedFactory.java  | 27 
 .../util/reference/ReferenceFactory.java| 27 
 2 files changed, 54 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6e2ebb52/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
index 10265f8..775e5c6 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
@@ -25,6 +25,15 @@ import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
@@ -71,6 +80,24 @@ public class DetachedFactory {
 return (D) DetachedFactory.detach((Property) object);
 } else if (object instanceof Path) {
 return (D) DetachedFactory.detach((Path) object, withProperties);
+} else if (object instanceof List) {
+final List list = new ArrayList();
+for (final Object item : (List) object) {
+list.add(DetachedFactory.detach(item, withProperties));
+}
+return (D) list;
+} else if (object instanceof Set) {
+final Set set = object instanceof LinkedHashSet ? new 
LinkedHashSet() : new HashSet();
+for (final Object item : (Set) object) {
+set.add(DetachedFactory.detach(item, withProperties));
+}
+return (D) set;
+} else if (object instanceof Map) {
+final Map map = object instanceof LinkedHashMap ? new 
LinkedHashMap() : new HashMap();
+for (final Map.Entry entry : ((Map) object).entrySet()) {
+map.put(DetachedFactory.detach(entry.getKey(), 
withProperties), DetachedFactory.detach(entry.getValue(), withProperties));
+}
+return (D) map;
 } else {
 return (D) object;
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6e2ebb52/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
index 48b6de3..749e424 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java
@@ -25,6 +25,15 @@ import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
@@ -71,6 +80,24 @@ public class ReferenceFactory {
 return (D) ReferenceFactory.detach((Property) object);
 } else if (object instanceof Path) {
 

[2/8] tinkerpop git commit: add the regression test

2017-06-27 Thread okram
add the regression test


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

Branch: refs/heads/master
Commit: 99679a037db3e86112471a40cd454114231852b6
Parents: 28c514d
Author: Sheldon 
Authored: Mon Jun 19 10:35:16 2017 +0100
Committer: Sheldon 
Committed: Mon Jun 19 11:20:37 2017 +0100

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/99679a03/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 1af0830..02ac5d4 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
@@ -24,11 +24,14 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticMapReduce;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticVertexProgram;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
+import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -38,9 +41,11 @@ import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.GRATEFUL;
@@ -1463,6 +1468,94 @@ public class GraphComputerTest extends 
AbstractGremlinProcessTest {
 public void storeState(final Configuration configuration) {
 VertexProgram.super.storeState(configuration);
 }
+}
+
+/
+@Test
+public void shouldSupportMultipleScopes() throws ExecutionException, 
InterruptedException {
+Vertex a = graph.addVertex("a");
+Vertex b = graph.addVertex("b");
+Vertex c = graph.addVertex("c");
+a.addEdge("edge", b);
+b.addEdge("edge", c);
+
+// Simple graph:
+// a -> b -> c
+
+// Execute a traversal program that sends an incoming message of "2" 
and an outgoing message of "1" from "b"
+// then each vertex sums any received messages
+ComputerResult result = graph.compute().program(new 
MultiScopeVertexProgram()).submit().get();
+
+// We expect the results to be {a=2, b=0, c=1}. Instead it is {a=3, 
b=0, c=3}
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("a").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(2L));
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("b").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(0L));
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("c").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(1L));
+}
+
+public static class MultiScopeVertexProgram implements VertexProgram 
{
+
+private final MessageScope.Local countMessageScopeIn = 
MessageScope.Local.of(__::inE);
+private final MessageScope.Local countMessageScopeOut = 
MessageScope.Local.of(__::outE);
+
+private static final String MEMORY_KEY = "count";
+
+private static final Set COMPUTE_KEYS = 
Collections.singleton(MEMORY_KEY);
+
+@Override
+public void setup(final Memory memory) {}
+
+@Override
+public GraphComputer.Persist getPreferredPersist() {
+return GraphComputer.Persist.VERTEX_PROPERTIES;
+}
+
+@Override
+public Set getElementComputeKeys() {
+return COMPUTE_KEYS;
+}
+
+   

[1/8] tinkerpop git commit: bugfix

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/master 55af79f78 -> ea20ca192


bugfix


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

Branch: refs/heads/master
Commit: 28c514da9065683ed90ea6aabc66ffdcbab99c11
Parents: b1c0723
Author: Sheldon 
Authored: Thu Jun 15 18:00:32 2017 +0100
Committer: Sheldon 
Committed: Mon Jun 19 11:20:20 2017 +0100

--
 .../process/computer/TinkerMessageBoard.java|  4 ++--
 .../process/computer/TinkerMessenger.java   | 22 +---
 2 files changed, 16 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28c514da/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
--
diff --git 
a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
 
b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
index b217801..422ab86 100644
--- 
a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
+++ 
b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
@@ -32,8 +32,8 @@ import java.util.concurrent.ConcurrentHashMap;
  */
 final class TinkerMessageBoard {
 
-public Map sendMessages = new ConcurrentHashMap<>();
-public Map receiveMessages = new ConcurrentHashMap<>();
+public Map> sendMessages = new 
ConcurrentHashMap<>();
+public Map> receiveMessages = new 
ConcurrentHashMap<>();
 public Set previousMessageScopes = new HashSet<>();
 public Set currentMessageScopes = new HashSet<>();
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28c514da/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 3298aff..d3f2de5 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
@@ -37,6 +37,7 @@ import java.util.Optional;
 import java.util.Queue;
 import java.util.Spliterator;
 import java.util.Spliterators;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
@@ -59,14 +60,15 @@ public final class TinkerMessenger implements 
Messenger {
 @Override
 public Iterator receiveMessages() {
 final MultiIterator multiIterator = new MultiIterator<>();
-for (final MessageScope messageScope : 
this.messageBoard.previousMessageScopes) {
+for (final MessageScope messageScope : 
this.messageBoard.receiveMessages.keySet()) {
+//for (final MessageScope messageScope : 
this.messageBoard.previousMessageScopes) {
 if (messageScope instanceof MessageScope.Local) {
 final MessageScope.Local localMessageScope = 
(MessageScope.Local) messageScope;
 final Traversal.Admin incidentTraversal = 
TinkerMessenger.setVertexStart(localMessageScope.getIncidentTraversal().get().asAdmin(),
 this.vertex);
 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((edge[0] = e).vertices(direction).next()))
+.map(e -> 
this.messageBoard.receiveMessages.get(messageScope).get((edge[0] = 
e).vertices(direction).next()))
 .filter(q -> null != q)
 .flatMap(Queue::stream)
 

[3/8] tinkerpop git commit: Merge branch 'tp31' of https://github.com/sheldonkhall/tinkerpop into tp31

2017-06-27 Thread okram
Merge branch 'tp31' of https://github.com/sheldonkhall/tinkerpop into tp31


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

Branch: refs/heads/master
Commit: d67b88b2bee75c68d3c5756a8dbf963f9de2df39
Parents: 3d50f5c 99679a0
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 07:53:22 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:53:22 2017 -0600

--
 .../process/computer/GraphComputerTest.java | 93 
 .../process/computer/TinkerMessageBoard.java|  4 +-
 .../process/computer/TinkerMessenger.java   | 22 +++--
 3 files changed, 109 insertions(+), 10 deletions(-)
--




[8/8] tinkerpop git commit: Merge branch 'tp32'

2017-06-27 Thread okram
Merge branch 'tp32'


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

Branch: refs/heads/master
Commit: ea20ca1926b17bca08517ed27793598805341715
Parents: 55af79f 9436585
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 10:04:50 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 10:04:50 2017 -0600

--
 CHANGELOG.asciidoc  |  2 +
 .../process/computer/GraphComputerTest.java | 75 ++--
 .../process/computer/TinkerMessageBoard.java|  4 +-
 .../process/computer/TinkerMessenger.java   | 22 +++---
 4 files changed, 86 insertions(+), 17 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ea20ca19/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
--



[6/8] tinkerpop git commit: tweaked the MessageScope bug fix test to use MODERN so it works with Spark and Giraph. Simple tweak to test data, not semantics. CTR.

2017-06-27 Thread okram
tweaked the MessageScope bug fix test to use MODERN so it works with Spark and 
Giraph. Simple tweak to test data, not semantics. CTR.


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

Branch: refs/heads/master
Commit: e7f5ef711b1edbd130f23610d993e13d44d5df50
Parents: 3b8c628
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 09:55:35 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 09:55:35 2017 -0600

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e7f5ef71/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 02ac5d4..e2acd5e 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
@@ -26,7 +26,6 @@ import 
org.apache.tinkerpop.gremlin.process.computer.util.StaticMapReduce;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticVertexProgram;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Direction;
-import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
@@ -41,7 +40,6 @@ import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
@@ -1472,27 +1470,16 @@ public class GraphComputerTest extends 
AbstractGremlinProcessTest {
 
 /
 @Test
+@LoadGraphWith(MODERN)
 public void shouldSupportMultipleScopes() throws ExecutionException, 
InterruptedException {
-Vertex a = graph.addVertex("a");
-Vertex b = graph.addVertex("b");
-Vertex c = graph.addVertex("c");
-a.addEdge("edge", b);
-b.addEdge("edge", c);
-
-// Simple graph:
-// a -> b -> c
-
-// Execute a traversal program that sends an incoming message of "2" 
and an outgoing message of "1" from "b"
-// then each vertex sums any received messages
-ComputerResult result = graph.compute().program(new 
MultiScopeVertexProgram()).submit().get();
-
-// We expect the results to be {a=2, b=0, c=1}. Instead it is {a=3, 
b=0, c=3}
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("a").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(2L));
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("b").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(0L));
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("c").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(1L));
+final ComputerResult result = 
graph.compute(graphComputerClass.get()).program(new 
MultiScopeVertexProgram()).submit().get();
+assertEquals(result.graph().traversal().V().has("name", 
"josh").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 0L);
+assertEquals(result.graph().traversal().V().has("name", 
"lop").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
+assertEquals(result.graph().traversal().V().has("name", 
"ripple").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
+assertEquals(result.graph().traversal().V().has("name", 
"marko").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 2L);
 }
 
-public static class MultiScopeVertexProgram implements VertexProgram 
{
+public static class MultiScopeVertexProgram extends 
StaticVertexProgram {
 
 private final MessageScope.Local countMessageScopeIn = 
MessageScope.Local.of(__::inE);
 private final MessageScope.Local countMessageScopeOut = 
MessageScope.Local.of(__::outE);
@@ -1502,7 +1489,8 @@ public class GraphComputerTest extends 
AbstractGremlinProcessTest {
 private static final Set COMPUTE_KEYS = 

[7/8] tinkerpop git commit: Merge branch 'tp31' into tp32

2017-06-27 Thread okram
Merge branch 'tp31' into tp32


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

Branch: refs/heads/master
Commit: 943658531ba8a3bb8050c169ad2180f81cda96db
Parents: f1aed80 e7f5ef7
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 10:04:37 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 10:04:37 2017 -0600

--
 .../tinkerpop/gremlin/process/computer/GraphComputerTest.java  | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/94365853/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
--
diff --cc 
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
index e4b40e8,e2acd5e..380887b
--- 
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
@@@ -73,9 -52,7 +73,8 @@@ import static org.junit.Assert.assertEq
  import static org.junit.Assert.assertFalse;
  import static org.junit.Assert.assertTrue;
  import static org.junit.Assert.fail;
 +import static org.junit.Assume.assumeNoException;
  
- 
  /**
   * @author Marko A. Rodriguez (http://markorodriguez.com)
   */
@@@ -1591,7 -1472,7 +1590,7 @@@ public class GraphComputerTest extends 
  @Test
  @LoadGraphWith(MODERN)
  public void shouldSupportMultipleScopes() throws ExecutionException, 
InterruptedException {
- final ComputerResult result = graph.compute().program(new 
MultiScopeVertexProgram()).submit().get();
 -final ComputerResult result = 
graph.compute(graphComputerClass.get()).program(new 
MultiScopeVertexProgram()).submit().get();
++final ComputerResult result = 
graphProvider.getGraphComputer(graph).program(new 
MultiScopeVertexProgram()).submit().get();
  assertEquals(result.graph().traversal().V().has("name", 
"josh").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 0L);
  assertEquals(result.graph().traversal().V().has("name", 
"lop").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
  assertEquals(result.graph().traversal().V().has("name", 
"ripple").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
@@@ -1653,968 -1535,6 +1652,965 @@@
  public GraphComputer.ResultGraph getPreferredResultGraph() {
  return GraphComputer.ResultGraph.NEW;
  }
- 
 +}
 +
 +/
 +
 +@Test
 +@LoadGraphWith(MODERN)
 +public void shouldSupportGraphFilter() throws Exception {
 +// if the graph computer does not support graph filter, then make 
sure its exception handling is correct
 +if 
(!graphProvider.getGraphComputer(graph).features().supportsGraphFilter()) {
 +try {
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("software"));
 +fail("Should throw an unsupported operation exception");
 +} catch (final UnsupportedOperationException e) {
 +
assertEquals(GraphComputer.Exceptions.graphFilterNotSupported().getMessage(), 
e.getMessage());
 +}
 +try {
 +
graphProvider.getGraphComputer(graph).edges(__.outE().limit(10));
 +fail("Should throw an unsupported operation exception");
 +} catch (final UnsupportedOperationException e) {
 +
assertEquals(GraphComputer.Exceptions.graphFilterNotSupported().getMessage(), 
e.getMessage());
 +}
 +return;
 +}
 +/// VERTEX PROGRAM
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("software")).program(new
 VertexProgramM(VertexProgramM.SOFTWARE_ONLY)).submit().get();
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("person")).program(new
 VertexProgramM(VertexProgramM.PEOPLE_ONLY)).submit().get();
 +
graphProvider.getGraphComputer(graph).edges(__.bothE("knows")).program(new 
VertexProgramM(VertexProgramM.KNOWS_ONLY)).submit().get();
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("person")).edges(__.bothE("knows")).program(new
 VertexProgramM(VertexProgramM.PEOPLE_KNOWS_ONLY)).submit().get();
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("person")).edges(__.bothE("knows").has("weight",
 P.gt(0.5f))).program(new 

[5/8] tinkerpop git commit: fixed up the MultiScope test to use MODERN so that it works with Giraph and Spark. Will back tweak to tp31/.

2017-06-27 Thread okram
fixed up the MultiScope test to use MODERN so that it works with Giraph and 
Spark. Will back tweak to tp31/.


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

Branch: refs/heads/master
Commit: f1aed80b056c2244ce8b23ab077e8b10ee6939d9
Parents: 5ac61b7 3b8c628
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 09:50:15 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 09:50:15 2017 -0600

--
 CHANGELOG.asciidoc  |  2 +
 .../process/computer/GraphComputerTest.java | 75 ++--
 .../process/computer/TinkerMessageBoard.java|  4 +-
 .../process/computer/TinkerMessenger.java   | 22 +++---
 4 files changed, 88 insertions(+), 15 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f1aed80b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
--
diff --cc 
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
index 5c66673,02ac5d4..e4b40e8
--- 
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
@@@ -24,35 -22,18 +24,32 @@@ import org.apache.commons.configuration
  import org.apache.tinkerpop.gremlin.ExceptionCoverage;
  import org.apache.tinkerpop.gremlin.LoadGraphWith;
  import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 +import 
org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.PeerPressureVertexProgram;
 +import 
org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankVertexProgram;
 +import 
org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram;
 +import 
org.apache.tinkerpop.gremlin.process.computer.util.AbstractVertexProgramBuilder;
  import org.apache.tinkerpop.gremlin.process.computer.util.StaticMapReduce;
  import org.apache.tinkerpop.gremlin.process.computer.util.StaticVertexProgram;
 +import org.apache.tinkerpop.gremlin.process.traversal.Operator;
 +import org.apache.tinkerpop.gremlin.process.traversal.P;
- import org.apache.tinkerpop.gremlin.process.traversal.Path;
 +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.__;
 +import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyPath;
 +import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.VerificationException;
 +import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 +import 
org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet;
  import org.apache.tinkerpop.gremlin.structure.Direction;
 -import org.apache.tinkerpop.gremlin.structure.Element;
 +import org.apache.tinkerpop.gremlin.structure.Edge;
  import org.apache.tinkerpop.gremlin.structure.Graph;
 +import org.apache.tinkerpop.gremlin.structure.Property;
  import org.apache.tinkerpop.gremlin.structure.Vertex;
  import org.apache.tinkerpop.gremlin.structure.VertexProperty;
  import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
  import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 +import org.javatuples.Pair;
- import org.junit.Ignore;
  import org.junit.Test;
  
- import java.util.AbstractMap;
  import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.Collections;
@@@ -70,15 -50,11 +68,14 @@@ 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.process.traversal.dsl.graph.__.outE;
- import static org.apache.tinkerpop.gremlin.structure.T.id;
  import static org.junit.Assert.assertEquals;
  import static org.junit.Assert.assertFalse;
  import static org.junit.Assert.assertTrue;
  import static org.junit.Assert.fail;
 +import static org.junit.Assume.assumeNoException;
 +
+ 
  /**
   * @author Marko A. Rodriguez (http://markorodriguez.com)
   */
@@@ -1588,567 -1468,92 +1585,635 @@@ public class GraphComputerTest extends 
  public void storeState(final Configuration configuration) {
  

[1/2] tinkerpop git commit: tweaked the MessageScope bug fix test to use MODERN so it works with Spark and Giraph. Simple tweak to test data, not semantics. CTR.

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/tp32 f1aed80b0 -> 943658531


tweaked the MessageScope bug fix test to use MODERN so it works with Spark and 
Giraph. Simple tweak to test data, not semantics. CTR.


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

Branch: refs/heads/tp32
Commit: e7f5ef711b1edbd130f23610d993e13d44d5df50
Parents: 3b8c628
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 09:55:35 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 09:55:35 2017 -0600

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e7f5ef71/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 02ac5d4..e2acd5e 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
@@ -26,7 +26,6 @@ import 
org.apache.tinkerpop.gremlin.process.computer.util.StaticMapReduce;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticVertexProgram;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Direction;
-import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
@@ -41,7 +40,6 @@ import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
@@ -1472,27 +1470,16 @@ public class GraphComputerTest extends 
AbstractGremlinProcessTest {
 
 /
 @Test
+@LoadGraphWith(MODERN)
 public void shouldSupportMultipleScopes() throws ExecutionException, 
InterruptedException {
-Vertex a = graph.addVertex("a");
-Vertex b = graph.addVertex("b");
-Vertex c = graph.addVertex("c");
-a.addEdge("edge", b);
-b.addEdge("edge", c);
-
-// Simple graph:
-// a -> b -> c
-
-// Execute a traversal program that sends an incoming message of "2" 
and an outgoing message of "1" from "b"
-// then each vertex sums any received messages
-ComputerResult result = graph.compute().program(new 
MultiScopeVertexProgram()).submit().get();
-
-// We expect the results to be {a=2, b=0, c=1}. Instead it is {a=3, 
b=0, c=3}
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("a").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(2L));
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("b").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(0L));
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("c").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(1L));
+final ComputerResult result = 
graph.compute(graphComputerClass.get()).program(new 
MultiScopeVertexProgram()).submit().get();
+assertEquals(result.graph().traversal().V().has("name", 
"josh").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 0L);
+assertEquals(result.graph().traversal().V().has("name", 
"lop").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
+assertEquals(result.graph().traversal().V().has("name", 
"ripple").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
+assertEquals(result.graph().traversal().V().has("name", 
"marko").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 2L);
 }
 
-public static class MultiScopeVertexProgram implements VertexProgram 
{
+public static class MultiScopeVertexProgram extends 
StaticVertexProgram {
 
 private final MessageScope.Local countMessageScopeIn = 
MessageScope.Local.of(__::inE);
 private final MessageScope.Local countMessageScopeOut = 
MessageScope.Local.of(__::outE);
@@ -1502,7 +1489,8 @@ public class GraphComputerTest extends 

[2/2] tinkerpop git commit: Merge branch 'tp31' into tp32

2017-06-27 Thread okram
Merge branch 'tp31' into tp32


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

Branch: refs/heads/tp32
Commit: 943658531ba8a3bb8050c169ad2180f81cda96db
Parents: f1aed80 e7f5ef7
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 10:04:37 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 10:04:37 2017 -0600

--
 .../tinkerpop/gremlin/process/computer/GraphComputerTest.java  | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/94365853/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
--
diff --cc 
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
index e4b40e8,e2acd5e..380887b
--- 
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
@@@ -73,9 -52,7 +73,8 @@@ import static org.junit.Assert.assertEq
  import static org.junit.Assert.assertFalse;
  import static org.junit.Assert.assertTrue;
  import static org.junit.Assert.fail;
 +import static org.junit.Assume.assumeNoException;
  
- 
  /**
   * @author Marko A. Rodriguez (http://markorodriguez.com)
   */
@@@ -1591,7 -1472,7 +1590,7 @@@ public class GraphComputerTest extends 
  @Test
  @LoadGraphWith(MODERN)
  public void shouldSupportMultipleScopes() throws ExecutionException, 
InterruptedException {
- final ComputerResult result = graph.compute().program(new 
MultiScopeVertexProgram()).submit().get();
 -final ComputerResult result = 
graph.compute(graphComputerClass.get()).program(new 
MultiScopeVertexProgram()).submit().get();
++final ComputerResult result = 
graphProvider.getGraphComputer(graph).program(new 
MultiScopeVertexProgram()).submit().get();
  assertEquals(result.graph().traversal().V().has("name", 
"josh").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 0L);
  assertEquals(result.graph().traversal().V().has("name", 
"lop").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
  assertEquals(result.graph().traversal().V().has("name", 
"ripple").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
@@@ -1653,968 -1535,6 +1652,965 @@@
  public GraphComputer.ResultGraph getPreferredResultGraph() {
  return GraphComputer.ResultGraph.NEW;
  }
- 
 +}
 +
 +/
 +
 +@Test
 +@LoadGraphWith(MODERN)
 +public void shouldSupportGraphFilter() throws Exception {
 +// if the graph computer does not support graph filter, then make 
sure its exception handling is correct
 +if 
(!graphProvider.getGraphComputer(graph).features().supportsGraphFilter()) {
 +try {
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("software"));
 +fail("Should throw an unsupported operation exception");
 +} catch (final UnsupportedOperationException e) {
 +
assertEquals(GraphComputer.Exceptions.graphFilterNotSupported().getMessage(), 
e.getMessage());
 +}
 +try {
 +
graphProvider.getGraphComputer(graph).edges(__.outE().limit(10));
 +fail("Should throw an unsupported operation exception");
 +} catch (final UnsupportedOperationException e) {
 +
assertEquals(GraphComputer.Exceptions.graphFilterNotSupported().getMessage(), 
e.getMessage());
 +}
 +return;
 +}
 +/// VERTEX PROGRAM
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("software")).program(new
 VertexProgramM(VertexProgramM.SOFTWARE_ONLY)).submit().get();
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("person")).program(new
 VertexProgramM(VertexProgramM.PEOPLE_ONLY)).submit().get();
 +
graphProvider.getGraphComputer(graph).edges(__.bothE("knows")).program(new 
VertexProgramM(VertexProgramM.KNOWS_ONLY)).submit().get();
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("person")).edges(__.bothE("knows")).program(new
 VertexProgramM(VertexProgramM.PEOPLE_KNOWS_ONLY)).submit().get();
 +
graphProvider.getGraphComputer(graph).vertices(__.hasLabel("person")).edges(__.bothE("knows").has("weight",
 P.gt(0.5f))).program(new 

tinkerpop git commit: tweaked the MessageScope bug fix test to use MODERN so it works with Spark and Giraph. Simple tweak to test data, not semantics. CTR.

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/tp31 3b8c62892 -> e7f5ef711


tweaked the MessageScope bug fix test to use MODERN so it works with Spark and 
Giraph. Simple tweak to test data, not semantics. CTR.


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

Branch: refs/heads/tp31
Commit: e7f5ef711b1edbd130f23610d993e13d44d5df50
Parents: 3b8c628
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 09:55:35 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 09:55:35 2017 -0600

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e7f5ef71/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 02ac5d4..e2acd5e 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
@@ -26,7 +26,6 @@ import 
org.apache.tinkerpop.gremlin.process.computer.util.StaticMapReduce;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticVertexProgram;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Direction;
-import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
@@ -41,7 +40,6 @@ import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
@@ -1472,27 +1470,16 @@ public class GraphComputerTest extends 
AbstractGremlinProcessTest {
 
 /
 @Test
+@LoadGraphWith(MODERN)
 public void shouldSupportMultipleScopes() throws ExecutionException, 
InterruptedException {
-Vertex a = graph.addVertex("a");
-Vertex b = graph.addVertex("b");
-Vertex c = graph.addVertex("c");
-a.addEdge("edge", b);
-b.addEdge("edge", c);
-
-// Simple graph:
-// a -> b -> c
-
-// Execute a traversal program that sends an incoming message of "2" 
and an outgoing message of "1" from "b"
-// then each vertex sums any received messages
-ComputerResult result = graph.compute().program(new 
MultiScopeVertexProgram()).submit().get();
-
-// We expect the results to be {a=2, b=0, c=1}. Instead it is {a=3, 
b=0, c=3}
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("a").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(2L));
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("b").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(0L));
-assertEquals((Long) 
result.graph().traversal().V().hasLabel("c").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(1L));
+final ComputerResult result = 
graph.compute(graphComputerClass.get()).program(new 
MultiScopeVertexProgram()).submit().get();
+assertEquals(result.graph().traversal().V().has("name", 
"josh").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 0L);
+assertEquals(result.graph().traversal().V().has("name", 
"lop").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
+assertEquals(result.graph().traversal().V().has("name", 
"ripple").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 1L);
+assertEquals(result.graph().traversal().V().has("name", 
"marko").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(), 2L);
 }
 
-public static class MultiScopeVertexProgram implements VertexProgram 
{
+public static class MultiScopeVertexProgram extends 
StaticVertexProgram {
 
 private final MessageScope.Local countMessageScopeIn = 
MessageScope.Local.of(__::inE);
 private final MessageScope.Local countMessageScopeOut = 
MessageScope.Local.of(__::outE);
@@ -1502,7 +1489,8 @@ public class GraphComputerTest extends 

[2/5] tinkerpop git commit: add the regression test

2017-06-27 Thread okram
add the regression test


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

Branch: refs/heads/tp32
Commit: 99679a037db3e86112471a40cd454114231852b6
Parents: 28c514d
Author: Sheldon 
Authored: Mon Jun 19 10:35:16 2017 +0100
Committer: Sheldon 
Committed: Mon Jun 19 11:20:37 2017 +0100

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/99679a03/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 1af0830..02ac5d4 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
@@ -24,11 +24,14 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticMapReduce;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticVertexProgram;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
+import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -38,9 +41,11 @@ import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.GRATEFUL;
@@ -1463,6 +1468,94 @@ public class GraphComputerTest extends 
AbstractGremlinProcessTest {
 public void storeState(final Configuration configuration) {
 VertexProgram.super.storeState(configuration);
 }
+}
+
+/
+@Test
+public void shouldSupportMultipleScopes() throws ExecutionException, 
InterruptedException {
+Vertex a = graph.addVertex("a");
+Vertex b = graph.addVertex("b");
+Vertex c = graph.addVertex("c");
+a.addEdge("edge", b);
+b.addEdge("edge", c);
+
+// Simple graph:
+// a -> b -> c
+
+// Execute a traversal program that sends an incoming message of "2" 
and an outgoing message of "1" from "b"
+// then each vertex sums any received messages
+ComputerResult result = graph.compute().program(new 
MultiScopeVertexProgram()).submit().get();
+
+// We expect the results to be {a=2, b=0, c=1}. Instead it is {a=3, 
b=0, c=3}
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("a").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(2L));
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("b").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(0L));
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("c").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(1L));
+}
+
+public static class MultiScopeVertexProgram implements VertexProgram 
{
+
+private final MessageScope.Local countMessageScopeIn = 
MessageScope.Local.of(__::inE);
+private final MessageScope.Local countMessageScopeOut = 
MessageScope.Local.of(__::outE);
+
+private static final String MEMORY_KEY = "count";
+
+private static final Set COMPUTE_KEYS = 
Collections.singleton(MEMORY_KEY);
+
+@Override
+public void setup(final Memory memory) {}
+
+@Override
+public GraphComputer.Persist getPreferredPersist() {
+return GraphComputer.Persist.VERTEX_PROPERTIES;
+}
+
+@Override
+public Set getElementComputeKeys() {
+return COMPUTE_KEYS;
+}
+
+ 

[3/5] tinkerpop git commit: Merge branch 'tp31' of https://github.com/sheldonkhall/tinkerpop into tp31

2017-06-27 Thread okram
Merge branch 'tp31' of https://github.com/sheldonkhall/tinkerpop into tp31


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

Branch: refs/heads/tp32
Commit: d67b88b2bee75c68d3c5756a8dbf963f9de2df39
Parents: 3d50f5c 99679a0
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 07:53:22 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:53:22 2017 -0600

--
 .../process/computer/GraphComputerTest.java | 93 
 .../process/computer/TinkerMessageBoard.java|  4 +-
 .../process/computer/TinkerMessenger.java   | 22 +++--
 3 files changed, 109 insertions(+), 10 deletions(-)
--




[4/5] tinkerpop git commit: updated CHANGELOG.

2017-06-27 Thread okram
updated CHANGELOG.


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

Branch: refs/heads/tp32
Commit: 3b8c62892b3369a2ada0314f33f0b5122a4d6e82
Parents: d67b88b
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 07:54:00 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:54:00 2017 -0600

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3b8c6289/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index d421cb5..5436fd9 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,8 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 TinkerPop 3.1.8 (Release Date: NOT OFFICIALLY RELEASED YET)
 ~~~
 
+* Fixed a `MessageScope` bug in `TinkerGraphComputer`.
+
 [[release-3-1-7]]
 TinkerPop 3.1.7 (Release Date: June 12, 2017)
 ~



[1/5] tinkerpop git commit: bugfix

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/tp32 5ac61b7af -> f1aed80b0


bugfix


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

Branch: refs/heads/tp32
Commit: 28c514da9065683ed90ea6aabc66ffdcbab99c11
Parents: b1c0723
Author: Sheldon 
Authored: Thu Jun 15 18:00:32 2017 +0100
Committer: Sheldon 
Committed: Mon Jun 19 11:20:20 2017 +0100

--
 .../process/computer/TinkerMessageBoard.java|  4 ++--
 .../process/computer/TinkerMessenger.java   | 22 +---
 2 files changed, 16 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28c514da/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
--
diff --git 
a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
 
b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
index b217801..422ab86 100644
--- 
a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
+++ 
b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
@@ -32,8 +32,8 @@ import java.util.concurrent.ConcurrentHashMap;
  */
 final class TinkerMessageBoard {
 
-public Map sendMessages = new ConcurrentHashMap<>();
-public Map receiveMessages = new ConcurrentHashMap<>();
+public Map> sendMessages = new 
ConcurrentHashMap<>();
+public Map> receiveMessages = new 
ConcurrentHashMap<>();
 public Set previousMessageScopes = new HashSet<>();
 public Set currentMessageScopes = new HashSet<>();
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28c514da/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 3298aff..d3f2de5 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
@@ -37,6 +37,7 @@ import java.util.Optional;
 import java.util.Queue;
 import java.util.Spliterator;
 import java.util.Spliterators;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
@@ -59,14 +60,15 @@ public final class TinkerMessenger implements 
Messenger {
 @Override
 public Iterator receiveMessages() {
 final MultiIterator multiIterator = new MultiIterator<>();
-for (final MessageScope messageScope : 
this.messageBoard.previousMessageScopes) {
+for (final MessageScope messageScope : 
this.messageBoard.receiveMessages.keySet()) {
+//for (final MessageScope messageScope : 
this.messageBoard.previousMessageScopes) {
 if (messageScope instanceof MessageScope.Local) {
 final MessageScope.Local localMessageScope = 
(MessageScope.Local) messageScope;
 final Traversal.Admin incidentTraversal = 
TinkerMessenger.setVertexStart(localMessageScope.getIncidentTraversal().get().asAdmin(),
 this.vertex);
 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((edge[0] = e).vertices(direction).next()))
+.map(e -> 
this.messageBoard.receiveMessages.get(messageScope).get((edge[0] = 
e).vertices(direction).next()))
 .filter(q -> null != q)
 .flatMap(Queue::stream)
 .map(message 

[4/4] tinkerpop git commit: updated CHANGELOG.

2017-06-27 Thread okram
updated CHANGELOG.


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

Branch: refs/heads/tp31
Commit: 3b8c62892b3369a2ada0314f33f0b5122a4d6e82
Parents: d67b88b
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 07:54:00 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:54:00 2017 -0600

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/3b8c6289/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index d421cb5..5436fd9 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,8 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 TinkerPop 3.1.8 (Release Date: NOT OFFICIALLY RELEASED YET)
 ~~~
 
+* Fixed a `MessageScope` bug in `TinkerGraphComputer`.
+
 [[release-3-1-7]]
 TinkerPop 3.1.7 (Release Date: June 12, 2017)
 ~



[2/4] tinkerpop git commit: add the regression test

2017-06-27 Thread okram
add the regression test


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

Branch: refs/heads/tp31
Commit: 99679a037db3e86112471a40cd454114231852b6
Parents: 28c514d
Author: Sheldon 
Authored: Mon Jun 19 10:35:16 2017 +0100
Committer: Sheldon 
Committed: Mon Jun 19 11:20:37 2017 +0100

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


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/99679a03/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 1af0830..02ac5d4 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
@@ -24,11 +24,14 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticMapReduce;
 import org.apache.tinkerpop.gremlin.process.computer.util.StaticVertexProgram;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
+import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -38,9 +41,11 @@ import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.GRATEFUL;
@@ -1463,6 +1468,94 @@ public class GraphComputerTest extends 
AbstractGremlinProcessTest {
 public void storeState(final Configuration configuration) {
 VertexProgram.super.storeState(configuration);
 }
+}
+
+/
+@Test
+public void shouldSupportMultipleScopes() throws ExecutionException, 
InterruptedException {
+Vertex a = graph.addVertex("a");
+Vertex b = graph.addVertex("b");
+Vertex c = graph.addVertex("c");
+a.addEdge("edge", b);
+b.addEdge("edge", c);
+
+// Simple graph:
+// a -> b -> c
+
+// Execute a traversal program that sends an incoming message of "2" 
and an outgoing message of "1" from "b"
+// then each vertex sums any received messages
+ComputerResult result = graph.compute().program(new 
MultiScopeVertexProgram()).submit().get();
+
+// We expect the results to be {a=2, b=0, c=1}. Instead it is {a=3, 
b=0, c=3}
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("a").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(2L));
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("b").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(0L));
+assertEquals((Long) 
result.graph().traversal().V().hasLabel("c").next().property(MultiScopeVertexProgram.MEMORY_KEY).value(),Long.valueOf(1L));
+}
+
+public static class MultiScopeVertexProgram implements VertexProgram 
{
+
+private final MessageScope.Local countMessageScopeIn = 
MessageScope.Local.of(__::inE);
+private final MessageScope.Local countMessageScopeOut = 
MessageScope.Local.of(__::outE);
+
+private static final String MEMORY_KEY = "count";
+
+private static final Set COMPUTE_KEYS = 
Collections.singleton(MEMORY_KEY);
+
+@Override
+public void setup(final Memory memory) {}
+
+@Override
+public GraphComputer.Persist getPreferredPersist() {
+return GraphComputer.Persist.VERTEX_PROPERTIES;
+}
+
+@Override
+public Set getElementComputeKeys() {
+return COMPUTE_KEYS;
+}
+
+ 

[3/4] tinkerpop git commit: Merge branch 'tp31' of https://github.com/sheldonkhall/tinkerpop into tp31

2017-06-27 Thread okram
Merge branch 'tp31' of https://github.com/sheldonkhall/tinkerpop into tp31


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

Branch: refs/heads/tp31
Commit: d67b88b2bee75c68d3c5756a8dbf963f9de2df39
Parents: 3d50f5c 99679a0
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 07:53:22 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:53:22 2017 -0600

--
 .../process/computer/GraphComputerTest.java | 93 
 .../process/computer/TinkerMessageBoard.java|  4 +-
 .../process/computer/TinkerMessenger.java   | 22 +++--
 3 files changed, 109 insertions(+), 10 deletions(-)
--




[1/4] tinkerpop git commit: bugfix

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/tp31 3d50f5cf4 -> 3b8c62892


bugfix


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

Branch: refs/heads/tp31
Commit: 28c514da9065683ed90ea6aabc66ffdcbab99c11
Parents: b1c0723
Author: Sheldon 
Authored: Thu Jun 15 18:00:32 2017 +0100
Committer: Sheldon 
Committed: Mon Jun 19 11:20:20 2017 +0100

--
 .../process/computer/TinkerMessageBoard.java|  4 ++--
 .../process/computer/TinkerMessenger.java   | 22 +---
 2 files changed, 16 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28c514da/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
--
diff --git 
a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
 
b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
index b217801..422ab86 100644
--- 
a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
+++ 
b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/computer/TinkerMessageBoard.java
@@ -32,8 +32,8 @@ import java.util.concurrent.ConcurrentHashMap;
  */
 final class TinkerMessageBoard {
 
-public Map sendMessages = new ConcurrentHashMap<>();
-public Map receiveMessages = new ConcurrentHashMap<>();
+public Map> sendMessages = new 
ConcurrentHashMap<>();
+public Map> receiveMessages = new 
ConcurrentHashMap<>();
 public Set previousMessageScopes = new HashSet<>();
 public Set currentMessageScopes = new HashSet<>();
 

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/28c514da/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 3298aff..d3f2de5 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
@@ -37,6 +37,7 @@ import java.util.Optional;
 import java.util.Queue;
 import java.util.Spliterator;
 import java.util.Spliterators;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
@@ -59,14 +60,15 @@ public final class TinkerMessenger implements 
Messenger {
 @Override
 public Iterator receiveMessages() {
 final MultiIterator multiIterator = new MultiIterator<>();
-for (final MessageScope messageScope : 
this.messageBoard.previousMessageScopes) {
+for (final MessageScope messageScope : 
this.messageBoard.receiveMessages.keySet()) {
+//for (final MessageScope messageScope : 
this.messageBoard.previousMessageScopes) {
 if (messageScope instanceof MessageScope.Local) {
 final MessageScope.Local localMessageScope = 
(MessageScope.Local) messageScope;
 final Traversal.Admin incidentTraversal = 
TinkerMessenger.setVertexStart(localMessageScope.getIncidentTraversal().get().asAdmin(),
 this.vertex);
 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((edge[0] = e).vertices(direction).next()))
+.map(e -> 
this.messageBoard.receiveMessages.get(messageScope).get((edge[0] = 
e).vertices(direction).next()))
 .filter(q -> null != q)
 .flatMap(Queue::stream)
 .map(message 

[3/3] tinkerpop git commit: Merge branch 'tp32'

2017-06-27 Thread okram
Merge branch 'tp32'


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

Branch: refs/heads/master
Commit: 55af79f78fb8f1c84be8764728695d95ca8bcf18
Parents: 1ba875b 5ac61b7
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 07:50:39 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:50:39 2017 -0600

--
 CHANGELOG.asciidoc   | 1 +
 .../gremlin/process/traversal/step/map/EdgeVertexStep.java   | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)
--


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



[1/2] tinkerpop git commit: made the Direction method protected.

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/tp32 1518cc420 -> 5ac61b7af


made the Direction method protected.


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

Branch: refs/heads/tp32
Commit: 5ac61b7af2bb19dff84e100965587bd6eae29029
Parents: 2ba8deb
Author: Marko A. Rodriguez 
Authored: Fri Jun 23 09:20:02 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:50:22 2017 -0600

--
 .../gremlin/process/traversal/step/map/EdgeVertexStep.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5ac61b7a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
index d7ebd32..8bef835 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
@@ -35,7 +35,7 @@ import java.util.Set;
  */
 public class EdgeVertexStep extends FlatMapStep implements 
AutoCloseable {
 
-private Direction direction;
+protected Direction direction;
 
 public EdgeVertexStep(final Traversal.Admin traversal, final Direction 
direction) {
 super(traversal);



[1/3] tinkerpop git commit: made the Direction method protected.

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/master 1ba875bd7 -> 55af79f78


made the Direction method protected.


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

Branch: refs/heads/master
Commit: 5ac61b7af2bb19dff84e100965587bd6eae29029
Parents: 2ba8deb
Author: Marko A. Rodriguez 
Authored: Fri Jun 23 09:20:02 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:50:22 2017 -0600

--
 .../gremlin/process/traversal/step/map/EdgeVertexStep.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5ac61b7a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
index d7ebd32..8bef835 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
@@ -35,7 +35,7 @@ import java.util.Set;
  */
 public class EdgeVertexStep extends FlatMapStep implements 
AutoCloseable {
 
-private Direction direction;
+protected Direction direction;
 
 public EdgeVertexStep(final Traversal.Admin traversal, final Direction 
direction) {
 super(traversal);



[2/3] tinkerpop git commit: EdgeVertexStep is no longer final and can be extended by providers.

2017-06-27 Thread okram
EdgeVertexStep is no longer final and can be extended by providers.


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

Branch: refs/heads/master
Commit: 2ba8debdabfdfdcdce231477b3584299746e9c8c
Parents: 1518cc4
Author: Marko A. Rodriguez 
Authored: Thu Jun 22 07:15:15 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:50:22 2017 -0600

--
 CHANGELOG.asciidoc | 1 +
 .../gremlin/process/traversal/step/map/EdgeVertexStep.java | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ba8debd/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 7a69469..1b46dcf 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -29,6 +29,7 @@ TinkerPop 3.2.6 (Release Date: NOT OFFICIALLY RELEASED YET)
 This release also includes changes from <>.
 
 * Added annotations to the traversal metrics pretty print.
+* `EdgeVertexStep` is no longer final and can be extended by providers.
 * Fixed `HADOOP_GREMLIN_LIBS` parsing for Windows.
 * Improved GraphSON serialization performance around `VertexProperty`.
 * Changed some tests in `EventStrategyProcessTest` which were enforcing some 
unintended semantics around transaction state.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ba8debd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
index 87c1561..d7ebd32 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
@@ -33,7 +33,7 @@ import java.util.Set;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public final class EdgeVertexStep extends FlatMapStep implements 
AutoCloseable {
+public class EdgeVertexStep extends FlatMapStep implements 
AutoCloseable {
 
 private Direction direction;
 



[2/2] tinkerpop git commit: EdgeVertexStep is no longer final and can be extended by providers.

2017-06-27 Thread okram
EdgeVertexStep is no longer final and can be extended by providers.


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

Branch: refs/heads/tp32
Commit: 2ba8debdabfdfdcdce231477b3584299746e9c8c
Parents: 1518cc4
Author: Marko A. Rodriguez 
Authored: Thu Jun 22 07:15:15 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 07:50:22 2017 -0600

--
 CHANGELOG.asciidoc | 1 +
 .../gremlin/process/traversal/step/map/EdgeVertexStep.java | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ba8debd/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 7a69469..1b46dcf 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -29,6 +29,7 @@ TinkerPop 3.2.6 (Release Date: NOT OFFICIALLY RELEASED YET)
 This release also includes changes from <>.
 
 * Added annotations to the traversal metrics pretty print.
+* `EdgeVertexStep` is no longer final and can be extended by providers.
 * Fixed `HADOOP_GREMLIN_LIBS` parsing for Windows.
 * Improved GraphSON serialization performance around `VertexProperty`.
 * Changed some tests in `EventStrategyProcessTest` which were enforcing some 
unintended semantics around transaction state.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ba8debd/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
index 87c1561..d7ebd32 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/EdgeVertexStep.java
@@ -33,7 +33,7 @@ import java.util.Set;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public final class EdgeVertexStep extends FlatMapStep implements 
AutoCloseable {
+public class EdgeVertexStep extends FlatMapStep implements 
AutoCloseable {
 
 private Direction direction;
 



tinkerpop git commit: TINKERPOP-1698 Changed format of property writes

2017-06-27 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1698 e9658c6a6 -> 9ede1f0f0


TINKERPOP-1698 Changed format of property writes

Write properties with streams instead of pulling them into a List in memory


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

Branch: refs/heads/TINKERPOP-1698
Commit: 9ede1f0f07bc736581fb2aa606c1002b2f7cd3b2
Parents: e9658c6
Author: Stephen Mallette 
Authored: Tue Jun 27 08:46:35 2017 -0400
Committer: Stephen Mallette 
Committed: Tue Jun 27 08:48:38 2017 -0400

--
 CHANGELOG.asciidoc  |   1 +
 .../structure/io/gryo/GryoSerializersV3d0.java  |  75 ++-
 .../structure/io/gryo/kryoshim/InputShim.java   |   2 +
 .../structure/io/gryo/kryoshim/OutputShim.java  |   2 +
 .../kryoshim/shaded/ShadedInputAdapter.java |   5 ++
 .../kryoshim/shaded/ShadedOutputAdapter.java|   7 +-
 .../structure/io/gryo/_3_3_0/edge-v3d0.kryo | Bin 41 -> 39 bytes
 .../io/gryo/_3_3_0/standardresult-v3d0.kryo | Bin 235 -> 229 bytes
 .../io/gryo/_3_3_0/traversalmetrics-v1d0.kryo   | Bin 294 -> 306 bytes
 .../io/gryo/_3_3_0/traverser-v3d0.kryo  | Bin 216 -> 210 bytes
 .../structure/io/gryo/_3_3_0/tree-v3d0.kryo | Bin 293 -> 277 bytes
 .../structure/io/gryo/_3_3_0/vertex-v3d0.kryo   | Bin 207 -> 201 bytes
 .../io/gryo/_3_3_0/vertexproperty-v3d0.kryo | Bin 26 -> 23 bytes
 .../kryoshim/unshaded/UnshadedInputAdapter.java |   5 ++
 .../unshaded/UnshadedOutputAdapter.java |   5 ++
 15 files changed, 66 insertions(+), 36 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9ede1f0f/CHANGELOG.asciidoc
--
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index f6c9d96..079c217 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET)
 ~~~
 
+* Established the Gryo 3.0 format.
 * `GryoVersion` now includes a default `ClassResolver` to supply to the 
`GryoMapper`.
 * `GryoClassResolver` renamed to `GryoClassResolverV1d0` which has an abstract 
class that for providers to extend in `AbstractGryoClassResolver`.
 * Graphite and Ganglia are no longer packaged with the Gremlin Server 
distribution.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9ede1f0f/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3d0.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3d0.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3d0.java
index 20e13c4..82fa178 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3d0.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3d0.java
@@ -31,10 +31,10 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.util.MutableMetrics;
 import org.apache.tinkerpop.gremlin.process.traversal.util.OrP;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics;
 import org.apache.tinkerpop.gremlin.structure.Edge;
+import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
-import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
 import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.InputShim;
 import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.KryoShim;
 import org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.OutputShim;
@@ -51,6 +51,7 @@ import 
org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -86,14 +87,18 @@ public final class GryoSerializersV3d0 {
 }
 
 kryo.writeClassAndObject(output, edge.outVertex().id());
-output.writeString(edge.outVertex().label());
-
-final List properties = 
IteratorUtils.asList(edge.properties());
-output.writeInt(properties.size());
-properties.forEach(p -> {
-   

tinkerpop git commit: TINKERPOP-1698 Include traversal index in deserialization

2017-06-27 Thread spmallette
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1698 65045547c -> e9658c6a6


TINKERPOP-1698 Include traversal index in deserialization

Seems like it is needed for giraph for some reason.


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

Branch: refs/heads/TINKERPOP-1698
Commit: e9658c6a6ed50db903d7f0b031015cec7c5d24a1
Parents: 6504554
Author: Stephen Mallette 
Authored: Tue Jun 27 07:42:07 2017 -0400
Committer: Stephen Mallette 
Committed: Tue Jun 27 07:42:07 2017 -0400

--
 .../process/traversal/util/DefaultTraversalMetrics.java  | 7 ++-
 .../gremlin/process/traversal/step/map/ProfileTest.java  | 8 
 2 files changed, 10 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9658c6a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java
index 584456a..3c543f6 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalMetrics.java
@@ -34,6 +34,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * @author Bob Briody (http://bobbriody.com)
@@ -63,7 +64,11 @@ public final class DefaultTraversalMetrics implements 
TraversalMetrics, Serializ
 public DefaultTraversalMetrics(final long totalStepDurationNs, final 
List metricsMap) {
 this.totalStepDuration = totalStepDurationNs;
 this.computedMetrics = new LinkedHashMap<>(this.metrics.size());
-metricsMap.forEach(metric -> this.computedMetrics.put(metric.getId(), 
metric.getImmutableClone()));
+final AtomicInteger counter = new AtomicInteger(0);
+metricsMap.forEach(metric -> {
+this.computedMetrics.put(metric.getId(), 
metric.getImmutableClone());
+this.indexToLabelMap.put(counter.getAndIncrement(), 
metric.getId());
+});
 }
 
 @Override

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9658c6a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java
--
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java
index 06afc1f..2dc0e3b 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java
@@ -153,7 +153,7 @@ public abstract class ProfileTest extends 
AbstractGremlinProcessTest {
 validate_g_V_out_out_profile_grateful(traversalMetrics);
 }
 
-private void validate_g_V_out_out_profile_grateful(TraversalMetrics 
traversalMetrics) {
+private void validate_g_V_out_out_profile_grateful(final TraversalMetrics 
traversalMetrics) {
 traversalMetrics.toString(); // ensure no exceptions are thrown
 
 Metrics metrics = traversalMetrics.getMetrics(0);
@@ -206,7 +206,7 @@ public abstract class ProfileTest extends 
AbstractGremlinProcessTest {
 
validate_g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profile(traversalMetrics);
 }
 
-private void 
validate_g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profile(TraversalMetrics
 traversalMetrics) {
+private void 
validate_g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profile(final
 TraversalMetrics traversalMetrics) {
 traversalMetrics.toString(); // ensure no exceptions are thrown
 
 // Grab the second (sideEffect{sleep}) step and check the times.
@@ -253,7 +253,7 @@ public abstract class ProfileTest extends 
AbstractGremlinProcessTest {
 
!traversal.asAdmin().getStrategies().toList().contains(ComputerVerificationStrategy.instance()));
 }
 
-private void validate_g_V_repeat_both_modern_profile(TraversalMetrics 
traversalMetrics, boolean withRepeatUnrollStrategy) {
+