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 2018/05/19 11:18:06 UTC

[8/8] 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/9f3f9bf2
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9f3f9bf2
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9f3f9bf2

Branch: refs/heads/TINKERPOP-1968
Commit: 9f3f9bf2c41fd6c285ce254fddd05582e8790e93
Parents: d97f93d
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri May 18 18:39:39 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat May 19 07:17:45 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/9f3f9bf2/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/9f3f9bf2/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/9f3f9bf2/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/9f3f9bf2/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/9f3f9bf2/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