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/02/01 15:30:14 UTC
[03/50] [abbrv] tinkerpop git commit: Use new server start groovy
scripts
Use new server start groovy scripts
- Use new server start/stop groovy scripts
- Support different traversal sources at connection level
- Avoid destructuring syntax (not support on Node.js v4)
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9bf65000
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9bf65000
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9bf65000
Branch: refs/heads/TINKERPOP-1857
Commit: 9bf6500026d10ceaaa64cc2b46dc8ce335f3d0d0
Parents: 56ddcb0
Author: Jorge Bay Gondra <jo...@gmail.com>
Authored: Thu Nov 23 10:20:19 2017 +0100
Committer: Jorge Bay Gondra <jo...@gmail.com>
Committed: Fri Jan 19 09:30:15 2018 +0100
----------------------------------------------------------------------
gremlin-javascript/glv/PackageJson.template | 4 +-
gremlin-javascript/pom.xml | 67 +++++++++++---------
.../lib/driver/driver-remote-connection.js | 6 +-
.../javascript/gremlin-javascript/package.json | 4 +-
.../test/cucumber/feature-steps.js | 29 +++++----
.../gremlin-javascript/test/cucumber/world.js | 12 +++-
.../gremlin-javascript/test/helper.js | 29 +++++++++
.../test/integration/remote-connection-tests.js | 18 ++----
.../test/integration/traversal-test.js | 16 ++---
9 files changed, 111 insertions(+), 74 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/glv/PackageJson.template
----------------------------------------------------------------------
diff --git a/gremlin-javascript/glv/PackageJson.template b/gremlin-javascript/glv/PackageJson.template
index 3ff17af..52d2c1d 100644
--- a/gremlin-javascript/glv/PackageJson.template
+++ b/gremlin-javascript/glv/PackageJson.template
@@ -47,8 +47,8 @@
"url": "https://issues.apache.org/jira/browse/TINKERPOP"
},
"scripts": {
- "test": "./node_modules/.bin/mocha test --recursive -t 5000",
- "features": "./node_modules/.bin/cucumber.js ../../../../../gremlin-test/features/",
+ "test": "./node_modules/.bin/mocha test/unit test/integration -t 5000",
+ "features": "./node_modules/.bin/cucumber.js --require test/cucumber ../../../../../gremlin-test/features/map/Count.feature",
"unit-test": "./node_modules/.bin/mocha test/unit"
},
"engines": {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-javascript/pom.xml b/gremlin-javascript/pom.xml
index 871fd7a..830052b 100644
--- a/gremlin-javascript/pom.xml
+++ b/gremlin-javascript/pom.xml
@@ -202,26 +202,30 @@ packageJsonFile.newWriter().withWriter{ it << packageJsonTemplate }
<goal>execute</goal>
</goals>
<configuration>
+ <properties>
+ <property>
+ <name>skipTests</name>
+ <value>${skipTests}</value>
+ </property>
+ <property>
+ <name>python</name>
+ <value>false</value>
+ </property>
+ <property>
+ <name>gremlinServerDir</name>
+ <value>${gremlin.server.dir}</value>
+ </property>
+ <property>
+ <name>settingsFile</name>
+ <value>${gremlin.server.dir}/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml</value>
+ </property>
+ <property>
+ <name>executionName</name>
+ <value>${project.name}</value>
+ </property>
+ </properties>
<scripts>
- <script>
- <![CDATA[
-import org.apache.tinkerpop.gremlin.server.GremlinServer
-import org.apache.tinkerpop.gremlin.server.Settings
-import org.apache.tinkerpop.gremlin.server.Settings.ScriptEngineSettings
-import org.apache.tinkerpop.gremlin.server.op.session.Session
-
-if (${skipIntegrationTests}) return
-log.info("Starting Gremlin Server instances for native testing of gremlin-javascript")
-def settings = Settings.read("${gremlin.server.dir}/conf/gremlin-server-modern.yaml")
-settings.graphs.graph = "${gremlin.server.dir}/conf/tinkergraph-empty.properties"
-settings.scriptEngines["gremlin-groovy"].scripts = ["${gremlin.server.dir}/scripts/generate-modern.groovy"]
-settings.port = 45950
-def server = new GremlinServer(settings)
-server.start().join()
-project.setContextValue("gremlin.javascript.server", server)
-log.info("Gremlin Server started on port 45950")
-]]>
- </script>
+ <script>${gremlin.server.dir}/src/test/scripts/test-server-start.groovy</script>
</scripts>
</configuration>
</execution>
@@ -232,19 +236,18 @@ log.info("Gremlin Server started on port 45950")
<goal>execute</goal>
</goals>
<configuration>
+ <properties>
+ <property>
+ <name>skipTests</name>
+ <value>${skipTests}</value>
+ </property>
+ <property>
+ <name>executionName</name>
+ <value>${project.name}</value>
+ </property>
+ </properties>
<scripts>
- <script>
- <![CDATA[
-import org.apache.tinkerpop.gremlin.server.GremlinServer
-import org.apache.tinkerpop.gremlin.server.op.session.Session
-
-if (${skipIntegrationTests}) return
-log.info("Tests for native gremlin-javascript complete")
-def server = project.getContextValue("gremlin.javascript.server")
-log.info("Shutting down $server")
-server.stop().join()
-]]>
- </script>
+ <script>${gremlin.server.dir}/src/test/scripts/test-server-stop.groovy</script>
</scripts>
</configuration>
</execution>
@@ -292,6 +295,7 @@ server.stop().join()
</goals>
<configuration>
<arguments>test</arguments>
+ <failOnError>true</failOnError>
</configuration>
</execution>
<execution>
@@ -302,6 +306,7 @@ server.stop().join()
</goals>
<configuration>
<arguments>run-script features</arguments>
+ <failOnError>true</failOnError>
</configuration>
</execution>
</executions>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js
index 0d6d507..18c551c 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/driver/driver-remote-connection.js
@@ -41,6 +41,7 @@ var responseStatusCode = {
* Creates a new instance of DriverRemoteConnection.
* @param {String} url The resource uri.
* @param {Object} [options] The connection options.
+ * @param {String} [options.traversalSource] The traversal source. Defaults to: 'g'.
* @param {Array} [options.ca] Trusted certificates.
* @param {String|Array|Buffer} [options.cert] The certificate key.
* @param {String|Buffer} [options.pfx] The private key, certificate, and CA certs.
@@ -71,6 +72,7 @@ function DriverRemoteConnection(url, options) {
this._responseHandlers = {};
this._reader = options.reader || new serializer.GraphSONReader();
this._writer = options.writer || new serializer.GraphSONWriter();
+ this._traversalSource = options.traversalSource || 'g';
this._openPromise = null;
this._openCallback = null;
this._closePromise = null;
@@ -125,7 +127,7 @@ DriverRemoteConnection.prototype._getRequest = function (id, bytecode) {
'processor': 'traversal',
'args': {
'gremlin': this._writer.adaptObject(bytecode),
- 'aliases': { 'g': 'g'}
+ 'aliases': { 'g': this._traversalSource }
}
});
};
@@ -193,7 +195,7 @@ function getUuid() {
hex.substr(20, 12));
}
-var bufferFromString = Buffer.from || function newBuffer(text) {
+const bufferFromString = (Int8Array.from !== Buffer.from && Buffer.from) || function newBuffer(text) {
return new Buffer(text, 'utf8');
};
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
index dfbaff2..43cf35f 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
@@ -28,8 +28,8 @@
"url": "https://issues.apache.org/jira/browse/TINKERPOP"
},
"scripts": {
- "test": "./node_modules/.bin/mocha test --recursive -t 5000",
- "features": "./node_modules/.bin/cucumber.js ../../../../../gremlin-test/features/",
+ "test": "./node_modules/.bin/mocha test/unit test/integration -t 5000",
+ "features": "./node_modules/.bin/cucumber.js --require test/cucumber ../../../../../gremlin-test/features/map/Count.feature",
"unit-test": "./node_modules/.bin/mocha test/unit"
},
"engines": {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
index 10680b7..bea7321 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
@@ -22,34 +22,37 @@
*/
'use strict';
-const {defineSupportCode} = require('cucumber');
+const defineSupportCode = require('cucumber').defineSupportCode;
const vm = require('vm');
-defineSupportCode(function({Given, When, Then}) {
- Given(/^the (.+) graph$/, function (graphName) {
+defineSupportCode(function(methods) {
+ methods.Given(/^the (.+) graph$/, function (graphName) {
//TODO: Set context g
});
- // Given('the graph initializer of');
- Given('an unsupported test', () => {});
+ methods.Given('the graph initializer of', function () {
+ //TODO
+ });
+
+ methods.Given('an unsupported test', () => {});
- Given('the traversal of', function (traversalText) {
+ methods.Given('the traversal of', function (traversalText) {
//TODO: make traversal
});
- Given(/^$/, function (paramName, stringValue) {
+ methods.Given(/^$/, function (paramName, stringValue) {
//TODO: Add parameter
});
- When('iterated to list', function () {
+ methods.When('iterated to list', function () {
//TODO
});
- When('iterated next', function () {
+ methods.When('iterated next', function () {
//TODO
});
- Then(/^the result should be (\w+)$/, function (characterizedAs, resultTable) {
+ methods.Then(/^the result should be (\w+)$/, function (characterizedAs, resultTable) {
//TODO
//console.log('--resultTable', resultTable.rows());
if (typeof resultTable === 'function'){
@@ -57,13 +60,13 @@ defineSupportCode(function({Given, When, Then}) {
}
});
- Then(/^the graph should return (\d+) for count of (.+)$/, function (stringCount, traversalString) {
+ methods.Then(/^the graph should return (\d+) for count of (.+)$/, function (stringCount, traversalString) {
});
- Then(/^the result should have a count of (\d+)$/, function (stringCount) {
+ methods.Then(/^the result should have a count of (\d+)$/, function (stringCount) {
});
- Then('nothing should happen because', () => {});
+ methods.Then('nothing should happen because', () => {});
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/world.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/world.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/world.js
index f1cd7a6..2e4f6e1 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/world.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/world.js
@@ -22,12 +22,18 @@
*/
'use strict';
-const {defineSupportCode} = require('cucumber');
+const defineSupportCode = require('cucumber').defineSupportCode;
-defineSupportCode(function ({setWorldConstructor}) {
+defineSupportCode(function (methods) {
function TinkerPopWorld(){
this.g = null;
this.traversal = null;
}
- setWorldConstructor(TinkerPopWorld);
+ methods.setWorldConstructor(TinkerPopWorld);
+ methods.BeforeAll(function () {
+ // load all traversals
+ });
+ methods.Before(function () {
+
+ });
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/src/main/javascript/gremlin-javascript/test/helper.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/helper.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/helper.js
new file mode 100644
index 0000000..546840e
--- /dev/null
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/helper.js
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+/**
+ * @author Jorge Bay Gondra
+ */
+'use strict';
+
+const DriverRemoteConnection = require('../lib/driver/driver-remote-connection');
+
+exports.getConnection = function getConnection(traversalSource) {
+ return new DriverRemoteConnection('ws://localhost:45940/gremlin', { traversalSource: traversalSource });
+};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/remote-connection-tests.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/remote-connection-tests.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/remote-connection-tests.js
index df813ad..268773c 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/remote-connection-tests.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/remote-connection-tests.js
@@ -22,16 +22,16 @@
*/
'use strict';
-var assert = require('assert');
-var Bytecode = require('../../lib/process/bytecode');
-var DriverRemoteConnection = require('../../lib/driver/driver-remote-connection');
-var graphModule = require('../../lib/structure/graph');
+const assert = require('assert');
+const Bytecode = require('../../lib/process/bytecode');
+const graphModule = require('../../lib/structure/graph');
+const helper = require('../helper');
var connection;
describe('DriverRemoteConnection', function () {
before(function () {
- connection = new DriverRemoteConnection('ws://localhost:45950/gremlin');
+ connection = helper.getConnection();
return connection.open();
});
after(function () {
@@ -55,10 +55,4 @@ describe('DriverRemoteConnection', function () {
});
});
});
-});
-
-function delay(ms) {
- return new Promise(function (resolve) {
- setTimeout(resolve, ms);
- });
-}
\ No newline at end of file
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bf65000/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/traversal-test.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/traversal-test.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/traversal-test.js
index 90afced..96de7c7 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/traversal-test.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/integration/traversal-test.js
@@ -22,20 +22,18 @@
*/
'use strict';
-var assert = require('assert');
-var graphModule = require('../../lib/structure/graph');
-var Graph = graphModule.Graph;
-var Vertex = graphModule.Vertex;
-var utils = require('../../lib/utils');
-var t = require('../../lib/process/traversal');
-var TraversalStrategies = require('../../lib/process/traversal-strategy').TraversalStrategies;
-var DriverRemoteConnection = require('../../lib/driver/driver-remote-connection');
+const assert = require('assert');
+const graphModule = require('../../lib/structure/graph');
+const Graph = graphModule.Graph;
+const Vertex = graphModule.Vertex;
+const utils = require('../../lib/utils');
+const helper = require('../helper');
var connection;
describe('Traversal', function () {
before(function () {
- connection = new DriverRemoteConnection('ws://localhost:45950/gremlin');
+ connection = helper.getConnection();
return connection.open();
});
after(function () {