You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by fl...@apache.org on 2018/06/04 13:58:06 UTC
[10/34] tinkerpop git commit: TINKERPOP-1968 Minor change to loading
Grateful from TinkerFactory
TINKERPOP-1968 Minor change to loading Grateful from TinkerFactory
Decided to load it from a resources in tinkergraph-gremlin. Seemed to better than relying on the local file system.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f6d76f9f
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f6d76f9f
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f6d76f9f
Branch: refs/heads/TINKERPOP-1897
Commit: f6d76f9fa16980f85e86b595d2e0c06e4d1cfc86
Parents: bd19934
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri May 18 18:39:39 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:18:09 2018 -0400
----------------------------------------------------------------------
.../the-gremlin-console/index.asciidoc | 5 ++-
.../upgrade/release-3.2.x-incubating.asciidoc | 8 +++++
tinkergraph-gremlin/pom.xml | 19 +++++++++++
.../tinkergraph/structure/TinkerFactory.java | 32 ++++---------------
.../tinkergraph/structure/grateful-dead.kryo | Bin 0 -> 332226 bytes
5 files changed, 36 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f6d76f9f/docs/src/tutorials/the-gremlin-console/index.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/tutorials/the-gremlin-console/index.asciidoc b/docs/src/tutorials/the-gremlin-console/index.asciidoc
index da8bac3..cc090d9 100644
--- a/docs/src/tutorials/the-gremlin-console/index.asciidoc
+++ b/docs/src/tutorials/the-gremlin-console/index.asciidoc
@@ -117,9 +117,8 @@ However, if you find that a larger graph might be helpful, there is another opti
[gremlin-groovy]
----
-graph = TinkerGraph.open()
-graph.io(gryo()).readGraph('data/grateful-dead.kryo')
-graph
+graph = TinkerFactory.createGratefulDead()
+g = graph.traversal()
----
The Grateful Dead graph ships with the Gremlin Console and the data can be found in several formats (along with the
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f6d76f9f/docs/src/upgrade/release-3.2.x-incubating.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/upgrade/release-3.2.x-incubating.asciidoc b/docs/src/upgrade/release-3.2.x-incubating.asciidoc
index 112ce22..ccdf51a 100644
--- a/docs/src/upgrade/release-3.2.x-incubating.asciidoc
+++ b/docs/src/upgrade/release-3.2.x-incubating.asciidoc
@@ -27,6 +27,14 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
Please see the link:https://github.com/apache/tinkerpop/blob/3.2.10/CHANGELOG.asciidoc#release-3-2-10[changelog] for a complete list of all the modifications that are part of this release.
+=== Upgrading for Users
+
+==== TinkerFactory.createGratefulDead()
+
+The Grateful Dead dataset has been with TinkerPop since the early days of 1.x. It has always been available as a
+packaged dataset that needed to be loaded through the various IO options available, while other toy graphs had the
+benefit of `TinkerFactory` to help get them bootstrapped. For 3.2.10, Grateful Dead is now more conveniently loaded
+via that same method as the other toy graphs with `TinkerFactory.createGratefulDead()`.
== TinkerPop 3.2.9
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f6d76f9f/tinkergraph-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/pom.xml b/tinkergraph-gremlin/pom.xml
index 1ff0aa0..1432ac5 100644
--- a/tinkergraph-gremlin/pom.xml
+++ b/tinkergraph-gremlin/pom.xml
@@ -127,6 +127,25 @@ limitations under the License.
</configuration>
</execution>
<execution>
+ <id>copy-gratefuldead-to-tinkergraph-resources</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>src/main/resources/org/apache/tinkerpop/gremlin/tinkergraph/structure</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${io.tmp.dir}</directory>
+ <filtering>false</filtering>
+ <includes>
+ <exclude>grateful-dead.kryo</exclude>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
<id>copy-gio-from-tmp-to-resources</id>
<phase>prepare-package</phase>
<goals>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f6d76f9f/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
index 3a47f17..6c0f1b2 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerFactory.java
@@ -24,11 +24,10 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSo
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.apache.tinkerpop.gremlin.structure.VertexProperty;
-import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoIo;
import java.io.File;
+import java.io.InputStream;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import static org.apache.tinkerpop.gremlin.structure.io.IoCore.gryo;
@@ -193,12 +192,7 @@ public final class TinkerFactory {
/**
* Creates the "grateful dead" graph which is a larger graph than most of the toy graphs but has real-world
- * structure and application and is therefore useful for demonstrating more complex traversals. Unlike the
- * other graphs, this creation process relies on a local data files for creation. Specifically, it requires
- * {@code grateful-dead.kryo} to be present. It will check the following common directories in the listed order
- * to try to load this graph: {@code ./}, {@code data/}, {@code ../data/} as these are the common places to find
- * this file from normal TinkerPop packaging. If the file cannot be found in those directories an
- * {@code IllegalStateException}.
+ * structure and application and is therefore useful for demonstrating more complex traversals.
*/
public static TinkerGraph createGratefulDead() {
final TinkerGraph g = getTinkerGraphWithNumberManager();
@@ -210,24 +204,12 @@ public final class TinkerFactory {
* Generate the graph in {@link #createGratefulDead()} into an existing graph.
*/
public static void generateGratefulDead(final TinkerGraph graph) {
- final String fileName = "grateful-dead.kryo";
- final List<String> files = Arrays.asList(fileName,
- "data/" + fileName,
- ".." + File.separator + "data" + File.separator + fileName);
-
- for (String fn : files) {
- final File f = new File(fn);
- if (f.exists()) {
- try {
- graph.io(gryo()).readGraph(fn);
- } catch (Exception ex) {
- throw new IllegalStateException(ex);
- }
- }
+ final InputStream stream = TinkerFactory.class.getResourceAsStream("grateful-dead.kryo");
+ try {
+ graph.io(gryo()).reader().create().readGraph(stream, graph);
+ } catch (Exception ex) {
+ throw new IllegalStateException(ex);
}
-
- if (!graph.vertices().hasNext())
- throw new IllegalStateException("grateful-dead.kryo cannot be found");
}
private static TinkerGraph getTinkerGraphWithNumberManager() {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f6d76f9f/tinkergraph-gremlin/src/main/resources/org/apache/tinkerpop/gremlin/tinkergraph/structure/grateful-dead.kryo
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/resources/org/apache/tinkerpop/gremlin/tinkergraph/structure/grateful-dead.kryo b/tinkergraph-gremlin/src/main/resources/org/apache/tinkerpop/gremlin/tinkergraph/structure/grateful-dead.kryo
new file mode 100644
index 0000000..57fa587
Binary files /dev/null and b/tinkergraph-gremlin/src/main/resources/org/apache/tinkerpop/gremlin/tinkergraph/structure/grateful-dead.kryo differ