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/15 19:48:09 UTC
[47/50] incubator-tinkerpop git commit: added ShellGraph so
Graph.empty() is no longer needed. Its a placeholder for the graphClass and
computer in OLAP situations.
added ShellGraph so Graph.empty() is no longer needed. Its a placeholder for the graphClass and computer in OLAP situations.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/23c95c3e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/23c95c3e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/23c95c3e
Branch: refs/heads/variables
Commit: 23c95c3e792d3842d2b036a1b136ceafb2c8a14b
Parents: 6318053
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Apr 15 09:26:24 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Apr 15 09:26:33 2015 -0600
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../traversal/TraversalScriptSupplier.java | 3 +-
.../process/computer/util/ShellGraph.java | 283 +++++++++++++++++++
.../process/traversal/TraversalStrategies.java | 13 +-
.../dsl/graph/GraphTraversalSource.java | 5 +-
.../traversal/util/DefaultTraversal.java | 2 +-
.../tinkerpop/gremlin/structure/Graph.java | 8 -
.../computer/example/TraversalSupplier1.java | 3 +-
.../computer/example/TraversalSupplier2.java | 3 +-
.../computer/example/TraversalSupplier3.java | 3 +-
.../gremlin/hadoop/structure/HadoopGraph.java | 6 -
11 files changed, 305 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 7fcf628..db78b78 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -25,6 +25,7 @@ image::http://www.tinkerpop.com/docs/current/images/gremlin-hindu.png[width=225]
TinkerPop 3.0.0.M9 (NOT OFFICIALLY RELEASED YET)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* `Graph.empty()` no longer required with the introduction of `ShellGraph` which is a placeholder for a graph class and computer.
* `VertexProperty.Cardinality` default is now vendor chosen. If the vendor has not preference, they should use `Cardinality.single`.
* `Messenger.receiveMessages()` no longer takes a `MessageScope` and thus, consistent behavior between message-passing and message-pulling systems.
* Changed the `gremlin.tests` environment variable for test filtering to the more standard convention of `GREMLIN_TESTS` and made it work for all test suites.
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalScriptSupplier.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalScriptSupplier.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalScriptSupplier.java
index 03e0afc..3e5179d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalScriptSupplier.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalScriptSupplier.java
@@ -18,6 +18,7 @@
*/
package org.apache.tinkerpop.gremlin.process.computer.traversal;
+import org.apache.tinkerpop.gremlin.process.computer.util.ShellGraph;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
import org.apache.tinkerpop.gremlin.process.computer.util.ScriptEngineCache;
@@ -50,7 +51,7 @@ public final class TraversalScriptSupplier<S, E> implements Supplier<Traversal.A
try {
final ScriptEngine engine = ScriptEngineCache.get(this.scriptEngineName);
final Bindings bindings = engine.createBindings();
- bindings.put("g", this.traversalContextBuilder.create(Graph.empty(this.graphClass)));
+ bindings.put("g", this.traversalContextBuilder.create(new ShellGraph(this.graphClass)));
return (Traversal.Admin<S, E>) engine.eval(this.traversalScript, bindings);
} catch (final ScriptException e) {
throw new IllegalStateException(e.getMessage(), e);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ShellGraph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ShellGraph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ShellGraph.java
new file mode 100644
index 0000000..e03be95
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/ShellGraph.java
@@ -0,0 +1,283 @@
+/*
+ *
+ * * 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.util;
+
+import org.apache.commons.configuration.BaseConfiguration;
+import org.apache.commons.configuration.Configuration;
+import org.apache.tinkerpop.gremlin.process.computer.ComputerResult;
+import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
+import org.apache.tinkerpop.gremlin.process.computer.MapReduce;
+import org.apache.tinkerpop.gremlin.process.computer.VertexProgram;
+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 java.io.Serializable;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.concurrent.Future;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class ShellGraph implements Graph, Serializable {
+
+ private final Class<? extends Graph> graphClass;
+ public static final String SHELL_GRAPH_CLASS = "shell.graphClass";
+
+ public ShellGraph(final Class<? extends Graph> graphClass) {
+ this.graphClass = graphClass;
+ }
+
+ @Override
+ public Vertex addVertex(final Object... keyValues) {
+ throw Exceptions.vertexAdditionsNotSupported();
+ }
+
+ @Override
+ public <C extends GraphComputer> C compute(final Class<C> graphComputerClass) throws IllegalArgumentException {
+ return (C) ShellGraphComputer.instance();
+ }
+
+ @Override
+ public GraphComputer compute() throws IllegalArgumentException {
+ return ShellGraphComputer.instance();
+ }
+
+ @Override
+ public Iterator<Vertex> vertices(final Object... vertexIds) {
+ return Collections.emptyIterator();
+ }
+
+ @Override
+ public Iterator<Edge> edges(final Object... edgeIds) {
+ return Collections.emptyIterator();
+ }
+
+ @Override
+ public Transaction tx() {
+ throw Exceptions.transactionsNotSupported();
+ }
+
+ @Override
+ public Variables variables() {
+ throw Exceptions.variablesNotSupported();
+ }
+
+ @Override
+ public Configuration configuration() {
+ final Configuration configuration = new BaseConfiguration();
+ configuration.setProperty(Graph.GRAPH, ShellGraph.class.getName());
+ configuration.setProperty(SHELL_GRAPH_CLASS, this.graphClass);
+ return configuration;
+ }
+
+ @Override
+ public void close() throws Exception {
+
+ }
+
+ public Class<? extends Graph> getGraphClass() {
+ return this.graphClass;
+ }
+
+ public static ShellGraph open(final Configuration configuration) {
+ return new ShellGraph((Class<? extends Graph>) configuration.getProperty(SHELL_GRAPH_CLASS));
+ }
+
+ public static ShellGraph of(final Class<? extends Graph> graphClass) {
+ return new ShellGraph(graphClass);
+ }
+
+ private static class ShellGraphComputer implements GraphComputer {
+
+ private static final ShellGraphComputer INSTANCE = new ShellGraphComputer();
+
+ @Override
+ public GraphComputer isolation(final Isolation isolation) {
+ return this;
+ }
+
+ @Override
+ public GraphComputer result(final ResultGraph resultGraph) {
+ return this;
+ }
+
+ @Override
+ public GraphComputer persist(final Persist persist) {
+ return this;
+ }
+
+ @Override
+ public GraphComputer program(final VertexProgram vertexProgram) {
+ return this;
+ }
+
+ @Override
+ public GraphComputer mapReduce(final MapReduce mapReduce) {
+ return this;
+ }
+
+ @Override
+ public Future<ComputerResult> submit() {
+ throw new UnsupportedOperationException(ShellGraphComputer.class.getCanonicalName() + " can not be executed as it is simply a placeholder");
+ }
+
+ public static ShellGraphComputer instance() {
+ return INSTANCE;
+ }
+ }
+
+ public class Features implements Graph.Features {
+
+ @Override
+ public GraphFeatures graph() {
+ return new GraphFeatures() {
+ @Override
+ public boolean supportsComputer() {
+ return true;
+ }
+
+ @Override
+ public boolean supportsPersistence() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsTransactions() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsThreadedTransactions() {
+ return false;
+ }
+
+ @Override
+ public VariableFeatures variables() {
+ return new VariableFeatures() {
+ @Override
+ public boolean supportsVariables() {
+ return false;
+ }
+ };
+ }
+ };
+ }
+
+ @Override
+ public VertexFeatures vertex() {
+ return new VertexFeatures() {
+ @Override
+ public boolean supportsAddVertices() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsRemoveVertices() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsMultiProperties() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsMetaProperties() {
+ return false;
+ }
+
+ @Override
+ public VertexPropertyFeatures properties() {
+ return new VertexPropertyFeatures() {
+ @Override
+ public boolean supportsAddProperty() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsRemoveProperty() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsUserSuppliedIds() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsNumericIds() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsStringIds() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsUuidIds() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsCustomIds() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsAnyIds() {
+ return false;
+ }
+ };
+ }
+ };
+ }
+
+ @Override
+ public EdgeFeatures edge() {
+ return new EdgeFeatures() {
+ @Override
+ public boolean supportsAddEdges() {
+ return false;
+ }
+
+ @Override
+ public boolean supportsRemoveEdges() {
+ return false;
+ }
+
+ @Override
+ public EdgePropertyFeatures properties() {
+ return new EdgePropertyFeatures() {
+ @Override
+ public boolean supportsProperties() {
+ return false;
+ }
+ };
+ }
+ };
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
index 8bd3446..92bc7b5 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalStrategies.java
@@ -18,18 +18,19 @@
*/
package org.apache.tinkerpop.gremlin.process.traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComparatorHolderRemovalStrategy;
+import org.apache.tinkerpop.gremlin.process.computer.util.ShellGraph;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ConjunctionStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.DedupOptimizerStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.EngineDependentStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IdentityRemovalStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.LabeledEndStepStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.MatchWhereStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProfileStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.RangeByIsCountStrategy;
+import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComparatorHolderRemovalStrategy;
+import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.EngineDependentStrategy;
+import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.LabeledEndStepStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.TraversalVerificationStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserGeneratorFactory;
+import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
import org.apache.tinkerpop.gremlin.util.tools.MultiMap;
@@ -190,6 +191,10 @@ public interface TraversalStrategies extends Serializable, Cloneable {
}
return traversalStrategies;
}
+
+ public static Class<? extends Graph> getGraphClass(final Graph graph) {
+ return graph instanceof ShellGraph ? ((ShellGraph) graph).getGraphClass() : graph.getClass();
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/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 00090e8..0dd884f 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
@@ -68,7 +68,7 @@ public class GraphTraversalSource implements TraversalSource {
this.engine = engine;
this.withStrategies = withStrategies;
this.withoutStrategies = withoutStrategies;
- final TraversalStrategies tempStrategies = TraversalStrategies.GlobalCache.getStrategies(this.graph.getClass());
+ final TraversalStrategies tempStrategies = TraversalStrategies.GlobalCache.getStrategies(TraversalStrategies.GlobalCache.getGraphClass(this.graph));
this.strategies = withStrategies.isEmpty() && withoutStrategies.isEmpty() ?
tempStrategies :
tempStrategies.clone()
@@ -137,7 +137,8 @@ public class GraphTraversalSource implements TraversalSource {
private List<TraversalStrategy> withStrategies = null;
private List<Class<? extends TraversalStrategy>> withoutStrategies = null;
- private Builder() {}
+ private Builder() {
+ }
@Override
public Builder engine(final TraversalEngine.Builder engineBuilder) {
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
index 71e286d..6e9f653 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
@@ -58,7 +58,7 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
public DefaultTraversal(final Graph graph) {
this.graph = graph;
- this.setStrategies(TraversalStrategies.GlobalCache.getStrategies(this.graph.getClass()));
+ this.setStrategies(TraversalStrategies.GlobalCache.getStrategies(TraversalStrategies.GlobalCache.getGraphClass(this.graph)));
this.traversalEngine = StandardTraversalEngine.instance(); // TODO: remove and then clean up v.outE
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/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 8c0acf5..f01441c 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
@@ -108,14 +108,6 @@ 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/23c95c3e/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier1.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier1.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier1.java
index 4429a4b..f5d19c2 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier1.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier1.java
@@ -19,6 +19,7 @@
package org.apache.tinkerpop.gremlin.hadoop.process.computer.example;
import org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph;
+import org.apache.tinkerpop.gremlin.process.computer.util.ShellGraph;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import java.util.function.Supplier;
@@ -29,6 +30,6 @@ import java.util.function.Supplier;
public class TraversalSupplier1 implements Supplier<Traversal> {
@Override
public Traversal get() {
- return HadoopGraph.empty().traversal().V().out().out().values("name");
+ return ShellGraph.of(HadoopGraph.class).traversal().V().out().out().values("name");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier2.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier2.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier2.java
index 2bb0cf2..7636495 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier2.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier2.java
@@ -19,6 +19,7 @@
package org.apache.tinkerpop.gremlin.hadoop.process.computer.example;
import org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph;
+import org.apache.tinkerpop.gremlin.process.computer.util.ShellGraph;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import java.util.function.Supplier;
@@ -29,6 +30,6 @@ import java.util.function.Supplier;
public class TraversalSupplier2 implements Supplier<Traversal> {
@Override
public Traversal get() {
- return HadoopGraph.empty().traversal().V().<String>values("name").map(s -> s.get().length()).groupCount().<Integer>by(i -> i + 100);
+ return ShellGraph.of(HadoopGraph.class).traversal().V().<String>values("name").map(s -> s.get().length()).groupCount().<Integer>by(i -> i + 100);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier3.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier3.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier3.java
index 1d768f2..296937f 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier3.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/process/computer/example/TraversalSupplier3.java
@@ -19,6 +19,7 @@
package org.apache.tinkerpop.gremlin.hadoop.process.computer.example;
import org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph;
+import org.apache.tinkerpop.gremlin.process.computer.util.ShellGraph;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import java.util.Collection;
@@ -30,6 +31,6 @@ import java.util.function.Supplier;
public class TraversalSupplier3 implements Supplier<Traversal> {
@Override
public Traversal get() {
- return HadoopGraph.empty().traversal().V().<String>values("name").group().<String>by(s -> s.substring(1, 2)).by(v -> v).<Collection>by(Collection::size);
+ return ShellGraph.of(HadoopGraph.class).traversal().V().<String>values("name").group().<String>by(s -> s.substring(1, 2)).by(v -> v).<Collection>by(Collection::size);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/23c95c3e/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
index e1fa5b3..3999d80 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
@@ -126,8 +126,6 @@ public class HadoopGraph implements Graph {
public static final Logger LOGGER = LoggerFactory.getLogger(HadoopGraph.class);
- private static final HadoopGraph EMPTY = HadoopGraph.open();
-
private static final Configuration EMPTY_CONFIGURATION = new BaseConfiguration() {{
this.setProperty(Graph.GRAPH, HadoopGraph.class.getName());
}};
@@ -138,10 +136,6 @@ public class HadoopGraph implements Graph {
this.configuration = new HadoopConfiguration(configuration);
}
- public static HadoopGraph empty() {
- return EMPTY;
- }
-
public static HadoopGraph open() {
return HadoopGraph.open(null);
}