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

[2/4] incubator-tinkerpop git commit: added GraphTraversalSourceStub for ensuring that withXXX() utilities are prior to GraphTraversal exposure. This makes the Graph DSL much cleaner as you can only do your withXXX operations prior to your traversal defi

added GraphTraversalSourceStub for ensuring that withXXX() utilities are prior to GraphTraversal exposure. This makes the Graph DSL much cleaner as you can only do your withXXX operations prior to your traversal definition.


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

Branch: refs/heads/refactor-io
Commit: f7ef918bfd0c074a8cefa66f86bdade4595f03e9
Parents: f92ac86
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Thu Apr 23 12:11:43 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Thu Apr 23 12:11:43 2015 -0600

----------------------------------------------------------------------
 .../dsl/graph/EmptyGraphTraversal.java          |   5 -
 .../traversal/dsl/graph/GraphTraversal.java     |  29 -----
 .../dsl/graph/GraphTraversalSource.java         | 115 +++++++++++++++++--
 .../gremlin/process/traversal/dsl/graph/__.java |  24 ----
 .../traversal/step/map/GroovyMapTest.groovy     |  12 +-
 .../step/sideEffect/GroovySackTest.groovy       |  26 ++---
 .../step/sideEffect/GroovySideEffectTest.groovy |   4 +-
 .../step/sideEffect/GroovyStoreTest.groovy      |   4 +-
 .../step/sideEffect/GroovySubgraphTest.groovy   |   4 +-
 .../gremlin/groovy/loaders/SugarLoader.groovy   |  36 +++++-
 .../process/traversal/step/map/MapTest.java     |  16 +--
 .../traversal/step/sideEffect/SackTest.java     |  28 ++---
 .../step/sideEffect/SideEffectTest.java         |   6 +-
 .../traversal/step/sideEffect/StoreTest.java    |   2 +-
 .../traversal/step/sideEffect/SubgraphTest.java |   4 +-
 .../tinkergraph/structure/TinkerGraphTest.java  |   2 +-
 16 files changed, 191 insertions(+), 126 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/EmptyGraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/EmptyGraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/EmptyGraphTraversal.java
index c0fa31e..b69cc74 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/EmptyGraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/EmptyGraphTraversal.java
@@ -47,11 +47,6 @@ public final class EmptyGraphTraversal<S, E> extends EmptyTraversal<S, E> implem
     }
 
     @Override
-    public GraphTraversal<S, E> withPath() {
-        return instance();
-    }
-
-    @Override
     public GraphTraversal<S, E> iterate() {
         return this;
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index 6e1ebda..35b3874 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -711,35 +711,6 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
 
     ///////////////////// UTILITY STEPS /////////////////////
 
-    public default GraphTraversal<S, E> withSideEffect(final String key, final Supplier supplier) {
-        this.asAdmin().getSideEffects().registerSupplier(key, supplier);
-        return this;
-    }
-
-    public default <A> GraphTraversal<S, E> withSack(final Supplier<A> initialValue, final UnaryOperator<A> splitOperator) {
-        this.asAdmin().getSideEffects().setSack(initialValue, Optional.of(splitOperator));
-        return this;
-    }
-
-    public default <A> GraphTraversal<S, E> withSack(final Supplier<A> initialValue) {
-        this.asAdmin().getSideEffects().setSack(initialValue, Optional.empty());
-        return this;
-    }
-
-    public default <A> GraphTraversal<S, E> withSack(final A initialValue, final UnaryOperator<A> splitOperator) {
-        this.asAdmin().getSideEffects().setSack(new ConstantSupplier<>(initialValue), Optional.of(splitOperator));
-        return this;
-    }
-
-    public default <A> GraphTraversal<S, E> withSack(A initialValue) {
-        this.asAdmin().getSideEffects().setSack(new ConstantSupplier<>(initialValue), Optional.empty());
-        return this;
-    }
-
-    public default GraphTraversal<S, E> withPath() {
-        return this.asAdmin().addStep(new PathIdentityStep<>(this.asAdmin()));
-    }
-
     public default GraphTraversal<S, E> as(final String stepLabel) {
         if (this.asAdmin().getSteps().size() == 0) this.asAdmin().addStep(new StartStep<>(this.asAdmin()));
         this.asAdmin().getEndStep().setLabel(stepLabel);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
index 0dd884f..4f04e57 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
@@ -27,16 +27,20 @@ import org.apache.tinkerpop.gremlin.process.traversal.engine.ComputerTraversalEn
 import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GraphStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.PathIdentityStep;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Transaction;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
+import org.apache.tinkerpop.gremlin.util.function.ConstantSupplier;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
+import java.util.function.Supplier;
+import java.util.function.UnaryOperator;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -76,27 +80,64 @@ public class GraphTraversalSource implements TraversalSource {
                         .removeStrategies(withoutStrategies.toArray(new Class[withoutStrategies.size()]));
     }
 
-    public GraphTraversal<Vertex, Vertex> addV(final Object... keyValues) {
-        final GraphTraversal.Admin<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(this.graph);
+    private <S> GraphTraversal.Admin<S, S> generateTraversal() {
+        final GraphTraversal.Admin<S, S> traversal = new DefaultGraphTraversal<>(this.graph);
         traversal.setEngine(this.engine.create(this.graph));
         traversal.setStrategies(this.strategies);
+        return traversal;
+    }
+
+    public GraphTraversal<Vertex, Vertex> addV(final Object... keyValues) {
+        final GraphTraversal.Admin<Vertex, Vertex> traversal = this.generateTraversal();
         return traversal.addStep(new AddVertexStartStep(traversal, keyValues));
     }
 
     public GraphTraversal<Vertex, Vertex> V(final Object... vertexIds) {
-        final GraphTraversal.Admin<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(this.graph);
-        traversal.setEngine(this.engine.create(this.graph));
-        traversal.setStrategies(this.strategies);
+        final GraphTraversal.Admin<Vertex, Vertex> traversal = this.generateTraversal();
         return traversal.addStep(new GraphStep<>(traversal, Vertex.class, vertexIds));
     }
 
     public GraphTraversal<Edge, Edge> E(final Object... edgesIds) {
-        final GraphTraversal.Admin<Edge, Edge> traversal = new DefaultGraphTraversal<>(this.graph);
-        traversal.setEngine(this.engine.create(this.graph));
-        traversal.setStrategies(this.strategies);
+        final GraphTraversal.Admin<Edge, Edge> traversal = this.generateTraversal();
         return traversal.addStep(new GraphStep<>(traversal, Edge.class, edgesIds));
     }
 
+    //// UTILITIES
+
+    public <S> GraphTraversalSourceStub withSideEffect(final String key, final Supplier supplier) {
+        final GraphTraversal.Admin traversal = this.generateTraversal();
+        traversal.getSideEffects().registerSupplier(key, supplier);
+        return new GraphTraversalSourceStub(traversal, false);
+    }
+
+    public <A> GraphTraversalSourceStub withSack(final Supplier<A> initialValue, final UnaryOperator<A> splitOperator) {
+        final GraphTraversal.Admin traversal = this.generateTraversal();
+        traversal.getSideEffects().setSack(initialValue, Optional.of(splitOperator));
+        return new GraphTraversalSourceStub(traversal, false);
+    }
+
+    public <A> GraphTraversalSourceStub withSack(final Supplier<A> initialValue) {
+        final GraphTraversal.Admin traversal = this.generateTraversal();
+        traversal.getSideEffects().setSack(initialValue, Optional.empty());
+        return new GraphTraversalSourceStub(traversal, false);
+    }
+
+    public <A> GraphTraversalSourceStub withSack(final A initialValue, final UnaryOperator<A> splitOperator) {
+        final GraphTraversal.Admin traversal = this.generateTraversal();
+        traversal.getSideEffects().setSack(new ConstantSupplier<>(initialValue), Optional.of(splitOperator));
+        return new GraphTraversalSourceStub(traversal, false);
+    }
+
+    public <A> GraphTraversalSourceStub withSack(final A initialValue) {
+        final GraphTraversal.Admin traversal = this.generateTraversal();
+        traversal.getSideEffects().setSack(new ConstantSupplier<>(initialValue), Optional.empty());
+        return new GraphTraversalSourceStub(traversal, false);
+    }
+
+    public <S> GraphTraversalSourceStub withPath() {
+        return new GraphTraversalSourceStub(this.generateTraversal(), true);
+    }
+
     public Transaction tx() {
         return this.graph.tx();
     }
@@ -167,4 +208,62 @@ public class GraphTraversalSource implements TraversalSource {
                     null == this.withoutStrategies ? Collections.emptyList() : this.withoutStrategies);
         }
     }
+
+    public static class GraphTraversalSourceStub {
+
+        private final GraphTraversal.Admin traversal;
+        private boolean withPaths;
+
+        public GraphTraversalSourceStub(final GraphTraversal.Admin traversal, final boolean withPaths) {
+            this.traversal = traversal;
+            this.withPaths = withPaths;
+        }
+
+        public GraphTraversal<Vertex, Vertex> addV(final Object... keyValues) {
+            this.traversal.addStep(new AddVertexStartStep(this.traversal, keyValues));
+            return ((this.withPaths) ? this.traversal.addStep(new PathIdentityStep<>(this.traversal)) : this.traversal);
+        }
+
+        public GraphTraversal<Vertex, Vertex> V(final Object... vertexIds) {
+            this.traversal.addStep(new GraphStep<>(this.traversal, Vertex.class, vertexIds));
+            return ((this.withPaths) ? this.traversal.addStep(new PathIdentityStep<>(this.traversal)) : this.traversal);
+        }
+
+        public GraphTraversal<Edge, Edge> E(final Object... edgesIds) {
+            this.traversal.addStep(new GraphStep<>(this.traversal, Edge.class, edgesIds));
+            return ((this.withPaths) ? this.traversal.addStep(new PathIdentityStep<>(this.traversal)) : this.traversal);
+        }
+
+        //// UTILITIES
+
+        public GraphTraversalSourceStub withSideEffect(final String key, final Supplier supplier) {
+            this.traversal.getSideEffects().registerSupplier(key, supplier);
+            return this;
+        }
+
+        public <A> GraphTraversalSourceStub withSack(final Supplier<A> initialValue, final UnaryOperator<A> splitOperator) {
+            this.traversal.getSideEffects().setSack(initialValue, Optional.of(splitOperator));
+            return this;
+        }
+
+        public <A> GraphTraversalSourceStub withSack(final Supplier<A> initialValue) {
+            this.traversal.getSideEffects().setSack(initialValue, Optional.empty());
+            return this;
+        }
+
+        public <A> GraphTraversalSourceStub withSack(final A initialValue, final UnaryOperator<A> splitOperator) {
+            this.traversal.getSideEffects().setSack(new ConstantSupplier<>(initialValue), Optional.of(splitOperator));
+            return this;
+        }
+
+        public <A> GraphTraversalSourceStub withSack(final A initialValue) {
+            this.traversal.getSideEffects().setSack(new ConstantSupplier<>(initialValue), Optional.empty());
+            return this;
+        }
+
+        public GraphTraversalSourceStub withPath() {
+            this.withPaths = true;
+            return this;
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
index 7377023..a6345d8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
@@ -569,30 +569,6 @@ public class __ {
         return __.<A>start().profile();
     }
 
-    public static <A> GraphTraversal<A, A> withSideEffect(final String key, final Supplier supplier) {
-        return __.<A>start().withSideEffect(key, supplier);
-    }
-
-    public static <A, B> GraphTraversal<A, A> withSack(final Supplier<B> initialValue, final UnaryOperator<B> splitOperator) {
-        return __.<A>start().withSack(initialValue, splitOperator);
-    }
-
-    public static <A, B> GraphTraversal<A, A> withSack(final Supplier<B> initialValue) {
-        return __.<A>start().withSack(initialValue);
-    }
-
-    public static <A, B> GraphTraversal<A, A> withSack(final B initialValue, final UnaryOperator<B> splitOperator) {
-        return __.<A>start().withSack(initialValue, splitOperator);
-    }
-
-    public static <A, B> GraphTraversal<A, A> withSack(B initialValue) {
-        return __.<A>start().withSack(initialValue);
-    }
-
-    public static <A> GraphTraversal<A, A> withPath() {
-        return __.<A>start().withPath();
-    }
-
     public static <A> GraphTraversal<A, A> barrier() {
         return __.<A>start().barrier();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy
index 4726511..ff6a4c9 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMapTest.groovy
@@ -50,13 +50,13 @@ public abstract class GroovyMapTest {
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_asXaX_out_mapXa_nameX() {
-            g.V.withPath.as('a').out.map { v -> v.path('a').name };
+        public Traversal<Vertex, String> get_g_withPath_V_asXaX_out_mapXa_nameX() {
+            g.withPath().V.as('a').out.map { v -> v.path('a').name };
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_asXaX_out_out_mapXa_name_it_nameX() {
-            g.V().withPath().as('a').out.out().map { v -> v.path('a').name + v.name };
+        public Traversal<Vertex, String> get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX() {
+            g.withPath().V().as('a').out.out().map { v -> v.path('a').name + v.name };
         }
     }
 
@@ -115,13 +115,13 @@ public abstract class GroovyMapTest {
         }
 
         @Override
-        Traversal<Vertex, String> get_g_V_asXaX_out_mapXa_nameX() {
+        Traversal<Vertex, String> get_g_withPath_V_asXaX_out_mapXa_nameX() {
             // override with nothing until the test itself is supported
             return null
         }
 
         @Override
-        Traversal<Vertex, String> get_g_V_asXaX_out_out_mapXa_name_it_nameX() {
+        Traversal<Vertex, String> get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX() {
             // override with nothing until the test itself is supported
             return null
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy
index 1ccdb85..10681b7 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySackTest.groovy
@@ -18,10 +18,10 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect
 
+import org.apache.tinkerpop.gremlin.process.UseEngine
 import org.apache.tinkerpop.gremlin.process.computer.ComputerTestHelper
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine
-import org.apache.tinkerpop.gremlin.process.UseEngine
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__
 import org.apache.tinkerpop.gremlin.structure.Vertex
 
@@ -36,18 +36,18 @@ public abstract class GroovySackTest {
     public static class StandardTraversals extends SackTest {
 
         @Override
-        public Traversal<Vertex, Double> get_g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum() {
-            g.V().withSack(0.0f).outE.sack(sum, 'weight').inV.sack.sum()
+        public Traversal<Vertex, Double> get_g_withSackX0X_V_outE_sackXsum_weightX_inV_sack_sum() {
+            g.withSack(0.0f).V().outE.sack(sum, 'weight').inV.sack.sum()
         }
 
         @Override
-        public Traversal<Vertex, Float> get_g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
-            g.V.withSack(0.0f).repeat(__.outE.sack(sum, 'weight').inV).times(2).sack
+        public Traversal<Vertex, Float> get_g_withSackX0X_V_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
+            g.withSack(0.0f).V.repeat(__.outE.sack(sum, 'weight').inV).times(2).sack
         }
 
         @Override
-        public Traversal<Vertex, Map> get_g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack() {
-            g.V.withSack { [:] } { m -> m.clone() }.out().out().sack { m, v -> m['a'] = v.name; m }.sack()
+        public Traversal<Vertex, Map> get_g_withSackXmap__map_cloneX_V_out_out_sackXmap_a_nameX_sack() {
+            g.withSack([:]) { m -> m.clone() }.V.out().out().sack { m, v -> m['a'] = v.name; m }.sack()
         }
     }
 
@@ -55,18 +55,18 @@ public abstract class GroovySackTest {
     public static class ComputerTraversals extends SackTest {
 
         @Override
-        public Traversal<Vertex, Double> get_g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum() {
-            ComputerTestHelper.compute("g.V().withSack(0.0f).outE.sack(sum, 'weight').inV.sack.sum()", g);
+        public Traversal<Vertex, Double> get_g_withSackX0X_V_outE_sackXsum_weightX_inV_sack_sum() {
+            ComputerTestHelper.compute("g.withSack(0.0f).V().outE.sack(sum, 'weight').inV.sack.sum()", g);
         }
 
         @Override
-        public Traversal<Vertex, Float> get_g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
-            ComputerTestHelper.compute("g.V.withSack(0.0f).repeat(__.outE.sack(sum, 'weight').inV).times(2).sack", g)
+        public Traversal<Vertex, Float> get_g_withSackX0X_V_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
+            ComputerTestHelper.compute("g.withSack(0.0f).V.repeat(__.outE.sack(sum, 'weight').inV).times(2).sack", g)
         }
 
         @Override
-        public Traversal<Vertex, Map> get_g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack() {
-            ComputerTestHelper.compute("g.V.withSack { [:] } { m -> m.clone() }.out().out().sack { m, v -> m['a'] = v.name; m }.sack()", g);
+        public Traversal<Vertex, Map> get_g_withSackXmap__map_cloneX_V_out_out_sackXmap_a_nameX_sack() {
+            ComputerTestHelper.compute("g.withSack ([:]) { m -> m.clone() }.V.out().out().sack { m, v -> m['a'] = v.name; m }.sack()", g);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySideEffectTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySideEffectTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySideEffectTest.groovy
index 8e18716..bd04f2d 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySideEffectTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySideEffectTest.groovy
@@ -33,7 +33,7 @@ public abstract class GroovySideEffectTest {
 
         @Override
         public Traversal<Vertex, String> get_g_VX1X_sideEffectXstore_aX_name(final Object v1Id) {
-            g.V(v1Id).withSideEffect('a') { [] }.sideEffect {
+            g.withSideEffect('a') { [] }.V(v1Id).sideEffect {
                 it.sideEffects('a').clear();
                 it.sideEffects('a').add(it.get());
             }.name;
@@ -41,7 +41,7 @@ public abstract class GroovySideEffectTest {
 
         @Override
         public Traversal<Vertex, String> get_g_VX1X_out_sideEffectXincr_cX_name(final Object v1Id) {
-            g.V(v1Id).withSideEffect('c') { [0] }.out.sideEffect {
+            g.withSideEffect('c') { [0] }.V(v1Id).out.sideEffect {
                 def temp = it.sideEffects('c')[0];
                 it.sideEffects('c').clear();
                 it.sideEffects('c').add(temp + 1);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyStoreTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyStoreTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyStoreTest.groovy
index 5e31723..971a4f7 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyStoreTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyStoreTest.groovy
@@ -46,7 +46,7 @@ public abstract class GroovyStoreTest {
 
         @Override
         public Traversal<Vertex, Set<String>> get_g_V_withSideEffectXa_setX_both_name_storeXaX_capXaX() {
-            g.V.withSideEffect('a') { [] as Set }.both.name.store('a').cap('a')
+            g.withSideEffect('a') { [] as Set }.V.both.name.store('a').cap('a')
         }
 
 
@@ -72,7 +72,7 @@ public abstract class GroovyStoreTest {
 
         @Override
         public Traversal<Vertex, Set<String>> get_g_V_withSideEffectXa_setX_both_name_storeXaX_capXaX() {
-            ComputerTestHelper.compute("g.V.withSideEffect('a'){[] as Set}.both.name.store('a').cap('a')", g);
+            ComputerTestHelper.compute("g.withSideEffect('a'){[] as Set}.V.both.name.store('a').cap('a')", g);
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySubgraphTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySubgraphTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySubgraphTest.groovy
index a7c00ee..620b0ff 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySubgraphTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovySubgraphTest.groovy
@@ -36,13 +36,13 @@ public abstract class GroovySubgraphTest {
         @Override
         public Traversal<Vertex, Graph> get_g_V_withSideEffectXsgX_outEXknowsX_subgraphXsgX_name_capXsgX(
                 final Object v1Id, final Graph subgraph) {
-            g.V(v1Id).withSideEffect('sg') { subgraph }.outE('knows').subgraph('sg').name.cap('sg')
+            g.withSideEffect('sg') { subgraph }.V(v1Id).outE('knows').subgraph('sg').name.cap('sg')
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_withSideEffectXsgX_repeatXbothEXcreatedX_subgraphXsgX_outVX_timesX5X_name_dedup(
                 final Graph subgraph) {
-            g.V.withSideEffect('sg') { subgraph }.repeat(__.bothE('created').subgraph('sg').outV).times(5).name.dedup
+            g.withSideEffect('sg') { subgraph }.V.repeat(__.bothE('created').subgraph('sg').outV).times(5).name.dedup
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/loaders/SugarLoader.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/loaders/SugarLoader.groovy b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/loaders/SugarLoader.groovy
index fb7af32..e256db1 100644
--- a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/loaders/SugarLoader.groovy
+++ b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/loaders/SugarLoader.groovy
@@ -58,7 +58,11 @@ class SugarLoader {
         }
 
         GraphTraversalSource.metaClass.getProperty = { final String key ->
-            GraphTraversalContextCategory.get((GraphTraversalSource) delegate, key);
+            GraphTraversalSourceCategory.get((GraphTraversalSource) delegate, key);
+        }
+
+        GraphTraversalSource.GraphTraversalSourceStub.metaClass.getProperty = { final String key ->
+            GraphTraversalSourceStubCategory.get((GraphTraversalSource.GraphTraversalSourceStub) delegate, key);
         }
 
         // __.age and __.out
@@ -84,7 +88,8 @@ class SugarLoader {
         }
 
         Traverser.metaClass.mixin(TraverserCategory.class);
-        GraphTraversalSource.metaClass.mixin(GraphTraversalContextCategory.class);
+        GraphTraversalSource.metaClass.mixin(GraphTraversalSourceCategory.class);
+        GraphTraversalSource.GraphTraversalSourceStub.metaClass.mixin(GraphTraversalSourceStubCategory.class);
         GraphTraversal.metaClass.mixin(GraphTraversalCategory.class);
         Vertex.metaClass.mixin(VertexCategory.class);
         Edge.metaClass.mixin(ElementCategory.class);
@@ -148,16 +153,35 @@ class SugarLoader {
         }
     }
 
-    public static class GraphTraversalContextCategory {
+    public static class GraphTraversalSourceCategory {
+
+        private static final String V = "V";
+        private static final String E = "E";
+
+        public static final get(final GraphTraversalSource graphTraversalSource, final String key) {
+            if (key.equals(V))
+                return graphTraversalSource.V();
+            else if (key.equals(E))
+                return graphTraversalSource.E();
+            else
+                throw new UnsupportedOperationException("The provided key does not reference a known method: " + key);
+        }
+
+        /*public String toString() {
+            return StringFactory.graphString(this.metaClass.owner, "");
+        }*/
+    }
+
+    public static class GraphTraversalSourceStubCategory {
 
         private static final String V = "V";
         private static final String E = "E";
 
-        public static final get(final GraphTraversalSource graphTraversalContext, final String key) {
+        public static final get(final GraphTraversalSource.GraphTraversalSourceStub graphTraversalSourceStub, final String key) {
             if (key.equals(V))
-                return graphTraversalContext.V();
+                return graphTraversalSourceStub.V();
             else if (key.equals(E))
-                return graphTraversalContext.E();
+                return graphTraversalSourceStub.E();
             else
                 throw new UnsupportedOperationException("The provided key does not reference a known method: " + key);
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java
index 20569eb..0b18f3d 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MapTest.java
@@ -42,9 +42,9 @@ public abstract class MapTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Integer> get_g_VX1X_out_mapXnameX_mapXlengthX(final Object v1Id);
 
-    public abstract Traversal<Vertex, String> get_g_V_asXaX_out_mapXa_nameX();
+    public abstract Traversal<Vertex, String> get_g_withPath_V_asXaX_out_mapXa_nameX();
 
-    public abstract Traversal<Vertex, String> get_g_V_asXaX_out_out_mapXa_name_it_nameX();
+    public abstract Traversal<Vertex, String> get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX();
 
     @Test
     @LoadGraphWith(MODERN)
@@ -91,7 +91,7 @@ public abstract class MapTest extends AbstractGremlinProcessTest {
         int josh = 0;
         int other = 0;
 
-        final Traversal<Vertex, String> traversal = get_g_V_asXaX_out_mapXa_nameX();
+        final Traversal<Vertex, String> traversal = get_g_withPath_V_asXaX_out_mapXa_nameX();
         printTraversalForm(traversal);
         while (traversal.hasNext()) {
             final String name = traversal.next();
@@ -110,7 +110,7 @@ public abstract class MapTest extends AbstractGremlinProcessTest {
     @LoadGraphWith(MODERN)
     @IgnoreEngine(TraversalEngine.Type.COMPUTER)
     public void g_V_asXaX_out_out_mapXa_name_it_nameX() {
-        final Traversal<Vertex, String> traversal = get_g_V_asXaX_out_out_mapXa_name_it_nameX();
+        final Traversal<Vertex, String> traversal = get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX();
         int counter = 0;
         while (traversal.hasNext()) {
             counter++;
@@ -140,13 +140,13 @@ public abstract class MapTest extends AbstractGremlinProcessTest {
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_asXaX_out_mapXa_nameX() {
-            return g.V().withPath().as("a").out().<String>map(v -> v.<Vertex>path("a").value("name"));
+        public Traversal<Vertex, String> get_g_withPath_V_asXaX_out_mapXa_nameX() {
+            return g.withPath().V().as("a").out().<String>map(v -> v.<Vertex>path("a").value("name"));
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_asXaX_out_out_mapXa_name_it_nameX() {
-            return g.V().withPath().as("a").out().out().map(v -> v.<Vertex>path("a").<String>value("name") + v.get().<String>value("name"));
+        public Traversal<Vertex, String> get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX() {
+            return g.withPath().V().as("a").out().out().map(v -> v.<Vertex>path("a").<String>value("name") + v.get().<String>value("name"));
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java
index 0149831..552db42 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SackTest.java
@@ -21,9 +21,9 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect;
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import org.apache.tinkerpop.gremlin.process.IgnoreEngine;
+import org.apache.tinkerpop.gremlin.process.UseEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
 import org.apache.tinkerpop.gremlin.structure.Operator;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.junit.Test;
@@ -33,7 +33,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.outE;
 import static org.junit.Assert.*;
 
 /**
@@ -41,16 +41,16 @@ import static org.junit.Assert.*;
  */
 public abstract class SackTest extends AbstractGremlinProcessTest {
 
-    public abstract Traversal<Vertex, Double> get_g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum();
+    public abstract Traversal<Vertex, Double> get_g_withSackX0X_V_outE_sackXsum_weightX_inV_sack_sum();
 
-    public abstract Traversal<Vertex, Float> get_g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack();
+    public abstract Traversal<Vertex, Float> get_g_withSackX0X_V_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack();
 
-    public abstract Traversal<Vertex, Map> get_g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack();
+    public abstract Traversal<Vertex, Map> get_g_withSackXmap__map_cloneX_V_out_out_sackXmap_a_nameX_sack();
 
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum() {
-        final Traversal<Vertex, Double> traversal = get_g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum();
+        final Traversal<Vertex, Double> traversal = get_g_withSackX0X_V_outE_sackXsum_weightX_inV_sack_sum();
         assertEquals(3.5d, traversal.next(), 0.00001d);
         assertFalse(traversal.hasNext());
     }
@@ -59,7 +59,7 @@ public abstract class SackTest extends AbstractGremlinProcessTest {
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
-        final Traversal<Vertex, Float> traversal = get_g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack();
+        final Traversal<Vertex, Float> traversal = get_g_withSackX0X_V_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack();
         super.checkResults(Arrays.asList(2.0f, 1.4f), traversal);
     }
 
@@ -67,7 +67,7 @@ public abstract class SackTest extends AbstractGremlinProcessTest {
     @LoadGraphWith(MODERN)
     @IgnoreEngine(TraversalEngine.Type.COMPUTER)
     public void g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack() {
-        final Traversal<Vertex, Map> traversal = get_g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack();
+        final Traversal<Vertex, Map> traversal = get_g_withSackXmap__map_cloneX_V_out_out_sackXmap_a_nameX_sack();
         int counter = 0;
         while (traversal.hasNext()) {
             final Map map = traversal.next();
@@ -83,18 +83,18 @@ public abstract class SackTest extends AbstractGremlinProcessTest {
     @UseEngine(TraversalEngine.Type.COMPUTER)
     public static class Traversals extends SackTest {
         @Override
-        public Traversal<Vertex, Double> get_g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum() {
-            return g.V().withSack(0.0f).outE().sack(Operator.sum, "weight").inV().sack().sum();
+        public Traversal<Vertex, Double> get_g_withSackX0X_V_outE_sackXsum_weightX_inV_sack_sum() {
+            return g.withSack(0.0f).V().outE().sack(Operator.sum, "weight").inV().sack().sum();
         }
 
         @Override
-        public Traversal<Vertex, Float> get_g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
-            return g.V().withSack(0.0f).repeat(outE().sack(Operator.sum, "weight").inV()).times(2).sack();
+        public Traversal<Vertex, Float> get_g_withSackX0X_V_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
+            return g.withSack(0.0f).V().repeat(outE().sack(Operator.sum, "weight").inV()).times(2).sack();
         }
 
         @Override
-        public Traversal<Vertex, Map> get_g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack() {
-            return g.V().<HashMap>withSack(HashMap::new, m -> (HashMap) m.clone()).out().out().<Map>sack((map, vertex) -> {
+        public Traversal<Vertex, Map> get_g_withSackXmap__map_cloneX_V_out_out_sackXmap_a_nameX_sack() {
+            return g.<HashMap>withSack(HashMap::new, m -> (HashMap) m.clone()).V().out().out().<Map>sack((map, vertex) -> {
                 map.put("a", vertex.value("name"));
                 return map;
             }).sack();

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectTest.java
index 0929f89..8f42867 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SideEffectTest.java
@@ -88,7 +88,7 @@ public abstract class SideEffectTest extends AbstractGremlinTest {
 
         @Override
         public Traversal<Vertex, String> get_g_VX1X_sideEffectXstore_aX_name(final Object v1Id) {
-            return g.V(v1Id).withSideEffect("a", ArrayList::new).sideEffect(traverser -> {
+            return g.withSideEffect("a", ArrayList::new).V(v1Id).sideEffect(traverser -> {
                 traverser.<List>sideEffects("a").clear();
                 traverser.<List<Vertex>>sideEffects("a").add(traverser.get());
             }).values("name");
@@ -96,11 +96,11 @@ public abstract class SideEffectTest extends AbstractGremlinTest {
 
         @Override
         public Traversal<Vertex, String> get_g_VX1X_out_sideEffectXincr_cX_name(final Object v1Id) {
-            return g.V(v1Id).withSideEffect("c", () -> {
+            return g.withSideEffect("c", () -> {
                 final List<Integer> list = new ArrayList<>();
                 list.add(0);
                 return list;
-            }).out().sideEffect(traverser -> {
+            }).V(v1Id).out().sideEffect(traverser -> {
                 Integer temp = traverser.<List<Integer>>sideEffects("c").get(0);
                 traverser.<List<Integer>>sideEffects("c").clear();
                 traverser.<List<Integer>>sideEffects("c").add(temp + 1);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreTest.java
index 27a376b..16c724e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/StoreTest.java
@@ -126,7 +126,7 @@ public abstract class StoreTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Set<String>> get_g_V_withSideEffectXa_setX_both_name_storeXaX_capXaX() {
-            return g.V().withSideEffect("a", HashSetSupplier.instance()).both().<String>values("name").store("a").cap("a");
+            return g.withSideEffect("a", HashSetSupplier.instance()).V().both().<String>values("name").store("a").cap("a");
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SubgraphTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SubgraphTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SubgraphTest.java
index 99aae9f..3305538 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SubgraphTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/SubgraphTest.java
@@ -105,12 +105,12 @@ public abstract class SubgraphTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Graph> get_g_V_withSideEffectXsgX_outEXknowsX_subgraphXsgX_name_capXsgX(final Object v1Id, final Graph subgraph) {
-            return g.V(v1Id).withSideEffect("sg", () -> subgraph).outE("knows").subgraph("sg").values("name").cap("sg");
+            return g.withSideEffect("sg", () -> subgraph).V(v1Id).outE("knows").subgraph("sg").values("name").cap("sg");
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_withSideEffectXsgX_repeatXbothEXcreatedX_subgraphXsgX_outVX_timesX5X_name_dedup(final Graph subgraph) {
-            return g.V().withSideEffect("sg", () -> subgraph).repeat(bothE("created").subgraph("sg").outV()).times(5).<String>values("name").dedup();
+            return g.withSideEffect("sg", () -> subgraph).V().repeat(bothE("created").subgraph("sg").outV()).times(5).<String>values("name").dedup();
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f7ef918b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
----------------------------------------------------------------------
diff --git 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
index 3be3883..23ff040 100644
--- 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
@@ -106,7 +106,7 @@ public class TinkerGraphTest {
         v7.addEdge("link", v9, "weight", 1f);
         v8.addEdge("link", v9, "weight", 7f);
 
-        g.traversal().V(v1).withSack(Float.MIN_VALUE).repeat(outE().sack(Operator.max, "weight").inV()).times(5).sack().forEachRemaining(System.out::println);
+        g.traversal().withSack(Float.MIN_VALUE).V(v1).repeat(outE().sack(Operator.max, "weight").inV()).times(5).sack().forEachRemaining(System.out::println);
     }
 
    /* @Test