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 2017/10/26 17:15:18 UTC

[26/50] tinkerpop git commit: TINKERPOP-1784 Add support for the various toy graphs

TINKERPOP-1784 Add support for the various toy graphs


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

Branch: refs/heads/TINKERPOP-1784
Commit: 4fa65fc0eb02899c14486b6b0d9654b7a5390c6b
Parents: 7815091
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Sep 29 10:29:38 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Oct 26 13:14:36 2017 -0400

----------------------------------------------------------------------
 gremlin-python/pom.xml                          |  6 ++-
 .../src/main/jython/radish/feature_steps.py     |  2 +-
 .../src/main/jython/radish/terrain.py           | 39 +++++++++++++------
 .../remote/gremlin-server-integration.yaml      |  7 +---
 .../server/gremlin-server-integration.yaml      |  7 +---
 .../server/gremlin-server-performance.yaml      |  7 +---
 .../src/test/scripts/generate-all.groovy        | 40 ++++++++++++++++++++
 .../src/test/scripts/test-server-start.groovy   | 24 ++++++++++--
 .../test/scripts/tinkergraph-empty.properties   | 20 ++++++++++
 9 files changed, 117 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index cabaec9..1833233 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -521,12 +521,16 @@ limitations under the License.
                                             <value>${skipTests}</value>
                                         </property>
                                         <property>
+                                            <name>python</name>
+                                            <value>true</value>
+                                        </property>
+                                        <property>
                                             <name>gremlinServerDir</name>
                                             <value>${gremlin.server.dir}</value>
                                         </property>
                                         <property>
                                             <name>settingsFile</name>
-                                            <value>${gremlin.server.dir}/conf/gremlin-server-modern-py.yaml</value>
+                                            <value>${gremlin.server.dir}/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml</value>
                                         </property>
                                         <property>
                                             <name>executionName</name>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-python/src/main/jython/radish/feature_steps.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/radish/feature_steps.py b/gremlin-python/src/main/jython/radish/feature_steps.py
index e3b82c3..a298d6c 100644
--- a/gremlin-python/src/main/jython/radish/feature_steps.py
+++ b/gremlin-python/src/main/jython/radish/feature_steps.py
@@ -40,7 +40,7 @@ def add_parameter(step, param_name, param):
     if not hasattr(step.context, "traversal_params"):
         step.context.traversal_params = {}
 
-    step.context.traversal_params[param_name.encode('utf-8')] = __convert(param, step.context)
+    step.context.traversal_params[param_name] = __convert(param, step.context)
 
 
 @given("the traversal of")

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-python/src/main/jython/radish/terrain.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/radish/terrain.py b/gremlin-python/src/main/jython/radish/terrain.py
index 303f64d..e88272b 100644
--- a/gremlin-python/src/main/jython/radish/terrain.py
+++ b/gremlin-python/src/main/jython/radish/terrain.py
@@ -32,20 +32,42 @@ tail = __.tail
 
 @before.each_scenario
 def prepare_traversal_source(scenario):
-    remote = DriverRemoteConnection('ws://localhost:45940/gremlin', 'g')
-    scenario.context.remote_conn = {"modern": remote}
+    scenario.context.remote_conn = {}
+    scenario.context.lookup_v = {}
+    scenario.context.lookup_e = {}
+
+    __prepare(scenario, "modern", "gmodern")
+    __prepare(scenario, "classic", "gclassic")
+    __prepare(scenario, "crew", "gcrew")
+
+    remote = DriverRemoteConnection('ws://localhost:45940/gremlin', "ggraph")
+    scenario.context.remote_conn["empty"] = remote
+    g = Graph().traversal().withRemote(remote)
+    g.V().drop().iterate()
+
+
+@after.each_scenario
+def close_traversal_source(scenario):
+    scenario.context.remote_conn["modern"].close()
+    scenario.context.remote_conn["classic"].close()
+    scenario.context.remote_conn["crew"].close()
+
+
+def __prepare(scenario, graph_name, server_graph_name):
+    remote = DriverRemoteConnection('ws://localhost:45940/gremlin', server_graph_name)
+    scenario.context.remote_conn[graph_name] = remote
     g = Graph().traversal().withRemote(remote)
 
     # hold a map of name/vertex for use in asserting results
-    scenario.context.lookup_v = {"modern": g.V().group().by('name').by(tail()).next()}
+    scenario.context.lookup_v[graph_name] = g.V().group().by('name').by(tail()).next()
 
     # hold a map of the "name"/edge for use in asserting results - "name" in this context is in the form of
     # outgoingV-label->incomingV
-    projection_of_edges = g.E().group().\
+    projection_of_edges = g.E().group(). \
         by(project("o", "l", "i").
            by(outV().values("name")).
            by(label()).
-           by(inV().values("name"))).\
+           by(inV().values("name"))). \
         by(tail()).next()
     edges = {}
 
@@ -57,9 +79,4 @@ def prepare_traversal_source(scenario):
         i = re.search("i=(.+?)[,\}]", key).group(1)
         edges[o + "-" + l + "->" + i] = value
 
-    scenario.context.lookup_e = {"modern": edges}
-
-
-@after.each_scenario
-def close_traversal_source(scenario):
-    scenario.context.remote_conn["modern"].close()
+    scenario.context.lookup_e[graph_name] = edges

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml b/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml
index 96db32f..d1e7ba6 100644
--- a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml
+++ b/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml
@@ -41,12 +41,7 @@ serializers:
 processors:
   - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
 metrics: {
-  consoleReporter: {enabled: true, interval: 180000},
-  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
-  jmxReporter: {enabled: true},
-  slf4jReporter: {enabled: true, interval: 180000},
-  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
-  graphiteReporter: {enabled: false, interval: 180000}}
+  slf4jReporter: {enabled: true, interval: 180000}}
 strictTransactionManagement: false
 maxInitialLineLength: 4096
 maxHeaderSize: 8192

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml b/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
index 18ac22e..f80c38a 100644
--- a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
+++ b/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
@@ -37,12 +37,7 @@ serializers:
 processors:
   - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
 metrics: {
-  consoleReporter: {enabled: true, interval: 180000},
-  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
-  jmxReporter: {enabled: true},
-  slf4jReporter: {enabled: true, interval: 180000},
-  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
-  graphiteReporter: {enabled: false, interval: 180000}}
+  slf4jReporter: {enabled: true, interval: 180000}}
 strictTransactionManagement: false
 maxInitialLineLength: 4096
 maxHeaderSize: 8192

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml b/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml
index 330a643..d30635d 100644
--- a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml
+++ b/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml
@@ -34,12 +34,7 @@ serializers:
 processors:
   - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
 metrics: {
-  consoleReporter: {enabled: true, interval: 180000},
-  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
-  jmxReporter: {enabled: true},
-  slf4jReporter: {enabled: true, interval: 180000},
-  gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
-  graphiteReporter: {enabled: false, interval: 180000}}
+  slf4jReporter: {enabled: true, interval: 180000}}
 strictTransactionManagement: false
 maxInitialLineLength: 4096
 maxHeaderSize: 8192

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-server/src/test/scripts/generate-all.groovy
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/scripts/generate-all.groovy b/gremlin-server/src/test/scripts/generate-all.groovy
new file mode 100644
index 0000000..b6be405
--- /dev/null
+++ b/gremlin-server/src/test/scripts/generate-all.groovy
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+// an init script that returns a Map allows explicit setting of global bindings.
+def globals = [:]
+
+// Generates the modern graph into an "empty" TinkerGraph via LifeCycleHook.
+// Note that the name of the key in the "global" map is unimportant.
+globals << [hook : [
+  onStartUp: { ctx ->
+    TinkerFactory.generateClassic(classic)
+    TinkerFactory.generateModern(modern)
+    TinkerFactory.generateTheCrew(crew)
+    grateful.io(gryo()).readGraph('data/grateful-dead.kryo')
+  }
+] as LifeCycleHook]
+
+// add default TraversalSource instances for each graph instance
+globals << [gclassic : classic.traversal()]
+globals << [gmodern : modern.traversal()]
+globals << [gcrew : crew.traversal()]
+globals << [ggraph : graph.traversal()]
+globals << [g : modern.traversal()]
+globals << [ggrateful : grateful.traversal()]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-server/src/test/scripts/test-server-start.groovy
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/scripts/test-server-start.groovy b/gremlin-server/src/test/scripts/test-server-start.groovy
index 8ea08a9..d793d26 100644
--- a/gremlin-server/src/test/scripts/test-server-start.groovy
+++ b/gremlin-server/src/test/scripts/test-server-start.groovy
@@ -25,8 +25,16 @@ if (Boolean.parseBoolean(skipTests)) return
 
 log.info("Starting Gremlin Server instances for native testing of ${executionName}")
 def settings = Settings.read("${settingsFile}")
-settings.graphs.graph = gremlinServerDir + "/conf/tinkergraph-empty.properties"
-settings.scriptEngines["gremlin-groovy"].scripts = [gremlinServerDir + "/scripts/generate-modern.groovy"]
+settings.graphs.graph = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.graphs.classic = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.graphs.modern = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.graphs.crew = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.graphs.grateful = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.scriptEngines["gremlin-groovy"].scripts = [gremlinServerDir + "/src/test/scripts/generate-all.groovy"]
+if (Boolean.parseBoolean(python)) {
+    settings.scriptEngines["gremlin-python"] = new Settings.ScriptEngineSettings()
+    settings.scriptEngines["gremlin-jython"] = new Settings.ScriptEngineSettings()
+}
 settings.port = 45940
 
 def server = new GremlinServer(settings)
@@ -36,8 +44,16 @@ project.setContextValue("gremlin.server", server)
 log.info("Gremlin Server with no authentication started on port 45940")
 
 def settingsSecure = Settings.read("${settingsFile}")
-settingsSecure.graphs.graph = gremlinServerDir + "/conf/tinkergraph-empty.properties"
-settingsSecure.scriptEngines["gremlin-groovy"].scripts = [gremlinServerDir + "/scripts/generate-modern.groovy"]
+settings.graphs.graph = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.graphs.classic = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.graphs.modern = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.graphs.crew = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settings.graphs.grateful = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties"
+settingsSecure.scriptEngines["gremlin-groovy"].scripts = [gremlinServerDir + "/src/test/scripts/generate-all.groovy"]
+if (Boolean.parseBoolean(python)) {
+    settingsSecure.scriptEngines["gremlin-python"] = new Settings.ScriptEngineSettings()
+    settingsSecure.scriptEngines["gremlin-jython"] = new Settings.ScriptEngineSettings()
+}
 settingsSecure.port = 45941
 settingsSecure.authentication.className = SimpleAuthenticator.class.name
 settingsSecure.authentication.config = [credentialsDb: gremlinServerDir + "/conf/tinkergraph-credentials.properties", credentialsDbLocation: gremlinServerDir + "/data/credentials.kryo"]

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4fa65fc0/gremlin-server/src/test/scripts/tinkergraph-empty.properties
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/scripts/tinkergraph-empty.properties b/gremlin-server/src/test/scripts/tinkergraph-empty.properties
new file mode 100644
index 0000000..211b9e4
--- /dev/null
+++ b/gremlin-server/src/test/scripts/tinkergraph-empty.properties
@@ -0,0 +1,20 @@
+# 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.
+gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
+gremlin.tinkergraph.vertexIdManager=INTEGER
+gremlin.tinkergraph.edgeIdManager=INTEGER
+gremlin.tinkergraph.vertexPropertyIdManager=INTEGER
\ No newline at end of file