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());