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

[6/8] incubator-tinkerpop git commit: Merge branch 'master' into local

Merge branch 'master' into local

Resolved Conflicts:
	CHANGELOG.asciidoc
	gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
	gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
	gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
	tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java


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

Branch: refs/heads/master
Commit: 962150e77fffa65f3abde9ed207f09f3a4857a92
Parents: a40babe 9024bbd
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Fri Feb 13 23:24:47 2015 +0100
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Fri Feb 13 23:24:47 2015 +0100

----------------------------------------------------------------------
 .travis.yml                                     |  16 +++
 CHANGELOG.asciidoc                              |  20 +++
 CONTRIBUTING.asciidoc                           |  16 +++
 README.asciidoc                                 |  18 +++
 docs/preprocessor/processor.groovy              |  19 +++
 docs/src/acknowledgements.asciidoc              |  16 +++
 docs/src/conclusion.asciidoc                    |  16 +++
 docs/src/gremlin-applications.asciidoc          |  16 +++
 docs/src/implementations.asciidoc               |  16 +++
 docs/src/index.asciidoc                         |  16 +++
 docs/src/intro.asciidoc                         |  16 +++
 docs/src/preface.asciidoc                       |  16 +++
 docs/src/the-graph.asciidoc                     |  16 +++
 docs/src/the-graphcomputer.asciidoc             |  16 +++
 docs/src/the-traversal.asciidoc                 |  16 +++
 docs/src/tinkerpop-contributors.asciidoc        |  16 +++
 gremlin-console/bin/gremlin.bat                 |  17 +++
 gremlin-console/bin/gremlin.sh                  |  19 +++
 gremlin-console/conf/log4j-console.properties   |  24 ++++
 gremlin-console/conf/log4j-repl.properties      |   8 --
 gremlin-console/conf/log4j.properties           |  17 +++
 gremlin-console/conf/remote-objects.yaml        |  17 +++
 gremlin-console/conf/remote.yaml                |  17 +++
 gremlin-console/src/main/bin/gremlin.bat        |  17 +++
 gremlin-console/src/main/bin/gremlin.sh         |   2 +-
 .../plugin/gremlin-server-integration.yaml      |  17 +++
 .../gremlin/console/groovy/plugin/remote.yaml   |  17 +++
 .../tinkerpop/gremlin/process/Traversal.java    |  71 +++++-----
 .../gremlin/process/TraversalEngine.java        |  22 ++-
 .../process/TraversalInterruptedException.java  |  50 +++++++
 .../gremlin/process/TraversalStrategies.java    |   2 +-
 .../gremlin/process/TraversalStrategy.java      |   2 +-
 .../traversal/TraversalVertexProgram.java       |  14 +-
 .../traversal/step/map/ComputerResultStep.java  |  70 ++++++----
 .../computer/util/DefaultComputerResult.java    |   2 +
 .../graph/traversal/DefaultGraphTraversal.java  |   4 +-
 .../process/graph/traversal/EdgeTraversal.java  |   2 +-
 .../graph/traversal/ElementTraversal.java       |   6 -
 .../process/graph/traversal/GraphTraversal.java |  19 +--
 .../traversal/VertexPropertyTraversal.java      |   2 +-
 .../graph/traversal/VertexTraversal.java        |   2 +-
 .../gremlin/process/graph/traversal/__.java     |   8 +-
 .../graph/traversal/step/map/BackStep.java      |   2 +-
 .../graph/traversal/step/map/SelectOneStep.java |   2 +-
 .../graph/traversal/step/map/SelectStep.java    |   2 +-
 .../traversal/step/sideEffect/GraphStep.java    |   2 +-
 .../traversal/step/sideEffect/GroupStep.java    |   2 +-
 .../traversal/step/sideEffect/ProfileStep.java  |   6 +-
 .../sideEffect/mapreduce/GroupMapReduce.java    |   7 +-
 .../traversal/step/util/ComputerAwareStep.java  |   4 +-
 .../ComparatorHolderRemovalStrategy.java        |   4 +-
 .../traversal/strategy/ConjunctionStrategy.java |   2 +-
 .../strategy/DedupOptimizerStrategy.java        |   2 +-
 .../strategy/EngineDependentStrategy.java       |   4 +-
 .../strategy/IdentityRemovalStrategy.java       |   2 +-
 .../strategy/LabeledEndStepStrategy.java        |   2 +-
 .../traversal/strategy/MatchWhereStrategy.java  |   2 +-
 .../traversal/strategy/ProfileStrategy.java     |   2 +-
 .../strategy/RangeByIsCountStrategy.java        |   2 +-
 .../traversal/strategy/ReducingStrategy.java    |   4 +-
 .../strategy/SideEffectCapStrategy.java         |   2 +-
 .../SideEffectRegistrationStrategy.java         |   2 +-
 .../strategy/TraversalVerificationStrategy.java |   9 +-
 .../traversal/util/EmptyGraphTraversal.java     |   5 -
 .../process/traversal/DefaultTraversal.java     |  76 ++++++++---
 .../traversal/DefaultTraversalStrategies.java   |   4 +-
 .../engine/ComputerTraversalEngine.java         |  57 ++++++++
 .../engine/StandardTraversalEngine.java         |  54 ++++++++
 .../lambda/AbstractLambdaTraversal.java         |  23 +++-
 .../traversal/lambda/HasNextTraversal.java      |  16 ++-
 .../process/traversal/util/EmptyTraversal.java  |  18 ++-
 .../util/EmptyTraversalStrategies.java          |   2 +-
 .../tinkerpop/gremlin/structure/Graph.java      |  14 +-
 .../structure/strategy/PartitionStrategy.java   |   9 +-
 .../structure/strategy/StrategyGraph.java       |  11 ++
 .../structure/util/batch/BatchGraph.java        |  12 ++
 .../structure/util/empty/EmptyGraph.java        |  12 ++
 .../util/InterruptedRuntimeException.java       |  41 ++++++
 .../loaders/SugarLoaderPerformanceTest.groovy   | 136 +++++++++++++++++++
 .../groovy/loaders/SugarLoaderTest.groovy       |  60 --------
 .../step/branch/GroovyUnionTest.groovy          |   2 +
 .../step/filter/GroovyDedupTest.groovy          |  10 +-
 .../step/filter/GroovySampleTest.groovy         |   3 +
 .../step/filter/GroovyWhereTest.groovy          |   3 +
 .../traversal/step/map/GroovyCountTest.groovy   |   2 +
 .../traversal/step/map/GroovyFoldTest.groovy    |   2 +
 .../traversal/step/map/GroovyMapTest.groovy     |   3 +
 .../traversal/step/map/GroovyOrderTest.groovy   |   8 +-
 .../traversal/step/map/GroovySelectTest.groovy  |   7 +
 .../GroovyEnvironmentPerformanceSuite.java      |   4 +-
 .../engine/GremlinExecutorPerformanceTest.java  |   1 -
 .../groovy/engine/GremlinExecutorTest.java      |  77 ++++++++++-
 .../jsr223/GremlinGroovyScriptEngineTest.java   |  31 +++++
 .../process/GroovyProcessComputerSuite.java     |   2 +-
 .../META-INF/javax.script.ScriptEngineFactory   |   1 -
 .../AbstractImportCustomizerProvider.java       |   8 +-
 .../gremlin/groovy/engine/GremlinExecutor.java  | 107 ++++++++-------
 .../groovy/engine/GroovyTraversalScript.java    |  17 +--
 gremlin-server/bin/gremlin-server.bat           |  17 +++
 gremlin-server/conf/gremlin-server-classic.yaml |  17 +++
 gremlin-server/conf/gremlin-server-min.yaml     |  17 +++
 gremlin-server/conf/gremlin-server-modern.yaml  |  17 +++
 gremlin-server/conf/gremlin-server-neo4j.yaml   |  17 +++
 .../conf/gremlin-server-rest-modern.yaml        |  17 +++
 gremlin-server/conf/gremlin-server.yaml         |  17 +++
 gremlin-server/src/main/bin/gremlin-server.bat  |  17 +++
 .../server/gremlin-server-integration.yaml      |  17 +++
 .../server/gremlin-server-performance.yaml      |  17 +++
 .../tinkerpop/gremlin/AbstractGremlinTest.java  |   5 +-
 .../apache/tinkerpop/gremlin/GraphProvider.java |   7 +-
 .../ranking/PageRankVertexProgramTest.java      |   2 +
 .../graph/traversal/step/branch/BranchTest.java |   4 +-
 .../graph/traversal/step/branch/ChooseTest.java |   2 +-
 .../graph/traversal/step/branch/LocalTest.java  |  18 +--
 .../graph/traversal/step/branch/RepeatTest.java |  18 +--
 .../graph/traversal/step/branch/UnionTest.java  |  12 +-
 .../graph/traversal/step/filter/AndTest.java    |   4 +-
 .../graph/traversal/step/filter/CoinTest.java   |   4 +-
 .../traversal/step/filter/CyclicPathTest.java   |   4 +-
 .../graph/traversal/step/filter/DedupTest.java  |  12 +-
 .../graph/traversal/step/filter/ExceptTest.java |  19 ++-
 .../graph/traversal/step/filter/FilterTest.java |  25 ++--
 .../graph/traversal/step/filter/HasNotTest.java |   4 +-
 .../graph/traversal/step/filter/HasTest.java    |  28 ++--
 .../graph/traversal/step/filter/IsTest.java     |  10 +-
 .../graph/traversal/step/filter/OrTest.java     |   4 +-
 .../graph/traversal/step/filter/RetainTest.java |   8 +-
 .../graph/traversal/step/filter/SampleTest.java |  14 +-
 .../traversal/step/filter/SimplePathTest.java   |   4 +-
 .../graph/traversal/step/filter/WhereTest.java  |   8 +-
 .../graph/traversal/step/map/BackTest.java      |  18 +--
 .../graph/traversal/step/map/CoalesceTest.java  |  10 +-
 .../graph/traversal/step/map/CountTest.java     |  16 ++-
 .../graph/traversal/step/map/FoldTest.java      |   6 +-
 .../graph/traversal/step/map/MapTest.java       |  13 +-
 .../graph/traversal/step/map/MaxTest.java       |   6 +-
 .../graph/traversal/step/map/MeanTest.java      |   4 +-
 .../graph/traversal/step/map/MinTest.java       |  10 +-
 .../graph/traversal/step/map/OrderTest.java     |  20 ++-
 .../graph/traversal/step/map/PathTest.java      |   4 +-
 .../traversal/step/map/PropertiesTest.java      |   4 +-
 .../graph/traversal/step/map/SelectTest.java    |  20 ++-
 .../graph/traversal/step/map/SumTest.java       |   4 +-
 .../graph/traversal/step/map/UnfoldTest.java    |   6 +-
 .../graph/traversal/step/map/ValueMapTest.java  |   9 +-
 .../graph/traversal/step/map/VertexTest.java    |  50 +++----
 .../step/sideEffect/AggregateTest.java          |   6 +-
 .../step/sideEffect/GroupCountTest.java         |  12 +-
 .../traversal/step/sideEffect/GroupTest.java    |  10 +-
 .../traversal/step/sideEffect/InjectTest.java   |   4 +-
 .../traversal/step/sideEffect/ProfileTest.java  |   4 +-
 .../traversal/step/sideEffect/SackTest.java     |   8 +-
 .../step/sideEffect/SideEffectCapTest.java      |   4 +-
 .../traversal/step/sideEffect/StoreTest.java    |   8 +-
 .../traversal/step/sideEffect/TreeTest.java     |   6 +-
 .../strategy/RangeByIsCountStrategyTest.java    |   4 +-
 .../TraversalVerificationStrategyTest.java      |  21 +--
 .../process/traversal/CoreTraversalTest.java    | 100 ++++++++++++++
 .../process/traversal/DefaultTraversalTest.java |   4 +-
 .../structure/GraphConstructionTest.java        |   1 +
 .../process/TraversalStrategiesTest.java        |   2 +-
 .../process/util/TraversalHelperTest.java       |   9 +-
 .../groovy/plugin/HadoopRemoteAcceptor.java     |   4 +-
 .../strategy/HadoopElementStepStrategy.java     |   4 +-
 .../gremlin/hadoop/structure/HadoopGraph.java   |  21 ++-
 .../structure/hdfs/HadoopElementIterator.java   |   6 +
 .../strategy/Neo4jGraphStepStrategy.java        |   2 +-
 .../gremlin/neo4j/structure/Neo4jGraph.java     |  19 ++-
 pom.xml                                         |  37 +++++
 .../strategy/TinkerElementStepStrategy.java     |   4 +-
 .../strategy/TinkerGraphStepStrategy.java       |   5 +-
 .../tinkergraph/structure/TinkerFactory.java    |   2 +-
 .../tinkergraph/structure/TinkerGraph.java      |  21 ++-
 .../tinkergraph/TinkerGraphGraphProvider.java   |   3 +-
 .../tinkergraph/structure/TinkerGraphTest.java  |  27 ++--
 175 files changed, 1960 insertions(+), 601 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 33a381d,8a32d56..a8a48bd
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -9,9 -25,12 +25,13 @@@ image::http://www.tinkerpop.com/docs/cu
  TinkerPop 3.0.0.M8 (Release Date: NOT OFFICIALLY RELEASED YET)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
 +* Added `dedup(local)` and `sample(local)`.
+ * `TraversalStrategy.apply(traversal)` is the new method signature as the `TraversalEngine` can be retrieved from the `Traversal`.
+ * `TraversalEngine` is now an interface and provided by the graph to the traversal at construction. `Graph` methods added to set the desired traversal engine to use.
  * Added `count(local)`, `sum(local)`, `max(local)`, `min(local)`, and `mean(local)` operating on the local object (e.g. collection, map, etc.)
  * `TraversalComparator` exists which allows for `order().by(outE().count(),decr)`.
+ * Added Apache Rat plugin to detect the proper inclusion of license headers in files.
+ * A `Traversal` now respects thread interruption during iteration, throwing a `TraversalInterruptionException` if it encounters interruption on the current thread.
  * Apache refactoring: `com.tinkerpop` -> `org.apache.tinkerpop`.
  * `Traversal` is now `Serializable` and with 99% of queries no longer needing lambdas, Gremlin-Java works over the wire.
  * Added `VertexProperty.Cardinality` with `list`, `set`, and `single`. No more `Vertex.singleProperty()` method.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/ElementTraversal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/__.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy
----------------------------------------------------------------------
diff --cc gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy
index 3e69814,8ef306f..a756cc8
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy
@@@ -18,15 -18,12 +18,16 @@@
   */
  package org.apache.tinkerpop.gremlin.process.graph.traversal.step.filter
  
 +import org.apache.tinkerpop.gremlin.process.ComputerTestHelper
 +import org.apache.tinkerpop.gremlin.process.Scope
  import org.apache.tinkerpop.gremlin.process.T
  import org.apache.tinkerpop.gremlin.process.Traversal
 -import org.apache.tinkerpop.gremlin.process.ComputerTestHelper
 -import org.apache.tinkerpop.gremlin.process.graph.traversal.step.filter.DedupTest
++import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine
  import org.apache.tinkerpop.gremlin.structure.Vertex
  
 +import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.bothE
 +import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.dedup
 +
  /**
   * @author Marko A. Rodriguez (http://markorodriguez.com)
   * @author Daniel Kuppitz (http://gremlin.guru)
@@@ -48,35 -45,22 +49,38 @@@ public abstract class GroovyDedupTest 
          public Traversal<Vertex, String> get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value() {
              g.V().both().properties('name').order.by { a, b -> a.value() <=> b.value() }.dedup.value
          }
 +
 +        @Override
 +        Traversal<Vertex, Map<String, Set<Double>>> get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXdedupXlocalXX_cap() {
 +            g.V().group().by(T.label).by(bothE().values('weight').fold()).by(dedup(Scope.local)).cap()
 +        }
      }
  
 -    public static class ComputerTestImpl extends DedupTest {
 +    public static class ComputerTest extends DedupTest {
          @Override
          public Traversal<Vertex, String> get_g_V_both_dedup_name() {
-             g.V.both.dedup.name // TODO
 -            ComputerTestHelper.compute("g.V.both.dedup.name", g);
++            g.engine(StandardTraversalEngine.instance()) // TODO
++            g.V.both.dedup.name
 +            //ComputerTestHelper.compute("g.V.both.dedup.name", g);
          }
  
          @Override
          public Traversal<Vertex, String> get_g_V_both_hasXlabel_softwareX_dedup_byXlangX_name() {
-             g.V.both.has(T.label, 'software').dedup.by('lang').name // TODO
 -            ComputerTestHelper.compute("g.V.both.has(T.label,'software').dedup.by('lang').name", g);
++            g.engine(StandardTraversalEngine.instance()) // TODO
++            g.V.both.has(T.label, 'software').dedup.by('lang').name
 +            //ComputerTestHelper.compute("g.V.both.has(T.label,'software').dedup.by('lang').name", g);
          }
  
          @Override
          public Traversal<Vertex, String> get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value() {
-             g.V().both().properties('name').order.by { a, b -> a.value() <=> b.value() }.dedup.value // TODO
 -            ComputerTestHelper.compute("g.V.both.properties('name').order.by { a, b -> a.value() <=> b.value() }.dedup.value", g);
++            g.engine(StandardTraversalEngine.instance()) // TODO
++            g.V().both().properties('name').order.by { a, b -> a.value() <=> b.value() }.dedup.value
 +            //ComputerTestHelper.compute("g.V.both.properties('name').order.by { a, b -> a.value() <=> b.value() }.dedup.value", g);
 +        }
 +
 +        @Override
 +        Traversal<Vertex, Map<String, Set<Double>>> get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXdedupXlocalXX_cap() {
 +            ComputerTestHelper.compute("g.V().group().by(T.label).by(bothE().values('weight').fold()).by(dedup(Scope.local)).cap()", g);
          }
      }
  }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
----------------------------------------------------------------------
diff --cc gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
index 801a527,06a691f..6f829f0
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
@@@ -18,11 -18,11 +18,12 @@@
   */
  package org.apache.tinkerpop.gremlin.process.graph.traversal.step.filter
  
 +import org.apache.tinkerpop.gremlin.process.ComputerTestHelper
 +import org.apache.tinkerpop.gremlin.process.Scope
 +import org.apache.tinkerpop.gremlin.process.T
  import org.apache.tinkerpop.gremlin.process.Traversal
  import org.apache.tinkerpop.gremlin.process.graph.traversal.__
 -import org.apache.tinkerpop.gremlin.process.ComputerTestHelper
 -import org.apache.tinkerpop.gremlin.process.graph.traversal.step.filter.SampleTest
+ import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine
  import org.apache.tinkerpop.gremlin.structure.Edge
  import org.apache.tinkerpop.gremlin.structure.Vertex
  

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessComputerSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java
index 234a182,7b82f7a..9e9b1f0
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java
@@@ -18,11 -18,10 +18,12 @@@
   */
  package org.apache.tinkerpop.gremlin.process.graph.traversal.step.filter;
  
 -import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
  import org.apache.tinkerpop.gremlin.LoadGraphWith;
 +import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 +import org.apache.tinkerpop.gremlin.process.Scope;
  import org.apache.tinkerpop.gremlin.process.T;
  import org.apache.tinkerpop.gremlin.process.Traversal;
++import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
  import org.apache.tinkerpop.gremlin.structure.Vertex;
  import org.apache.tinkerpop.gremlin.util.StreamFactory;
  import org.junit.Test;
@@@ -129,37 -104,5 +130,40 @@@ public abstract class DedupTest extend
          public Traversal<Vertex, String> get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value() {
              return g.V().both().<String>properties("name").order().by((a, b) -> a.value().compareTo(b.value())).dedup().value();
          }
 +
 +        @Override
 +        public Traversal<Vertex, Map<String, Set<Double>>> get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXdedupXlocalXX_cap() {
 +            return g.V().group().by(T.label).by(bothE().values("weight").fold()).by(dedup(Scope.local)).cap();
 +        }
 +    }
 +
 +    public static class ComputerTest extends StandardTest {
 +
 +        public ComputerTest() {
 +            requiresGraphComputer = true;
 +        }
 +
 +        @Override
 +        public Traversal<Vertex, String> get_g_V_both_dedup_name() {
-             return super.get_g_V_both_dedup_name()/*.submit(g.compute())*/; // TODO
++            g.engine(StandardTraversalEngine.instance()); // TODO
++            return super.get_g_V_both_dedup_name();
 +        }
 +
 +        @Override
 +        public Traversal<Vertex, String> get_g_V_both_hasXlabel_softwareX_dedup_byXlangX_name() {
-             return super.get_g_V_both_hasXlabel_softwareX_dedup_byXlangX_name()/*.submit(g.compute())*/; // TODO
++            g.engine(StandardTraversalEngine.instance()); // TODO
++            return super.get_g_V_both_hasXlabel_softwareX_dedup_byXlangX_name();
 +        }
 +
 +        @Override
 +        public Traversal<Vertex, String> get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value() {
-             return super.get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value()/*.submit(g.compute())*/; // TODO
++            g.engine(StandardTraversalEngine.instance()); // TODO
++            return super.get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value();
 +        }
 +
 +        @Override
 +        public Traversal<Vertex, Map<String, Set<Double>>> get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXdedupXlocalXX_cap() {
-             return super.get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXdedupXlocalXX_cap().submit(g.compute());
++            return super.get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXdedupXlocalXX_cap();
 +        }
      }
  }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
index bcd2724,ce3bfe6..e761d66
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
@@@ -20,9 -20,8 +20,10 @@@ package org.apache.tinkerpop.gremlin.pr
  
  import org.apache.tinkerpop.gremlin.LoadGraphWith;
  import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 +import org.apache.tinkerpop.gremlin.process.Scope;
 +import org.apache.tinkerpop.gremlin.process.T;
  import org.apache.tinkerpop.gremlin.process.Traversal;
+ import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
  import org.apache.tinkerpop.gremlin.structure.Edge;
  import org.apache.tinkerpop.gremlin.structure.Vertex;
  import org.junit.Test;
@@@ -150,27 -103,19 +151,30 @@@ public abstract class SampleTest extend
  
          @Override
          public Traversal<Edge, Edge> get_g_E_sampleX1X() {
-             return super.get_g_E_sampleX1X();   // TODO: makes no sense when its global
+             g.engine(StandardTraversalEngine.instance()); // TODO
 -            return g.E().sample(1);
++            return super.get_g_E_sampleX1X();
          }
  
          @Override
          public Traversal<Edge, Edge> get_g_E_sampleX2X_byXweightX() {
-             return super.get_g_E_sampleX2X_byXweightX(); // TODO: makes no sense when its global
+             g.engine(StandardTraversalEngine.instance()); // TODO
 -            return g.E().sample(2).by("weight");
++            return super.get_g_E_sampleX2X_byXweightX();
          }
  
          @Override
          public Traversal<Vertex, Edge> get_g_V_localXoutE_sampleX1X_byXweightXX() {
-             return super.get_g_V_localXoutE_sampleX1X_byXweightXX().submit(g.compute());
 -            return g.V().local(outE().sample(1).by("weight"));
++            g.engine(StandardTraversalEngine.instance()); // TODO
++            return super.get_g_V_localXoutE_sampleX1X_byXweightXX();
 +        }
 +
 +        @Override
 +        public Traversal<Vertex, Map<String, Collection<Double>>> get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_2XX() {
-             return super.get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_2XX().submit(g.compute());
++            return super.get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_2XX();
 +        }
 +
 +        @Override
 +        public Traversal<Vertex, Map<String, Collection<Double>>> get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_5XX() {
-             return super.get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_5XX().submit(g.compute());
++            return super.get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_5XX();
          }
      }
  }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MaxTest.java
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MaxTest.java
index f2370c1,38bac12..0807a64
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MaxTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MaxTest.java
@@@ -96,13 -74,7 +96,13 @@@ public abstract class MaxTest extends A
  
          @Override
          public Traversal<Vertex, Integer> get_g_V_repeatXbothX_timesX5X_age_max() {
-             return g.V().repeat(both()).times(5).values("age").<Integer>max().submit(g.compute());
+             return g.V().repeat(both()).times(5).values("age").<Integer>max();
          }
 +
 +        @Override
 +        public Traversal<Vertex, Map<String, Number>> get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_valuesXweightX_foldX_byXmaxXlocalXX() {
 +            return g.V().hasLabel("software").group().by("name").by(bothE().values("weight").fold()).
-                     by(max(Scope.local)).<Map<String, Number>>cap().submit(g.compute());
++                    by(max(Scope.local)).<Map<String, Number>>cap();
 +        }
      }
  }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MeanTest.java
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MeanTest.java
index 8fe5267,d061ad4..408df98
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MeanTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MeanTest.java
@@@ -86,13 -65,8 +86,13 @@@ public abstract class MeanTest extends 
  
          @Override
          public Traversal<Vertex, Double> get_g_V_age_mean() {
-             return g.V().values("age").mean().submit(g.compute());
+             return g.V().values("age").mean();
          }
  
 +        @Override
 +        public Traversal<Vertex, Map<String, Number>> get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_valuesXweightX_foldX_byXmeanXlocalXX() {
 +            return g.V().hasLabel("software").group().by("name").by(bothE().values("weight").fold()).
-                     by(mean(Scope.local)).<Map<String, Number>>cap().submit(g.compute());
++                    by(mean(Scope.local)).<Map<String, Number>>cap();
 +        }
      }
  }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MinTest.java
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MinTest.java
index 982c7bd,5fb65a1..000db05
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MinTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MinTest.java
@@@ -31,9 -29,6 +31,7 @@@ import java.util.Map
  
  import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
  import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.*;
- import static org.junit.Assert.assertEquals;
- import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertTrue;
++import static org.junit.Assert.*;
  
  /**
   * @author Marko A. Rodriguez (http://markorodriguez.com)
@@@ -98,13 -74,7 +96,13 @@@ public abstract class MinTest extends A
  
          @Override
          public Traversal<Vertex, Integer> get_g_V_repeatXbothX_timesX5X_age_min() {
-             return g.V().repeat(both()).times(5).values("age").<Integer>min().submit(g.compute());
+             return g.V().repeat(both()).times(5).values("age").<Integer>min();
          }
 +
 +        @Override
 +        public Traversal<Vertex, Map<String, Number>> get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_valuesXweightX_foldX_byXminXlocalXX() {
 +            return g.V().hasLabel("software").group().by("name").by(bothE().values("weight").fold()).
-                     by(min(Scope.local)).<Map<String, Number>>cap().submit(g.compute());
++                    by(min(Scope.local)).<Map<String, Number>>cap();
 +        }
      }
  }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SumTest.java
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SumTest.java
index bc66621,0000000..3da3143
mode 100644,000000..100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SumTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SumTest.java
@@@ -1,93 -1,0 +1,93 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one
 + * or more contributor license agreements. See the NOTICE file
 + * distributed with this work for additional information
 + * regarding copyright ownership. The ASF licenses this file
 + * to you under the Apache License, Version 2.0 (the
 + * "License"); you may not use this file except in compliance
 + * with the License. You may obtain a copy of the License at
 + *
 + * http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing,
 + * software distributed under the License is distributed on an
 + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 + * KIND, either express or implied. See the License for the
 + * specific language governing permissions and limitations
 + * under the License.
 + */
 +package org.apache.tinkerpop.gremlin.process.graph.traversal.step.map;
 +
 +import org.apache.tinkerpop.gremlin.LoadGraphWith;
 +import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 +import org.apache.tinkerpop.gremlin.process.Scope;
 +import org.apache.tinkerpop.gremlin.process.Traversal;
 +import org.apache.tinkerpop.gremlin.structure.Vertex;
 +import org.junit.Test;
 +
 +import java.util.Map;
 +
 +import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
 +import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.bothE;
 +import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.sum;
 +import static org.junit.Assert.*;
 +
 +/**
 + * @author Daniel Kuppitz (http://gremlin.guru)
 + */
 +public abstract class SumTest extends AbstractGremlinProcessTest {
 +
 +    public abstract Traversal<Vertex, Double> get_g_V_valuesXageX_sum();
 +
 +    public abstract Traversal<Vertex, Map<String, Number>> get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_valuesXweightX_foldX_byXsumXlocalXX();
 +
 +    @Test
 +    @LoadGraphWith(MODERN)
 +    public void g_V_valuesXageX_sum() {
 +        final Traversal<Vertex, Double> traversal = get_g_V_valuesXageX_sum();
 +        printTraversalForm(traversal);
 +        final Number sum = traversal.next();
 +        assertEquals(123.0, sum);
 +        assertFalse(traversal.hasNext());
 +    }
 +
 +    @Test
 +    @LoadGraphWith(MODERN)
 +    public void g_V_hasLabelXsoftwareX_group_byXnameX_byXin_valuesXageX_foldX_byXsumXlocalXX() {
 +        final Traversal<Vertex, Map<String, Number>> traversal = get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_valuesXweightX_foldX_byXsumXlocalXX();
 +        printTraversalForm(traversal);
 +        assertTrue(traversal.hasNext());
 +        final Map<String, Number> map = traversal.next();
 +        assertFalse(traversal.hasNext());
 +        assertEquals(2, map.size());
 +        assertEquals(1.0, map.get("ripple"));
 +        assertEquals(1.0, map.get("lop"));
 +    }
 +
 +    public static class StandardTest extends SumTest {
 +
 +        @Override
 +        public Traversal<Vertex, Double> get_g_V_valuesXageX_sum() {
 +            return g.V().values("age").sum();
 +        }
 +
 +        @Override
 +        public Traversal<Vertex, Map<String, Number>> get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_valuesXweightX_foldX_byXsumXlocalXX() {
 +            return g.V().hasLabel("software").group().by("name").by(bothE().values("weight").fold()).by(sum(Scope.local)).cap();
 +        }
 +    }
 +
 +    public static class ComputerTest extends SumTest {
 +
 +        @Override
 +        public Traversal<Vertex, Double> get_g_V_valuesXageX_sum() {
-             return g.V().values("age").sum().submit(g.compute());
++            return g.V().values("age").sum();
 +        }
 +
 +        @Override
 +        public Traversal<Vertex, Map<String, Number>> get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_valuesXweightX_foldX_byXsumXlocalXX() {
 +            return g.V().hasLabel("software").group().by("name").by(bothE().values("weight").fold()).
-                     by(sum(Scope.local)).<Map<String, Number>>cap().submit(g.compute());
++                    by(sum(Scope.local)).<Map<String, Number>>cap();
 +        }
 +    }
 +}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/962150e7/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
----------------------------------------------------------------------
diff --cc tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
index 5186eb7,ee04e8c..ada9914
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
@@@ -20,18 -20,19 +20,12 @@@ package org.apache.tinkerpop.gremlin.ti
  
  import org.apache.commons.io.FileUtils;
  import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
+ import org.apache.tinkerpop.gremlin.process.ComputerTestHelper;
 +import org.apache.tinkerpop.gremlin.process.Scope;
  import org.apache.tinkerpop.gremlin.process.T;
  import org.apache.tinkerpop.gremlin.process.Traversal;
--import org.apache.tinkerpop.gremlin.process.graph.traversal.strategy.RangeByIsCountStrategy;
--import org.apache.tinkerpop.gremlin.process.traversal.DefaultTraversal;
- import org.apache.tinkerpop.gremlin.process.util.metric.TraversalMetrics;
- import org.apache.tinkerpop.gremlin.structure.Direction;
- import org.apache.tinkerpop.gremlin.structure.Edge;
- import org.apache.tinkerpop.gremlin.structure.Graph;
- import org.apache.tinkerpop.gremlin.structure.Operator;
- import org.apache.tinkerpop.gremlin.structure.Order;
- import org.apache.tinkerpop.gremlin.structure.Vertex;
+ import org.apache.tinkerpop.gremlin.process.traversal.engine.ComputerTraversalEngine;
 -import org.apache.tinkerpop.gremlin.process.util.metric.TraversalMetrics;
 -import org.apache.tinkerpop.gremlin.structure.Direction;
 -import org.apache.tinkerpop.gremlin.structure.Edge;
 -import org.apache.tinkerpop.gremlin.structure.Graph;
 -import org.apache.tinkerpop.gremlin.structure.Operator;
 -import org.apache.tinkerpop.gremlin.structure.Order;
 -import org.apache.tinkerpop.gremlin.structure.Vertex;
++import org.apache.tinkerpop.gremlin.structure.*;
  import org.apache.tinkerpop.gremlin.structure.io.GraphReader;
  import org.apache.tinkerpop.gremlin.structure.io.graphml.GraphMLWriter;
  import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
@@@ -43,13 -44,13 +37,8 @@@ import org.junit.BeforeClass
  import org.junit.Ignore;
  import org.junit.Test;
  
--import java.io.File;
--import java.io.FileOutputStream;
--import java.io.IOException;
--import java.io.InputStream;
--import java.io.OutputStream;
++import java.io.*;
  import java.util.Arrays;
--import java.util.Comparator;
  import java.util.List;
  import java.util.Set;
  import java.util.function.Supplier;