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/03/11 15:20:13 UTC

incubator-tinkerpop git commit: TraversalContext and TraversalEngine work. Making it so GraphComputer is accessible as an Optional.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/newapi 9d7bab0fb -> d0bba77d4


TraversalContext and TraversalEngine work. Making it so GraphComputer is accessible as an Optional.


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

Branch: refs/heads/newapi
Commit: d0bba77d4d60b55616aa804f9c151e83a7ca70ce
Parents: 9d7bab0
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Mar 11 08:20:10 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Mar 11 08:20:10 2015 -0600

----------------------------------------------------------------------
 .../gremlin/process/TraversalContext.java       | 12 ++++--
 .../gremlin/process/TraversalEngine.java        |  6 +++
 .../traversal/TraversalClassSupplier.java       | 44 ++++++++++++++++++++
 .../traversal/TraversalVertexProgram.java       |  4 --
 .../graph/traversal/GraphTraversalContext.java  | 12 +++++-
 .../engine/ComputerTraversalEngine.java         |  7 ++--
 .../engine/StandardTraversalEngine.java         |  8 ++++
 .../tinkerpop/gremlin/structure/Graph.java      | 16 +++----
 .../gremlin/process/ComputerTestHelper.groovy   |  5 +--
 .../computer/GroovyGraphComputerTest.groovy     | 24 +++++------
 .../groovy/plugin/HadoopRemoteAcceptor.java     | 12 ++++--
 11 files changed, 110 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java
index fb43a39..a4adb9f 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalContext.java
@@ -18,9 +18,11 @@
  */
 package org.apache.tinkerpop.gremlin.process;
 
+import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 
 import java.io.Serializable;
+import java.util.Optional;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -29,6 +31,12 @@ public interface TraversalContext {
 
     public TraversalContext.Builder asBuilder();
 
+    public Optional<GraphComputer> getGraphComputer();
+
+    public Optional<Graph> getGraph();
+
+    /////////////
+
     public interface Builder<C extends TraversalContext> extends Serializable {
 
         public Builder engine(final TraversalEngine.Builder engine);
@@ -36,9 +44,5 @@ public interface TraversalContext {
         public Builder strategy(final TraversalStrategy strategy);
 
         public C create(final Graph graph);
-
-        ///
-
-        public TraversalEngine.Builder getTraversalEngineBuilder();
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
index 98d17f0..129e773 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
@@ -18,9 +18,11 @@
  */
 package org.apache.tinkerpop.gremlin.process;
 
+import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 
 import java.io.Serializable;
+import java.util.Optional;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -33,6 +35,8 @@ public interface TraversalEngine extends Serializable {
 
     public Type getType();
 
+    public Optional<GraphComputer> getGraphComputer();
+
     public default boolean isStandard() {
         return this.getType().equals(Type.STANDARD);
     }
@@ -41,6 +45,8 @@ public interface TraversalEngine extends Serializable {
         return this.getType().equals(Type.COMPUTER);
     }
 
+    ///////////
+
     public interface Builder extends Serializable {
         public TraversalEngine create(final Graph graph);
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalClassSupplier.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalClassSupplier.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalClassSupplier.java
new file mode 100644
index 0000000..cd97fd1
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalClassSupplier.java
@@ -0,0 +1,44 @@
+/*
+ * 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.computer.traversal;
+
+import org.apache.tinkerpop.gremlin.process.Traversal;
+
+import java.util.function.Supplier;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public final class TraversalClassSupplier<S, E> implements Supplier<Traversal.Admin<S, E>> {
+
+    private final Class<? extends Supplier<Traversal.Admin<S, E>>> traversalSupplierClass;
+
+    public TraversalClassSupplier(final Class<? extends Supplier<Traversal.Admin<S, E>>> traversalSupplierClass) {
+        this.traversalSupplierClass = traversalSupplierClass;
+    }
+
+    @Override
+    public Traversal.Admin<S, E> get() {
+        try {
+            return this.traversalSupplierClass.getConstructor().newInstance().get();
+        } catch (final Exception e) {
+            throw new IllegalStateException(e.getMessage(), e);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
index de1a956..d0f0930 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
@@ -256,10 +256,6 @@ public final class TraversalVertexProgram implements VertexProgram<TraverserSet<
             return this;
         }
 
-        /*public Builder traversal(final String traversalScript) {
-            return traversal(GREMLIN_GROOVY, traversalScript);
-        }*/
-
         public Builder traversal(final Traversal.Admin<?, ?> traversal) {
             return this.traversal(traversal, true);
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java
index d0630e0..ead8ee3 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/GraphTraversalContext.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.process.TraversalContext;
 import org.apache.tinkerpop.gremlin.process.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.TraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.TraversalStrategy;
+import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.process.graph.traversal.step.sideEffect.GraphStep;
 import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
 import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -31,6 +32,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -69,8 +71,14 @@ public class GraphTraversalContext implements TraversalContext {
         return new Builder();
     }
 
-    public Graph getGraph() {
-        return this.graph;
+    @Override
+    public Optional<GraphComputer> getGraphComputer() {
+        return this.engine.create(this.graph).getGraphComputer();
+    }
+
+    @Override
+    public Optional<Graph> getGraph() {
+        return Optional.ofNullable(this.graph);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
index 1863c12..b1184b5 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
@@ -27,6 +27,7 @@ import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
 import java.io.Serializable;
+import java.util.Optional;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -55,15 +56,15 @@ public final class ComputerTraversalEngine implements TraversalEngine {
         return StringFactory.traversalEngineString(this);
     }
 
-    public GraphComputer getGraphComputer() {
-        return this.graphComputer;
+    @Override
+    public Optional<GraphComputer> getGraphComputer() {
+        return Optional.ofNullable(this.graphComputer);
     }
 
     public static Builder build() {
         return new Builder();
     }
 
-
     public static class Builder implements TraversalEngine.Builder, Serializable {
 
         private Class<? extends GraphComputer> graphComputerClass;

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
index ce0d97a..ce79b3c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
@@ -20,9 +20,12 @@ package org.apache.tinkerpop.gremlin.process.traversal.engine;
 
 import org.apache.tinkerpop.gremlin.process.Traversal;
 import org.apache.tinkerpop.gremlin.process.TraversalEngine;
+import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 
+import java.util.Optional;
+
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
@@ -44,6 +47,11 @@ public final class StandardTraversalEngine implements TraversalEngine {
         return Type.STANDARD;
     }
 
+    @Override
+    public Optional<GraphComputer> getGraphComputer() {
+        return Optional.empty();
+    }
+
     public static Builder builder() {
         return Builder.INSTANCE;
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
index 5b392b9..ded4081 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
@@ -67,14 +67,6 @@ public interface Graph extends AutoCloseable {
 
     public static final String GRAPH = "gremlin.graph";
 
-    public static <G extends Graph> G empty(final Class<G> graphClass) {
-        try {
-            return (G) graphClass.getMethod("empty").invoke(null);
-        } catch (final Exception e) {
-            throw new IllegalArgumentException(e.getMessage(), e);
-        }
-    }
-
     /**
      * This should only be used by vendors to create keys, labels, etc. in a namespace safe from users.
      * Users are not allowed to generate property keys, step labels, etc. that are key'd "hidden".
@@ -118,6 +110,14 @@ public interface Graph extends AutoCloseable {
         }
     }
 
+    public static <G extends Graph> G empty(final Class<G> graphClass) {
+        try {
+            return (G) graphClass.getMethod("empty").invoke(null);
+        } catch (final Exception e) {
+            throw new IllegalArgumentException(e.getMessage(), e);
+        }
+    }
+
     /**
      * Add a {@link Vertex} to the graph given an optional series of key/value pairs.  These key/values
      * must be provided in an even number where the odd numbered arguments are {@link String} property keys and the

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/ComputerTestHelper.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/ComputerTestHelper.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/ComputerTestHelper.groovy
index c77db9e..a0d736c 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/ComputerTestHelper.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/ComputerTestHelper.groovy
@@ -21,7 +21,6 @@ package org.apache.tinkerpop.gremlin.process
 import org.apache.tinkerpop.gremlin.process.computer.ComputerResult
 import org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram
 import org.apache.tinkerpop.gremlin.process.graph.traversal.GraphTraversalContext
-import org.apache.tinkerpop.gremlin.process.traversal.engine.ComputerTraversalEngine
 import org.apache.tinkerpop.gremlin.structure.Graph
 
 /**
@@ -36,11 +35,11 @@ public class ComputerTestHelper {
             final String traversalScript) {
 
         final TraversalVertexProgram program = TraversalVertexProgram.build().traversal(graph.getClass(), builder, scriptEngineName, traversalScript).create();
-        final ComputerResult result = ((ComputerTraversalEngine) builder.getTraversalEngineBuilder().create(graph)).getGraphComputer().program(program).submit().get();
+        final ComputerResult result = builder.create(graph).getGraphComputer().get().program(program).submit().get();
         return program.computerResultTraversal(result);
     }
 
     public static final Traversal compute(final String script, final GraphTraversalContext g) {
-        return ComputerTestHelper.compute(g.getGraph(), g.asBuilder(), "gremlin-groovy", script);
+        return ComputerTestHelper.compute(g.getGraph().get(), g.asBuilder(), "gremlin-groovy", script);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/computer/GroovyGraphComputerTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/computer/GroovyGraphComputerTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/computer/GroovyGraphComputerTest.groovy
index b3a84be..e9a19d1 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/computer/GroovyGraphComputerTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/computer/GroovyGraphComputerTest.groovy
@@ -29,37 +29,37 @@ public abstract class GroovyGraphComputerTest {
 
     public static class ComputerTraversals extends GraphComputerTest {
         public GraphComputer get_g_compute() {
-            graph.compute();
+            g.getGraphComputer().get();
         }
 
         @Override
         public GraphComputer get_g_compute_setupXX_executeXX_terminateXtrueX_memoryKeysXset_incr_and_orX() {
-            graph.compute().program(LambdaVertexProgram.build().memoryComputeKeys("set", "incr", "and", "or").create());
+            g.getGraphComputer().get().program(LambdaVertexProgram.build().memoryComputeKeys("set", "incr", "and", "or").create());
         }
 
         @Override
         public GraphComputer get_g_compute_setupXX_executeXX_terminateXtrueX_memoryKeysXnullX() {
-            graph.compute().program(LambdaVertexProgram.build().memoryComputeKeys([null] as Set).create());
+            g.getGraphComputer().get().program(LambdaVertexProgram.build().memoryComputeKeys([null] as Set).create());
         }
 
         @Override
         public GraphComputer get_g_compute_setupXX_executeXX_terminateXtrueX_memoryKeysX_X() {
-            graph.compute().program(LambdaVertexProgram.build().memoryComputeKeys('').create());
+            g.getGraphComputer().get().program(LambdaVertexProgram.build().memoryComputeKeys('').create());
         }
 
         @Override
         public GraphComputer get_g_compute_setupXsetXa_trueXX_executeXX_terminateXtrueX() {
-            graph.compute().program(LambdaVertexProgram.build().setup("gremlin-groovy", "a.set('a', true)").create());
+            g.getGraphComputer().get().program(LambdaVertexProgram.build().setup("gremlin-groovy", "a.set('a', true)").create());
         }
 
         @Override
         public GraphComputer get_g_compute_setupXX_executeXX_terminateXtrueX() {
-            graph.compute().program(LambdaVertexProgram.build().create());
+            g.getGraphComputer().get().program(LambdaVertexProgram.build().create());
         }
 
         @Override
         public GraphComputer get_g_compute_setupXX_executeXv_blah_m_incrX_terminateX1X_elementKeysXnameLengthCounterX_memoryKeysXa_bX() {
-            return graph.compute().program(LambdaVertexProgram.build().
+            return g.getGraphComputer().get().program(LambdaVertexProgram.build().
                     execute("gremlin-groovy", """
                         import static org.junit.Assert.*;
                         try {
@@ -85,7 +85,7 @@ public abstract class GroovyGraphComputerTest {
 
         @Override
         public GraphComputer get_g_compute_setupXabcdeX_executeXtestMemoryX_terminateXtestMemoryXmemoryKeysXabcdeX() {
-            graph.compute().program(LambdaVertexProgram.build().
+            g.getGraphComputer().get().program(LambdaVertexProgram.build().
                     setup("gremlin-groovy", """
                         a.set("a", 0l);
                         a.set("b", 0l);
@@ -142,7 +142,7 @@ public abstract class GroovyGraphComputerTest {
 
         @Override
         public GraphComputer get_g_compute_mapXageX_reduceXsumX_memoryXnextX_memoryKeyXageSumX() {
-            graph.compute().mapReduce(LambdaMapReduce.<MapReduce.NullObject, Integer, MapReduce.NullObject, Integer, Integer> build()
+            g.getGraphComputer().get().mapReduce(LambdaMapReduce.<MapReduce.NullObject, Integer, MapReduce.NullObject, Integer, Integer> build()
                     .map("gremlin-groovy", "if(a.property('age').isPresent()) b.emit(a.value('age'))")
                     .reduce("gremlin-groovy", "c.emit(b.sum())")
                     .memory("gremlin-groovy", "a.next().getValue()")
@@ -151,7 +151,7 @@ public abstract class GroovyGraphComputerTest {
 
         @Override
         public GraphComputer get_g_compute_executeXcounterX_terminateX8X_mapreduceXcounter_aX_mapreduceXcounter_bX() {
-            graph.compute().program(LambdaVertexProgram.build()
+            g.getGraphComputer().get().program(LambdaVertexProgram.build()
                     .execute("gremlin-groovy", "a.property(VertexProperty.Cardinality.single,'counter', c.isInitialIteration() ? 1 : a.value('counter') + 1)")
                     .terminate("gremlin-groovy", "a.getIteration() > 8")
                     .elementComputeKeys(["counter"] as Set).create())
@@ -178,7 +178,7 @@ public abstract class GroovyGraphComputerTest {
 
         @Override
         public GraphComputer get_g_compute_mapXidX_reduceXidX_reduceKeySortXreverseX_memoryKeyXidsX() {
-            graph.compute().mapReduce(LambdaMapReduce.<Long, Long, Long, Long, List<Long>> build()
+            g.getGraphComputer().get().mapReduce(LambdaMapReduce.<Long, Long, Long, Long, List<Long>> build()
                     .map("b.emit(a.id() as Long, a.id() as Long)")
                     .reduce("b.forEachRemaining{c.emit(it, it)}")
                     .memoryKey("ids")
@@ -193,7 +193,7 @@ public abstract class GroovyGraphComputerTest {
 
         @Override
         public GraphComputer get_g_compute_programXTraversalVertexProgram_build_traversalXg_V_both_hasXlabel_personX_age_groupCountXaXX_create() {
-            graph.compute().program(TraversalVertexProgram.build().
+            g.getGraphComputer().get().program(TraversalVertexProgram.build().
                     traversal("GraphFactory.open(['gremlin.graph':'${graph.metaClass.theClass.getCanonicalName()}']).V().both().has(label,'person').values('age').groupCount('a')").
                     create());
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d0bba77d/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/groovy/plugin/HadoopRemoteAcceptor.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/groovy/plugin/HadoopRemoteAcceptor.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/groovy/plugin/HadoopRemoteAcceptor.java
index 048c7aa..ae28e5d 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/groovy/plugin/HadoopRemoteAcceptor.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/groovy/plugin/HadoopRemoteAcceptor.java
@@ -21,14 +21,17 @@ package org.apache.tinkerpop.gremlin.hadoop.groovy.plugin;
 import org.apache.commons.configuration.BaseConfiguration;
 import org.apache.commons.configuration.FileConfiguration;
 import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.tinkerpop.gremlin.groovy.engine.GroovyTraversalScript;
+import org.apache.tinkerpop.gremlin.groovy.loaders.SugarLoader;
 import org.apache.tinkerpop.gremlin.groovy.plugin.RemoteAcceptor;
 import org.apache.tinkerpop.gremlin.groovy.plugin.RemoteException;
 import org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph;
 import org.apache.tinkerpop.gremlin.process.computer.ComputerResult;
+import org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ComputerResultStep;
 import org.apache.tinkerpop.gremlin.process.graph.traversal.DefaultGraphTraversal;
 import org.apache.tinkerpop.gremlin.process.graph.traversal.GraphTraversal;
+import org.apache.tinkerpop.gremlin.process.graph.traversal.GraphTraversalContext;
+import org.apache.tinkerpop.gremlin.process.traversal.engine.ComputerTraversalEngine;
 import org.codehaus.groovy.tools.shell.Groovysh;
 
 import java.io.File;
@@ -96,10 +99,11 @@ public class HadoopRemoteAcceptor implements RemoteAcceptor {
     @Override
     public Object submit(final List<String> args) throws RemoteException {
         try {
-            final GroovyTraversalScript<?, ?> traversal = GroovyTraversalScript.of(RemoteAcceptor.getScript(String.join(SPACE, args), this.shell)).over(this.hadoopGraph).using(this.hadoopGraph.compute());
+            String script = RemoteAcceptor.getScript(String.join(SPACE, args), this.shell);
             if (this.useSugarPlugin)
-                traversal.withSugar();
-            final ComputerResult computerResult = traversal.result().get();
+                script = SugarLoader.class.getPackage() + ".SugarLoader.load()\n" + script;
+            final TraversalVertexProgram program = TraversalVertexProgram.build().traversal(this.hadoopGraph.getClass(), GraphTraversalContext.of().engine(ComputerTraversalEngine.build()), "gremlin-groovy", script).create();
+            final ComputerResult computerResult = this.hadoopGraph.compute().program(program).submit().get();
             this.shell.getInterp().getContext().setProperty(RESULT, computerResult);
 
             final GraphTraversal.Admin<?, ?> traversal2 = new DefaultGraphTraversal<>(computerResult.graph());