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