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/06/01 11:47:35 UTC
[01/17] tinkerpop git commit: TINKERPOP-1968 Simplified gremlin
server test configuration
Repository: tinkerpop
Updated Branches:
refs/heads/master 5d6873e94 -> 23b766ad8
TINKERPOP-1968 Simplified gremlin server test configuration
There was a fair bit of duplicated configuration for Gremlin Server testing - streamlined that to a single gremlin-server-integration.yaml file and script initializer. Tests had to become more specific as to the graphs that they were executing against as a result.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8e2749e7
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8e2749e7
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8e2749e7
Branch: refs/heads/master
Commit: 8e2749e755db9b592878c065975f4da69e4a83ae
Parents: 68bdaed
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri May 18 14:38:04 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:18:08 2018 -0400
----------------------------------------------------------------------
gremlin-dotnet/test/pom.xml | 2 +-
gremlin-javascript/pom.xml | 2 +-
.../test/integration/remote-connection-tests.js | 2 +-
.../test/integration/traversal-test.js | 2 +-
gremlin-python/pom.xml | 2 +-
.../src/main/jython/tests/conftest.py | 6 +-
.../src/main/jython/tests/driver/test_client.py | 14 ++---
.../driver/test_driver_remote_connection.py | 4 +-
.../test_driver_remote_connection_threaded.py | 4 +-
gremlin-server/scripts/generate-all.groovy | 63 --------------------
gremlin-server/src/assembly/standalone.xml | 3 -
.../driver/remote/RemoteGraphProvider.java | 2 +-
.../server/GremlinResultSetIntegrateTest.java | 34 +++++------
.../server/GremlinServerHttpIntegrateTest.java | 18 ++----
.../gremlin/server/ServerTestHelper.java | 7 ++-
.../server/util/DefaultGraphManagerTest.java | 32 +++++++---
.../remote/gremlin-server-integration.yaml | 56 -----------------
.../server/gremlin-server-integration.yaml | 11 +++-
.../src/test/scripts/generate-all.groovy | 31 +++++++++-
.../src/test/scripts/neo4j-empty.properties | 33 ++++++++++
20 files changed, 139 insertions(+), 189 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-dotnet/test/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/pom.xml b/gremlin-dotnet/test/pom.xml
index db1f8ad..f8d3118 100644
--- a/gremlin-dotnet/test/pom.xml
+++ b/gremlin-dotnet/test/pom.xml
@@ -143,7 +143,7 @@ limitations under the License.
</property>
<property>
<name>settingsFile</name>
- <value>${gremlin.server.dir}/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml</value>
+ <value>${gremlin.server.dir}/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml</value>
</property>
<property>
<name>executionName</name>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-javascript/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-javascript/pom.xml b/gremlin-javascript/pom.xml
index a820f3b..b01b2b9 100644
--- a/gremlin-javascript/pom.xml
+++ b/gremlin-javascript/pom.xml
@@ -114,7 +114,7 @@ limitations under the License.
</property>
<property>
<name>settingsFile</name>
- <value>${gremlin.server.dir}/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml</value>
+ <value>${gremlin.server.dir}/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml</value>
</property>
<property>
<name>executionName</name>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/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 9e115be..afc0e58 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
@@ -31,7 +31,7 @@ let connection;
describe('DriverRemoteConnection', function () {
before(function () {
- connection = helper.getConnection();
+ connection = helper.getConnection('gmodern');
return connection.open();
});
after(function () {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/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 01dde62..920d998 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
@@ -33,7 +33,7 @@ let connection;
describe('Traversal', function () {
before(function () {
- connection = helper.getConnection();
+ connection = helper.getConnection('gmodern');
return connection.open();
});
after(function () {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-python/pom.xml
----------------------------------------------------------------------
diff --git a/gremlin-python/pom.xml b/gremlin-python/pom.xml
index a2ab516..13c3454 100644
--- a/gremlin-python/pom.xml
+++ b/gremlin-python/pom.xml
@@ -507,7 +507,7 @@ limitations under the License.
</property>
<property>
<name>settingsFile</name>
- <value>${gremlin.server.dir}/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml</value>
+ <value>${gremlin.server.dir}/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml</value>
</property>
<property>
<name>executionName</name>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-python/src/main/jython/tests/conftest.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/tests/conftest.py b/gremlin-python/src/main/jython/tests/conftest.py
index 2cd4282..96ded16 100644
--- a/gremlin-python/src/main/jython/tests/conftest.py
+++ b/gremlin-python/src/main/jython/tests/conftest.py
@@ -38,7 +38,7 @@ def connection(request):
executor = concurrent.futures.ThreadPoolExecutor(5)
pool = queue.Queue()
try:
- conn = Connection('ws://localhost:45940/gremlin', 'g', protocol,
+ conn = Connection('ws://localhost:45940/gremlin', 'gmodern', protocol,
lambda: TornadoTransport(), executor, pool)
except OSError:
executor.shutdown()
@@ -53,7 +53,7 @@ def connection(request):
@pytest.fixture
def client(request):
try:
- client = Client('ws://localhost:45940/gremlin', 'g')
+ client = Client('ws://localhost:45940/gremlin', 'gmodern')
except OSError:
pytest.skip('Gremlin Server is not running')
else:
@@ -65,7 +65,7 @@ def client(request):
@pytest.fixture
def remote_connection(request):
try:
- remote_conn = DriverRemoteConnection('ws://localhost:45940/gremlin', 'g')
+ remote_conn = DriverRemoteConnection('ws://localhost:45940/gremlin', 'gmodern')
except OSError:
pytest.skip('Gremlin Server is not running')
else:
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-python/src/main/jython/tests/driver/test_client.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/tests/driver/test_client.py b/gremlin-python/src/main/jython/tests/driver/test_client.py
index f7b01ce..595aba0 100644
--- a/gremlin-python/src/main/jython/tests/driver/test_client.py
+++ b/gremlin-python/src/main/jython/tests/driver/test_client.py
@@ -28,7 +28,7 @@ __author__ = 'David M. Brown (davebshow@gmail.com)'
def test_connection(connection):
g = Graph().traversal()
t = g.V()
- message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
+ message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
results_set = connection.write(message).result()
future = results_set.all()
results = future.result()
@@ -51,7 +51,7 @@ def test_client_eval_traversal(client):
def test_client_bytecode(client):
g = Graph().traversal()
t = g.V()
- message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
+ message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
result_set = client.submit(message)
assert len(result_set.all().result()) == 6
@@ -59,7 +59,7 @@ def test_client_bytecode(client):
def test_iterate_result_set(client):
g = Graph().traversal()
t = g.V()
- message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
+ message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
result_set = client.submit(message)
results = []
for result in result_set:
@@ -70,7 +70,7 @@ def test_iterate_result_set(client):
def test_client_async(client):
g = Graph().traversal()
t = g.V()
- message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
+ message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
future = client.submitAsync(message)
result_set = future.result()
assert len(result_set.all().result()) == 6
@@ -78,10 +78,10 @@ def test_client_async(client):
def test_connection_share(client):
# Overwrite fixture with pool_size=1 client
- client = Client('ws://localhost:45940/gremlin', 'g', pool_size=1)
+ client = Client('ws://localhost:45940/gremlin', 'gmodern', pool_size=1)
g = Graph().traversal()
t = g.V()
- message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
+ message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
future = client.submitAsync(message)
future2 = client.submitAsync(message)
@@ -97,7 +97,7 @@ def test_connection_share(client):
def test_multi_conn_pool(client):
g = Graph().traversal()
t = g.V()
- message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
+ message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
future = client.submitAsync(message)
future2 = client.submitAsync(message)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py b/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py
index 1071493..cd9101e 100644
--- a/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py
+++ b/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection.py
@@ -37,7 +37,7 @@ __author__ = 'Marko A. Rodriguez (http://markorodriguez.com)'
class TestDriverRemoteConnection(object):
def test_traversals(self, remote_connection):
statics.load_statics(globals())
- assert "remoteconnection[ws://localhost:45940/gremlin,g]" == str(remote_connection)
+ assert "remoteconnection[ws://localhost:45940/gremlin,gmodern]" == str(remote_connection)
g = Graph().traversal().withRemote(remote_connection)
assert long(6) == g.V().count().toList()[0]
@@ -233,7 +233,7 @@ def test_in_tornado_app(remote_connection):
@gen.coroutine
def go():
conn = DriverRemoteConnection(
- 'ws://localhost:45940/gremlin', 'g', pool_size=4)
+ 'ws://localhost:45940/gremlin', 'gmodern', pool_size=4)
g = Graph().traversal().withRemote(conn)
yield gen.sleep(0)
assert len(g.V().toList()) == 6
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection_threaded.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection_threaded.py b/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection_threaded.py
index dffd442..49db930 100644
--- a/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection_threaded.py
+++ b/gremlin-python/src/main/jython/tests/driver/test_driver_remote_connection_threaded.py
@@ -41,6 +41,7 @@ def test_conns_in_threads(remote_connection):
child.join()
child2.join()
+
def test_conn_in_threads(remote_connection):
q = queue.Queue()
child = Thread(target=_executor, args=(q, remote_connection))
@@ -53,13 +54,14 @@ def test_conn_in_threads(remote_connection):
child.join()
child2.join()
+
def _executor(q, conn):
close = False
if not conn:
# This isn't a fixture so close manually
close = True
conn = DriverRemoteConnection(
- 'ws://localhost:45940/gremlin', 'g', pool_size=4)
+ 'ws://localhost:45940/gremlin', 'gmodern', pool_size=4)
try:
g = Graph().traversal().withRemote(conn)
future = g.V().promise()
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-server/scripts/generate-all.groovy
----------------------------------------------------------------------
diff --git a/gremlin-server/scripts/generate-all.groovy b/gremlin-server/scripts/generate-all.groovy
deleted file mode 100644
index 66b1cb4..0000000
--- a/gremlin-server/scripts/generate-all.groovy
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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')
- TinkerFactory.generateKitchenSink(sink)
-
- // a wild bit of trickery here. the process tests use an INTEGER id manager when LoadGraphWith is used. this
- // closure provides a way to to manually override the various id managers for TinkerGraph - the graph on which
- // all of these remote tests are executed - so that the tests will pass nicely. an alternative might have been
- // to have a special test TinkerGraph config for setting up the id manager properly, but based on how we do
- // things now, that test config would have been mixed in with release artifacts and there would have been ugly
- // exclusions to make packaging work properly.
- allowSetOfIdManager = { graph, idManagerFieldName ->
- java.lang.reflect.Field idManagerField = graph.class.getDeclaredField(idManagerFieldName)
- idManagerField.setAccessible(true)
- java.lang.reflect.Field modifiersField = java.lang.reflect.Field.class.getDeclaredField("modifiers")
- modifiersField.setAccessible(true)
- modifiersField.setInt(idManagerField, modifiersField.getModifiers() & ~java.lang.reflect.Modifier.FINAL)
-
- idManagerField.set(graph, TinkerGraph.DefaultIdManager.INTEGER)
- }
-
- [classic, modern, crew, sink].each{
- allowSetOfIdManager(it, "vertexIdManager")
- allowSetOfIdManager(it, "edgeIdManager")
- allowSetOfIdManager(it, "vertexPropertyIdManager")
- }
- }
-] 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 << [ggrateful : grateful.traversal()]
-globals << [gsink : sink.traversal()]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-server/src/assembly/standalone.xml
----------------------------------------------------------------------
diff --git a/gremlin-server/src/assembly/standalone.xml b/gremlin-server/src/assembly/standalone.xml
index cbb862e..f6a3641 100644
--- a/gremlin-server/src/assembly/standalone.xml
+++ b/gremlin-server/src/assembly/standalone.xml
@@ -38,9 +38,6 @@ limitations under the License.
<fileSet>
<directory>scripts</directory>
<outputDirectory>/scripts</outputDirectory>
- <excludes>
- <exclude>generate-all.groovy</exclude>
- </excludes>
</fileSet>
<fileSet>
<directory>../target/docs/htmlsingle</directory>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java
index 2c81078..8a1413a 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/RemoteGraphProvider.java
@@ -122,7 +122,7 @@ public class RemoteGraphProvider extends AbstractGraphProvider implements AutoCl
}
public static void startServer() throws Exception {
- final InputStream stream = RemoteGraphProvider.class.getResourceAsStream("gremlin-server-integration.yaml");
+ final InputStream stream = GremlinServer.class.getResourceAsStream("gremlin-server-integration.yaml");
final Settings settings = Settings.read(stream);
ServerTestHelper.rewritePathsInGremlinServerSettings(settings);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
index d890b85..81d51df 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
@@ -69,12 +69,6 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
private Cluster cluster;
private Client client;
- @Override
- public Settings overrideSettings(final Settings settings) {
- settings.scriptEngines.get("gremlin-groovy").scripts = Collections.singletonList("scripts/generate-modern.groovy");
- return settings;
- }
-
@Before
public void beforeTest() {
final MessageSerializer serializer = new GryoMessageSerializerV1d0();
@@ -96,7 +90,7 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
public void shouldHandleVertexResultFromTraversalBulked() throws Exception {
final Graph graph = TinkerGraph.open();
final GraphTraversalSource g = graph.traversal();
- final Client aliased = client.alias("g");
+ final Client aliased = client.alias("gmodern");
final ResultSet resultSetUnrolled = aliased.submit(g.V().both().barrier().both().barrier());
final List<Result> results = resultSetUnrolled.all().get();
@@ -106,25 +100,25 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
@Test
public void shouldHandleNullResult() throws Exception {
- final ResultSet results = client.submit("g.V().drop().iterate();null");
+ final ResultSet results = client.submit("gmodern.V().drop().iterate();null");
assertNull(results.all().get().get(0).getObject());
}
@Test
public void shouldHandleVoidResult() throws Exception {
- final ResultSet results = client.submit("g.V().drop().iterate()");
+ final ResultSet results = client.submit("gmodern.V().drop().iterate()");
assertEquals(0, results.all().get().size());
}
@Test
public void shouldHandleEmptyResult() throws Exception {
- final ResultSet results = client.submit("g.V(100,1000,1000)");
+ final ResultSet results = client.submit("gmodern.V(100,1000,1000)");
assertEquals(0, results.all().get().size());
}
@Test
public void shouldHandleVertexResult() throws Exception {
- final ResultSet results = client.submit("g.V(1).next()");
+ final ResultSet results = client.submit("gmodern.V(1).next()");
final Vertex v = results.all().get().get(0).getVertex();
assertThat(v, instanceOf(DetachedVertex.class));
@@ -143,46 +137,46 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
public void shouldHandleVertexResultWithLiteSerialization() throws Exception {
final Cluster cluster = TestClientFactory.build().serializer(Serializers.GRYO_LITE_V1D0).create();
final Client clientLite = cluster.connect();
- final ResultSet results = clientLite.submit("g.V(1).next()");
+ final ResultSet results = clientLite.submit("gmodern.V(1).next()");
final Vertex v = results.all().get().get(0).getVertex();
assertThat(v, instanceOf(ReferenceVertex.class));
- assertEquals(1L, v.id());
+ assertEquals(1, v.id());
assertEquals("person", v.label());
assertEquals(0, IteratorUtils.count(v.properties()));
}
@Test
public void shouldHandleVertexPropertyResult() throws Exception {
- final ResultSet results = client.submit("g.V().properties('name').next()");
+ final ResultSet results = client.submit("gmodern.V().properties('name').next()");
final VertexProperty<String> v = results.all().get().get(0).getVertexProperty();
assertThat(v, instanceOf(DetachedVertexProperty.class));
}
@Test
public void shouldHandleEdgeResult() throws Exception {
- final ResultSet results = client.submit("g.E().next()");
+ final ResultSet results = client.submit("gmodern.E().next()");
final Edge e = results.all().get().get(0).getEdge();
assertThat(e, instanceOf(DetachedEdge.class));
}
@Test
public void shouldHandlePropertyResult() throws Exception {
- final ResultSet results = client.submit("g.E().properties('weight').next()");
+ final ResultSet results = client.submit("gmodern.E().properties('weight').next()");
final Property<Double> p = results.all().get().get(0).getProperty();
assertThat(p, instanceOf(DetachedProperty.class));
}
@Test
public void shouldHandlePathResult() throws Exception {
- final ResultSet results = client.submit("g.V().out().path()");
+ final ResultSet results = client.submit("gmodern.V().out().path()");
final Path p = results.all().get().get(0).getPath();
assertThat(p, instanceOf(DetachedPath.class));
}
@Test
public void shouldHandleTinkerGraphResult() throws Exception {
- final ResultSet results = client.submit("graph");
+ final ResultSet results = client.submit("modern");
final Graph graph = results.all().get().get(0).get(TinkerGraph.class);
// test is "lossy for id" because TinkerGraph is configured by default to use the ANY id manager
@@ -193,7 +187,7 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
@Test
public void shouldHandleMapIteratedResult() throws Exception {
- final ResultSet results = client.submit("g.V().groupCount().by(bothE().count())");
+ final ResultSet results = client.submit("gmodern.V().groupCount().by(bothE().count())");
final List<Result> resultList = results.all().get();
final Map m = resultList.get(0).get(HashMap.class);
assertEquals(2, m.size());
@@ -203,7 +197,7 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
@Test
public void shouldHandleMapObjectResult() throws Exception {
- final ResultSet results = client.submit("g.V().groupCount().by(bothE().count()).next()");
+ final ResultSet results = client.submit("gmodern.V().groupCount().by(bothE().count()).next()");
final List<Result> resultList = results.all().get();
assertEquals(2, resultList.size());
final Map.Entry firstEntry = resultList.get(0).get(HashMap.Entry.class);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
index df7b734..1375521 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
@@ -70,12 +70,6 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
case "should413OnPostWithResultTooLarge":
settings.maxContentLength = 31;
break;
- case "should200OnGETWithGremlinQueryStringArgumentWithIteratorResult":
- case "should200OnPOSTWithGremlinJsonEndcodedBodyWithIteratorResult":
- case "should200OnPOSTWithGremlinJsonEndcodedBodyWithIteratorResultAndAliases":
- case "should200OnGETWithGremlinQueryStringArgumentWithIteratorResultAndAliases":
- settings.scriptEngines.get("gremlin-groovy").scripts = Collections.singletonList("scripts/generate-classic.groovy");
- break;
case "should200OnPOSTTransactionalGraph":
deleteDirectory(new File("/tmp/neo4j"));
settings.graphs.put("graph", "conf/neo4j-empty.properties");
@@ -354,7 +348,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
@Test
public void should200OnGETWithGremlinQueryStringArgumentWithIteratorResult() throws Exception {
final CloseableHttpClient httpclient = HttpClients.createDefault();
- final HttpGet httpget = new HttpGet(TestClientFactory.createURLString("?gremlin=g.V()"));
+ final HttpGet httpget = new HttpGet(TestClientFactory.createURLString("?gremlin=gclassic.V()"));
try (final CloseableHttpResponse response = httpclient.execute(httpget)) {
assertEquals(200, response.getStatusLine().getStatusCode());
@@ -369,7 +363,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
public void should200OnGETWithGremlinQueryStringArgumentWithIteratorResultAndAliases() throws Exception {
// we can remove this first test when rebindings are completely removed
final CloseableHttpClient httpclientLegacy = HttpClients.createDefault();
- final HttpGet httpgetLegacy = new HttpGet(TestClientFactory.createURLString("?gremlin=g1.V()&rebindings.g1=g"));
+ final HttpGet httpgetLegacy = new HttpGet(TestClientFactory.createURLString("?gremlin=g1.V()&rebindings.g1=gclassic"));
try (final CloseableHttpResponse response = httpclientLegacy.execute(httpgetLegacy)) {
assertEquals(200, response.getStatusLine().getStatusCode());
@@ -380,7 +374,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
}
final CloseableHttpClient httpclient = HttpClients.createDefault();
- final HttpGet httpget = new HttpGet(TestClientFactory.createURLString("?gremlin=g1.V()&aliases.g1=g"));
+ final HttpGet httpget = new HttpGet(TestClientFactory.createURLString("?gremlin=g1.V()&aliases.g1=gclassic"));
try (final CloseableHttpResponse response = httpclient.execute(httpget)) {
assertEquals(200, response.getStatusLine().getStatusCode());
@@ -573,7 +567,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
final CloseableHttpClient httpclient = HttpClients.createDefault();
final HttpPost httppost = new HttpPost(TestClientFactory.createURLString());
httppost.addHeader("Content-Type", "application/json");
- httppost.setEntity(new StringEntity("{\"gremlin\":\"g.V()\"}", Consts.UTF_8));
+ httppost.setEntity(new StringEntity("{\"gremlin\":\"gclassic.V()\"}", Consts.UTF_8));
try (final CloseableHttpResponse response = httpclient.execute(httppost)) {
assertEquals(200, response.getStatusLine().getStatusCode());
@@ -613,7 +607,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
final CloseableHttpClient httpclientLegacy = HttpClients.createDefault();
final HttpPost httppostLegacy = new HttpPost(TestClientFactory.createURLString());
httppostLegacy.addHeader("Content-Type", "application/json");
- httppostLegacy.setEntity(new StringEntity("{\"gremlin\":\"g1.V()\",\"rebindings\":{\"g1\":\"g\"}}", Consts.UTF_8));
+ httppostLegacy.setEntity(new StringEntity("{\"gremlin\":\"g1.V()\",\"rebindings\":{\"g1\":\"gclassic\"}}", Consts.UTF_8));
try (final CloseableHttpResponse response = httpclientLegacy.execute(httppostLegacy)) {
assertEquals(200, response.getStatusLine().getStatusCode());
@@ -626,7 +620,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
final CloseableHttpClient httpclient = HttpClients.createDefault();
final HttpPost httppost = new HttpPost(TestClientFactory.createURLString());
httppost.addHeader("Content-Type", "application/json");
- httppost.setEntity(new StringEntity("{\"gremlin\":\"g1.V()\",\"aliases\":{\"g1\":\"g\"}}", Consts.UTF_8));
+ httppost.setEntity(new StringEntity("{\"gremlin\":\"g1.V()\",\"aliases\":{\"g1\":\"gclassic\"}}", Consts.UTF_8));
try (final CloseableHttpResponse response = httpclient.execute(httppost)) {
assertEquals(200, response.getStatusLine().getStatusCode());
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java
index e846673..41352a4 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java
@@ -33,16 +33,17 @@ public class ServerTestHelper {
*/
public static void rewritePathsInGremlinServerSettings(final Settings overridenSettings) {
final String buildDir = System.getProperty("build.dir");
- final String homeDir = buildDir.substring(0, buildDir.indexOf("gremlin-server") + "gremlin-server".length());
+ final String homeDir = buildDir.substring(0, buildDir.indexOf("gremlin-server") + "gremlin-server".length()) +
+ File.separator + "src" + File.separator + "test" + File.separator +"scripts";
overridenSettings.scriptEngines.get("gremlin-groovy").scripts = overridenSettings.scriptEngines
.get("gremlin-groovy").scripts.stream()
- .map(s -> new File(s).isAbsolute() ? s : homeDir + File.separator + s)
+ .map(s -> new File(s).isAbsolute() ? s : homeDir + s.substring(s.lastIndexOf(File.separator)))
.collect(Collectors.toList());
overridenSettings.graphs = overridenSettings.graphs.entrySet().stream()
.map(kv -> {
- kv.setValue(homeDir + File.separator + kv.getValue());
+ kv.setValue(homeDir + kv.getValue().substring(kv.getValue().lastIndexOf(File.separator)));
return kv;
}).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/util/DefaultGraphManagerTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/util/DefaultGraphManagerTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/util/DefaultGraphManagerTest.java
index 0841ffa..6c0e8b0 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/util/DefaultGraphManagerTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/util/DefaultGraphManagerTest.java
@@ -47,9 +47,14 @@ public class DefaultGraphManagerTest {
final Set<String> graphNames = graphManager.getGraphNames();
assertNotNull(graphNames);
- assertEquals(1, graphNames.size());
-
- assertEquals(graphNames.toArray()[0], "graph");
+ assertEquals(6, graphNames.size());
+
+ assertThat(graphNames.contains("graph"), is(true));
+ assertThat(graphNames.contains("classic"), is(true));
+ assertThat(graphNames.contains("modern"), is(true));
+ assertThat(graphNames.contains("crew"), is(true));
+ assertThat(graphNames.contains("sink"), is(true));
+ assertThat(graphNames.contains("grateful"), is(true));
assertThat(graphManager.getGraph("graph"), instanceOf(TinkerGraph.class));
}
@@ -60,9 +65,14 @@ public class DefaultGraphManagerTest {
final Bindings bindings = graphManager.getAsBindings();
assertNotNull(bindings);
- assertEquals(1, bindings.size());
- assertThat(bindings.get("graph"), instanceOf(TinkerGraph.class));
+ assertEquals(6, bindings.size());
assertThat(bindings.containsKey("graph"), is(true));
+ assertThat(bindings.containsKey("classic"), is(true));
+ assertThat(bindings.containsKey("modern"), is(true));
+ assertThat(bindings.containsKey("crew"), is(true));
+ assertThat(bindings.containsKey("sink"), is(true));
+ assertThat(bindings.containsKey("grateful"), is(true));
+ assertThat(bindings.get("graph"), instanceOf(TinkerGraph.class));
}
@Test
@@ -84,8 +94,14 @@ public class DefaultGraphManagerTest {
final Set<String> graphNames = graphManager.getGraphNames();
assertNotNull(graphNames);
- assertEquals(2, graphNames.size());
+ assertEquals(7, graphNames.size());
assertThat(graphNames.contains("newGraph"), is(true));
+ assertThat(graphNames.contains("graph"), is(true));
+ assertThat(graphNames.contains("classic"), is(true));
+ assertThat(graphNames.contains("modern"), is(true));
+ assertThat(graphNames.contains("crew"), is(true));
+ assertThat(graphNames.contains("sink"), is(true));
+ assertThat(graphNames.contains("grateful"), is(true));
assertThat(graphManager.getGraph("newGraph"), instanceOf(TinkerGraph.class));
}
@@ -97,14 +113,14 @@ public class DefaultGraphManagerTest {
graphManager.putGraph("newGraph", graph);
final Set<String> graphNames = graphManager.getGraphNames();
assertNotNull(graphNames);
- assertEquals(2, graphNames.size());
+ assertEquals(7, graphNames.size());
assertThat(graphNames.contains("newGraph"), is(true));
assertThat(graphManager.getGraph("newGraph"), instanceOf(TinkerGraph.class));
graphManager.removeGraph("newGraph");
final Set<String> graphNames2 = graphManager.getGraphNames();
- assertEquals(1, graphNames2.size());
+ assertEquals(6, graphNames2.size());
assertThat(graphNames2.contains("newGraph"), is(false));
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/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
deleted file mode 100644
index 7b388aa..0000000
--- a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-# 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.
-
-host: localhost
-port: 45940
-scriptEvaluationTimeout: 30000
-graphs: {
- graph: conf/tinkergraph-empty.properties,
- classic: conf/tinkergraph-empty.properties,
- modern: conf/tinkergraph-empty.properties,
- crew: conf/tinkergraph-empty.properties,
- grateful: conf/tinkergraph-empty.properties,
- sink: conf/tinkergraph-empty.properties}
-plugins:
- - tinkerpop.tinkergraph
-scriptEngines: {
- gremlin-groovy: {
- imports: [java.lang.Math],
- staticImports: [java.lang.Math.PI],
- scripts: [scripts/generate-all.groovy]}}
-serializers:
- - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0], custom: [groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer]}}
- - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0], custom: [groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer]}}
- - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true}}
- - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0] }}
- - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0] }}
- - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0] }}
-processors:
- - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
-metrics: {
- slf4jReporter: {enabled: true, interval: 180000}}
-strictTransactionManagement: false
-idleConnectionTimeout: 0
-keepAliveInterval: 0
-maxInitialLineLength: 4096
-maxHeaderSize: 8192
-maxChunkSize: 8192
-maxContentLength: 65536
-maxAccumulationBufferComponents: 1024
-resultIterationBatchSize: 64
-writeBufferHighWaterMark: 32768
-writeBufferHighWaterMark: 65536
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/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 3b28020..dcb5299 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
@@ -19,14 +19,19 @@ host: localhost
port: 45940
scriptEvaluationTimeout: 30000
graphs: {
- graph: conf/tinkergraph-empty.properties}
+ graph: conf/tinkergraph-empty.properties,
+ classic: conf/tinkergraph-empty.properties,
+ modern: conf/tinkergraph-empty.properties,
+ crew: conf/tinkergraph-empty.properties,
+ grateful: conf/tinkergraph-empty.properties,
+ sink: conf/tinkergraph-empty.properties}
plugins:
- tinkerpop.tinkergraph
scriptEngines: {
gremlin-groovy: {
imports: [java.lang.Math],
staticImports: [java.lang.Math.PI],
- scripts: [scripts/empty-sample.groovy]}}
+ scripts: [scripts/generate-all.groovy]}}
serializers:
- { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0], custom: [groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer]}}
- { className: org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0], custom: [groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer]}}
@@ -48,4 +53,4 @@ maxContentLength: 65536
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
-writeBufferHighWaterMark: 65536
+writeBufferHighWaterMark: 65536
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/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
index 108ca5d..ee65bb4 100644
--- a/gremlin-server/src/test/scripts/generate-all.groovy
+++ b/gremlin-server/src/test/scripts/generate-all.groovy
@@ -17,6 +17,11 @@
* under the License.
*/
+// An example of an initialization script that can be configured to run in Gremlin Server.
+// Functions defined here will go into global cache and will not be removed from there
+// unless there is a reset of the ScriptEngine.
+def addItUp(x, y) { x + y }
+
// an init script that returns a Map allows explicit setting of global bindings.
def globals = [:]
@@ -27,16 +32,38 @@ globals << [hook : [
TinkerFactory.generateClassic(classic)
TinkerFactory.generateModern(modern)
TinkerFactory.generateTheCrew(crew)
+ TinkerFactory.generateGratefulDead(grateful)
TinkerFactory.generateKitchenSink(sink)
- grateful.io(gryo()).readGraph('data/grateful-dead.kryo')
+
+ // a wild bit of trickery here. the process tests use an INTEGER id manager when LoadGraphWith is used. this
+ // closure provides a way to to manually override the various id managers for TinkerGraph - the graph on which
+ // all of these remote tests are executed - so that the tests will pass nicely. an alternative might have been
+ // to have a special test TinkerGraph config for setting up the id manager properly, but based on how we do
+ // things now, that test config would have been mixed in with release artifacts and there would have been ugly
+ // exclusions to make packaging work properly.
+ allowSetOfIdManager = { graph, idManagerFieldName ->
+ java.lang.reflect.Field idManagerField = graph.class.getDeclaredField(idManagerFieldName)
+ idManagerField.setAccessible(true)
+ java.lang.reflect.Field modifiersField = java.lang.reflect.Field.class.getDeclaredField("modifiers")
+ modifiersField.setAccessible(true)
+ modifiersField.setInt(idManagerField, modifiersField.getModifiers() & ~java.lang.reflect.Modifier.FINAL)
+
+ idManagerField.set(graph, TinkerGraph.DefaultIdManager.INTEGER)
+ }
+
+ [classic, modern, crew, sink, grateful].each{
+ allowSetOfIdManager(it, "vertexIdManager")
+ allowSetOfIdManager(it, "edgeIdManager")
+ allowSetOfIdManager(it, "vertexPropertyIdManager")
+ }
}
] as LifeCycleHook]
// add default TraversalSource instances for each graph instance
globals << [gclassic : classic.traversal()]
globals << [gmodern : modern.traversal()]
+globals << [g : graph.traversal()]
globals << [gcrew : crew.traversal()]
globals << [ggraph : graph.traversal()]
-globals << [g : modern.traversal()]
globals << [ggrateful : grateful.traversal()]
globals << [gsink : sink.traversal()]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8e2749e7/gremlin-server/src/test/scripts/neo4j-empty.properties
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/scripts/neo4j-empty.properties b/gremlin-server/src/test/scripts/neo4j-empty.properties
new file mode 100644
index 0000000..0ea551b
--- /dev/null
+++ b/gremlin-server/src/test/scripts/neo4j-empty.properties
@@ -0,0 +1,33 @@
+# 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.
+
+# This is a sample configuration file for Neo4j. Note that
+# TinkerPop does not include Neo4j dependencies in its
+# distributions. To use this file, please ensure that Neo4j
+# dependencies are installed into Gremlin Server's path
+# with:
+#
+# gremlin-server.sh -i org.apache.tinkerpop neo4j-gremlin 3.y.z
+#
+# Note that unless under a commercial agreement with Neo Technology,
+# Neo4j is licensed AGPL.
+
+
+gremlin.graph=org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
+gremlin.neo4j.directory=/tmp/neo4j
+gremlin.neo4j.conf.node_auto_indexing=true
+gremlin.neo4j.conf.relationship_auto_indexing=true
\ No newline at end of file
[02/17] tinkerpop git commit: TINKERPOP-1968 Added edge ids to sink
and grateful generator
Posted by sp...@apache.org.
TINKERPOP-1968 Added edge ids to sink and grateful generator
Edge ids should have always been statically defined - not sure how/why that was missed. Also added grateful dead dataset to TinkerFactory to make that easier to programmatically setup.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/68bdaed4
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/68bdaed4
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/68bdaed4
Branch: refs/heads/master
Commit: 68bdaed44f120f30857930f927e5faf99379b83c
Parents: f411f1d
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri May 18 14:34:44 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:18:08 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
data/tinkerpop-sink-typed.json | 6 +-
data/tinkerpop-sink-v2d0-typed.json | 6 +-
data/tinkerpop-sink-v2d0.json | 6 +-
data/tinkerpop-sink.json | 6 +-
data/tinkerpop-sink.kryo | Bin 234 -> 240 bytes
.../io/graphson/tinkerpop-sink-typed.json | 6 +-
.../io/graphson/tinkerpop-sink-v2d0-typed.json | 6 +-
.../io/graphson/tinkerpop-sink-v2d0.json | 6 +-
.../structure/io/graphson/tinkerpop-sink.json | 6 +-
.../structure/io/gryo/tinkerpop-sink.kryo | Bin 234 -> 240 bytes
.../tinkergraph/structure/TinkerFactory.java | 82 ++++++++++++++++++-
12 files changed, 104 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 6251b6d..6a06a1a 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
* Fixed bug in `branch()` where reducing steps as options would produce incorrect results.
* Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors.
* Improved performance of `TraversalVertexProgram` and related infrastructure.
+* Added `createGratefulDead()`to `TinkerFactory` to help make it easier to try to instantiate that toy graph.
* Fixed bug in `GroovyTranslator` that didn't properly handle empty `Map` objects.
* Added concrete configuration methods to `SparkGraphComputer` to make a more clear API for configuring it.
* Fixed a bug in `TinkerGraphCountStrategy`, which didn't consider that certain map steps may not emit an element.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/data/tinkerpop-sink-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-typed.json b/data/tinkerpop-sink-typed.json
index 2e83384..9f16788 100644
--- a/data/tinkerpop-sink-typed.json
+++ b/data/tinkerpop-sink-typed.json
@@ -1,3 +1,3 @@
-{"@class":"java.util.HashMap","id":2000,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"inV":2001},{"@class":"java.util.HashMap","id":5,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"a"}]]}}
-{"@class":"java.util.HashMap","id":2001,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
-{"@class":"java.util.HashMap","id":1000,"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"outV":1000}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"inV":1000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"loop"}]]}}
+{"@class":"java.util.HashMap","id":2000,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2003,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2002,"inV":2001},{"@class":"java.util.HashMap","id":2003,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":"a"}]]}}
+{"@class":"java.util.HashMap","id":2001,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2002,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"b"}]]}}
+{"@class":"java.util.HashMap","id":1000,"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1001,"outV":1000}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1001,"inV":1000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"loop"}]]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/data/tinkerpop-sink-v2d0-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0-typed.json b/data/tinkerpop-sink-v2d0-typed.json
index 7a27853..906d74a 100644
--- a/data/tinkerpop-sink-v2d0-typed.json
+++ b/data/tinkerpop-sink-v2d0-typed.json
@@ -1,3 +1,3 @@
-{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
-{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
-{"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
+{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2003},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":2003},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"a"}]}}
+{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"b"}]}}
+{"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/data/tinkerpop-sink-v2d0.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink-v2d0.json b/data/tinkerpop-sink-v2d0.json
index 420e089..4d4811f 100644
--- a/data/tinkerpop-sink-v2d0.json
+++ b/data/tinkerpop-sink-v2d0.json
@@ -1,3 +1,3 @@
-{"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
-{"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
+{"id":2000,"label":"message","inE":{"link":[{"id":2003,"outV":2000}]},"outE":{"link":[{"id":2002,"inV":2001},{"id":2003,"inV":2000}]},"properties":{"name":[{"id":1,"value":"a"}]}}
+{"id":2001,"label":"message","inE":{"link":[{"id":2002,"outV":2000}]},"properties":{"name":[{"id":2,"value":"b"}]}}
+{"id":1000,"label":"loops","inE":{"self":[{"id":1001,"outV":1000}]},"outE":{"self":[{"id":1001,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/data/tinkerpop-sink.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.json b/data/tinkerpop-sink.json
index 420e089..4d4811f 100644
--- a/data/tinkerpop-sink.json
+++ b/data/tinkerpop-sink.json
@@ -1,3 +1,3 @@
-{"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
-{"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
+{"id":2000,"label":"message","inE":{"link":[{"id":2003,"outV":2000}]},"outE":{"link":[{"id":2002,"inV":2001},{"id":2003,"inV":2000}]},"properties":{"name":[{"id":1,"value":"a"}]}}
+{"id":2001,"label":"message","inE":{"link":[{"id":2002,"outV":2000}]},"properties":{"name":[{"id":2,"value":"b"}]}}
+{"id":1000,"label":"loops","inE":{"self":[{"id":1001,"outV":1000}]},"outE":{"self":[{"id":1001,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/data/tinkerpop-sink.kryo
----------------------------------------------------------------------
diff --git a/data/tinkerpop-sink.kryo b/data/tinkerpop-sink.kryo
index ae68674..8db5f4f 100644
Binary files a/data/tinkerpop-sink.kryo and b/data/tinkerpop-sink.kryo differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
index 2e83384..9f16788 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
@@ -1,3 +1,3 @@
-{"@class":"java.util.HashMap","id":2000,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"inV":2001},{"@class":"java.util.HashMap","id":5,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"a"}]]}}
-{"@class":"java.util.HashMap","id":2001,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
-{"@class":"java.util.HashMap","id":1000,"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"outV":1000}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"inV":1000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"loop"}]]}}
+{"@class":"java.util.HashMap","id":2000,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2003,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2002,"inV":2001},{"@class":"java.util.HashMap","id":2003,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":"a"}]]}}
+{"@class":"java.util.HashMap","id":2001,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2002,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"b"}]]}}
+{"@class":"java.util.HashMap","id":1000,"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1001,"outV":1000}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1001,"inV":1000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"loop"}]]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json
index 7a27853..906d74a 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0-typed.json
@@ -1,3 +1,3 @@
-{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
-{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
-{"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
+{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2003},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":2003},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"a"}]}}
+{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"b"}]}}
+{"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json
index 420e089..4d4811f 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v2d0.json
@@ -1,3 +1,3 @@
-{"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
-{"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
+{"id":2000,"label":"message","inE":{"link":[{"id":2003,"outV":2000}]},"outE":{"link":[{"id":2002,"inV":2001},{"id":2003,"inV":2000}]},"properties":{"name":[{"id":1,"value":"a"}]}}
+{"id":2001,"label":"message","inE":{"link":[{"id":2002,"outV":2000}]},"properties":{"name":[{"id":2,"value":"b"}]}}
+{"id":1000,"label":"loops","inE":{"self":[{"id":1001,"outV":1000}]},"outE":{"self":[{"id":1001,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
index 420e089..4d4811f 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
@@ -1,3 +1,3 @@
-{"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
-{"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
-{"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
+{"id":2000,"label":"message","inE":{"link":[{"id":2003,"outV":2000}]},"outE":{"link":[{"id":2002,"inV":2001},{"id":2003,"inV":2000}]},"properties":{"name":[{"id":1,"value":"a"}]}}
+{"id":2001,"label":"message","inE":{"link":[{"id":2002,"outV":2000}]},"properties":{"name":[{"id":2,"value":"b"}]}}
+{"id":1000,"label":"loops","inE":{"self":[{"id":1001,"outV":1000}]},"outE":{"self":[{"id":1001,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo
index ae68674..8db5f4f 100644
Binary files a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink.kryo differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68bdaed4/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 ef1ee7f..3a47f17 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,8 +24,18 @@ 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.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static org.apache.tinkerpop.gremlin.structure.io.IoCore.gryo;
/**
+ * Helps create a variety of different toy graphs for testing and learning purposes.
+ *
* @author Marko A. Rodriguez (http://markorodriguez.com)
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
@@ -33,6 +43,9 @@ public final class TinkerFactory {
private TinkerFactory() {}
+ /**
+ * Create the "classic" graph which was the original toy graph from TinkerPop 2.x.
+ */
public static TinkerGraph createClassic() {
final Configuration conf = new BaseConfiguration();
conf.setProperty(TinkerGraph.GREMLIN_TINKERGRAPH_VERTEX_ID_MANAGER, TinkerGraph.DefaultIdManager.INTEGER.name());
@@ -43,6 +56,9 @@ public final class TinkerFactory {
return g;
}
+ /**
+ * Generate the graph in {@link #createClassic()} into an existing graph.
+ */
public static void generateClassic(final TinkerGraph g) {
final Vertex marko = g.addVertex(T.id, 1, "name", "marko", "age", 29);
final Vertex vadas = g.addVertex(T.id, 2, "name", "vadas", "age", 27);
@@ -58,12 +74,19 @@ public final class TinkerFactory {
peter.addEdge("created", lop, T.id, 12, "weight", 0.2f);
}
+ /**
+ * Create the "modern" graph which has the same structure as the "classic" graph from TinkerPop 2.x but includes
+ * 3.x features like vertex labels.
+ */
public static TinkerGraph createModern() {
final TinkerGraph g = getTinkerGraphWithNumberManager();
generateModern(g);
return g;
}
+ /**
+ * Generate the graph in {@link #createModern()} into an existing graph.
+ */
public static void generateModern(final TinkerGraph g) {
final Vertex marko = g.addVertex(T.id, 1, T.label, "person", "name", "marko", "age", 29);
final Vertex vadas = g.addVertex(T.id, 2, T.label, "person", "name", "vadas", "age", 27);
@@ -79,6 +102,10 @@ public final class TinkerFactory {
peter.addEdge("created", lop, T.id, 12, "weight", 0.2d);
}
+ /**
+ * Create the "the crew" graph which is a TinkerPop 3.x toy graph showcasing many 3.x features like meta-properties,
+ * multi-properties and graph variables.
+ */
public static TinkerGraph createTheCrew() {
final Configuration conf = getNumberIdManagerConfiguration();
conf.setProperty(TinkerGraph.GREMLIN_TINKERGRAPH_DEFAULT_VERTEX_PROPERTY_CARDINALITY, VertexProperty.Cardinality.list.name());
@@ -87,6 +114,9 @@ public final class TinkerFactory {
return g;
}
+ /**
+ * Generate the graph in {@link #createTheCrew()} into an existing graph.
+ */
public static void generateTheCrew(final TinkerGraph g) {
final Vertex marko = g.addVertex(T.id, 1, T.label, "person", "name", "marko");
final Vertex stephen = g.addVertex(T.id, 7, T.label, "person", "name", "stephen");
@@ -137,21 +167,67 @@ public final class TinkerFactory {
g.variables().set("comment", "this graph was created to provide examples and test coverage for tinkerpop3 api advances");
}
+ /**
+ * Creates the "kitchen sink" graph which is a collection of structures (e.g. self-loops) that aren't represented
+ * in other graphs and are useful for various testing scenarios.
+ */
public static TinkerGraph createKitchenSink() {
final TinkerGraph g = getTinkerGraphWithNumberManager();
generateKitchenSink(g);
return g;
}
+ /**
+ * Generate the graph in {@link #createKitchenSink()} into an existing graph.
+ */
public static void generateKitchenSink(final TinkerGraph graph) {
final GraphTraversalSource g = graph.traversal();
g.addV("loops").property(T.id, 1000).property("name", "loop").as("me").
- addE("self").to("me").
+ addE("self").to("me").property(T.id, 1001).
iterate();
g.addV("message").property(T.id, 2000).property("name", "a").as("a").
addV("message").property(T.id, 2001).property("name", "b").as("b").
- addE("link").from("a").to("b").
- addE("link").from("a").to("a").iterate();
+ addE("link").from("a").to("b").property(T.id, 2002).
+ addE("link").from("a").to("a").property(T.id, 2003).iterate();
+ }
+
+ /**
+ * 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}.
+ */
+ public static TinkerGraph createGratefulDead() {
+ final TinkerGraph g = getTinkerGraphWithNumberManager();
+ generateGratefulDead(g);
+ return g;
+ }
+
+ /**
+ * 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);
+ }
+ }
+ }
+
+ if (!graph.vertices().hasNext())
+ throw new IllegalStateException("grateful-dead.kryo cannot be found");
}
private static TinkerGraph getTinkerGraphWithNumberManager() {
[05/17] tinkerpop git commit: TINKERPOP-1968 Enabled GLV tests for
self loops
Posted by sp...@apache.org.
TINKERPOP-1968 Enabled GLV tests for self loops
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5c50772c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5c50772c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5c50772c
Branch: refs/heads/master
Commit: 5c50772cb6b3d1287ff9e726f89816f3de9562ce
Parents: 8e2749e
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri May 18 14:39:53 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:18:09 2018 -0400
----------------------------------------------------------------------
.../traversal/step/map/GroovyVertexTest.groovy | 8 +++---
gremlin-test/features/map/Vertex.feature | 26 ++++++++++++++++++-
.../process/traversal/step/map/VertexTest.java | 27 ++++++++++----------
.../gremlin/process/FeatureCoverageTest.java | 3 ---
4 files changed, 42 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c50772c/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyVertexTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyVertexTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyVertexTest.groovy
index ff6275d..cd43ad0 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyVertexTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyVertexTest.groovy
@@ -185,13 +185,13 @@ public abstract class GroovyVertexTest {
}
@Override
- public Traversal<Vertex, Edge> get_g_V_bothEXselfX() {
- new ScriptTraversal<>(g, "gremlin-groovy", "g.V().bothE('self')")
+ public Traversal<Vertex, Edge> get_g_V_hasLabelXloopsX_bothEXselfX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V().hasLabel('loops').bothE('self')")
}
@Override
- public Traversal<Vertex, Vertex> get_g_V_bothXselfX() {
- new ScriptTraversal<>(g, "gremlin-groovy", "g.V().both('self')")
+ public Traversal<Vertex, Vertex> get_g_V_hasLabelXloopsX_bothXselfX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V().hasLabel('loops').both('self')")
}
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c50772c/gremlin-test/features/map/Vertex.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Vertex.feature b/gremlin-test/features/map/Vertex.feature
index 569fb6f..8642693 100644
--- a/gremlin-test/features/map/Vertex.feature
+++ b/gremlin-test/features/map/Vertex.feature
@@ -472,4 +472,28 @@ Feature: Step - V(), E(), out(), in(), both(), inE(), outE(), bothE()
| ripple |
| ripple |
| ripple |
- | ripple |
\ No newline at end of file
+ | ripple |
+
+ Scenario: g_V_hasLabelXloopsX_bothEXselfX
+ Given the sink graph
+ And the traversal of
+ """
+ g.V().hasLabel("loops").bothE("self")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | e[loop-self->loop] |
+ | e[loop-self->loop] |
+
+ Scenario: g_V_hasLabelXloopsX_bothXselfX
+ Given the sink graph
+ And the traversal of
+ """
+ g.V().hasLabel("loops").both("self")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | v[loop] |
+ | v[loop] |
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c50772c/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java
index 8a57535..7908952 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java
@@ -41,6 +41,7 @@ import java.util.Map;
import java.util.Set;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.SINK;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -113,9 +114,9 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, String> get_g_V_hasLabelXpersonX_V_hasLabelXsoftwareX_name();
- public abstract Traversal<Vertex, Edge> get_g_V_bothEXselfX();
+ public abstract Traversal<Vertex, Edge> get_g_V_hasLabelXloopsX_bothEXselfX();
- public abstract Traversal<Vertex, Vertex> get_g_V_bothXselfX();
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasLabelXloopsX_bothXselfX();
// GRAPH VERTEX/EDGE
@@ -575,10 +576,9 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
}
@Test
- @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
- public void g_V_bothEXselfX() {
- g.addV().as("a").addE("self").to("a").iterate();
- final Traversal<Vertex, Edge> traversal = get_g_V_bothEXselfX();
+ @LoadGraphWith(SINK)
+ public void g_V_hasLabelXloopsX_bothEXselfX() {
+ final Traversal<Vertex, Edge> traversal = get_g_V_hasLabelXloopsX_bothEXselfX();
printTraversalForm(traversal);
List<Edge> edges = traversal.toList();
@@ -587,10 +587,9 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
}
@Test
- @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
- public void g_V_bothXselfX() {
- g.addV().as("a").addE("self").to("a").iterate();
- final Traversal<Vertex, Vertex> traversal = get_g_V_bothXselfX();
+ @LoadGraphWith(SINK)
+ public void g_V_hasLabelXloopsX_bothXselfX() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_hasLabelXloopsX_bothXselfX();
printTraversalForm(traversal);
List<Vertex> vertices = traversal.toList();
@@ -751,13 +750,13 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
}
@Override
- public Traversal<Vertex, Edge> get_g_V_bothEXselfX() {
- return g.V().bothE("self");
+ public Traversal<Vertex, Edge> get_g_V_hasLabelXloopsX_bothEXselfX() {
+ return g.V().hasLabel("loops").bothE("self");
}
@Override
- public Traversal<Vertex, Vertex> get_g_V_bothXselfX() {
- return g.V().both("self");
+ public Traversal<Vertex, Vertex> get_g_V_hasLabelXloopsX_bothXselfX() {
+ return g.V().hasLabel("loops").both("self");
}
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5c50772c/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
index 28c6d77..00391bf 100644
--- a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
+++ b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
@@ -127,9 +127,6 @@ public class FeatureCoverageTest {
"g_V_selectXaX",
// assertion doesn't seem to want to work right for embedded lists
"g_V_asXa_bX_out_asXcX_path_selectXkeysX",
- // probably need TINKERPOP-1877
- "g_V_bothEXselfX",
- "g_V_bothXselfX",
// ugh - BigInteger?
"g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack",
// ugh - clone
[13/17] tinkerpop git commit: TINKERPOP-1968 Changelog updates
Posted by sp...@apache.org.
TINKERPOP-1968 Changelog updates
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2886eaff
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2886eaff
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2886eaff
Branch: refs/heads/master
Commit: 2886eaff212b7aa525378d8a494fe8b9138a03a2
Parents: 68ea100
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue May 22 06:17:22 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:19:43 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2886eaff/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 6a06a1a..6297210 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -27,6 +27,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
* Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors.
* Improved performance of `TraversalVertexProgram` and related infrastructure.
* Added `createGratefulDead()`to `TinkerFactory` to help make it easier to try to instantiate that toy graph.
+* Added identifiers to edges in the Kitchen Sink toy graph.
+* Refactored the Gremlin Server integration testing framework and streamlined that infrastructure.
* Fixed bug in `GroovyTranslator` that didn't properly handle empty `Map` objects.
* Added concrete configuration methods to `SparkGraphComputer` to make a more clear API for configuring it.
* Fixed a bug in `TinkerGraphCountStrategy`, which didn't consider that certain map steps may not emit an element.
[15/17] tinkerpop git commit: Merge branch 'TINKERPOP-1968' into tp32
Posted by sp...@apache.org.
Merge branch 'TINKERPOP-1968' into tp32
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1a0947b7
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1a0947b7
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1a0947b7
Branch: refs/heads/master
Commit: 1a0947b72e0415c26133fdb0a232b2e23ffa572c
Parents: 4d0d481 2886eaf
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Jun 1 06:17:33 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Jun 1 06:17:33 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 3 +
data/tinkerpop-sink-typed.json | 6 +-
data/tinkerpop-sink-v2d0-typed.json | 6 +-
data/tinkerpop-sink-v2d0.json | 6 +-
data/tinkerpop-sink.json | 6 +-
data/tinkerpop-sink.kryo | Bin 234 -> 240 bytes
.../the-gremlin-console/index.asciidoc | 5 +-
.../upgrade/release-3.2.x-incubating.asciidoc | 8 +
.../Gherkin/GherkinTestRunner.cs | 3 +-
.../Gherkin/IgnoreException.cs | 6 +-
.../ModernGraphTypeInformation.cs | 3 +-
gremlin-dotnet/test/pom.xml | 2 +-
.../traversal/step/map/GroovySelectTest.groovy | 80 +++++-
.../traversal/step/map/GroovyVertexTest.groovy | 8 +-
gremlin-javascript/pom.xml | 2 +-
.../test/cucumber/feature-steps.js | 3 +-
.../test/integration/remote-connection-tests.js | 2 +-
.../test/integration/traversal-test.js | 2 +-
gremlin-python/pom.xml | 2 +-
.../src/main/jython/radish/feature_steps.py | 4 +-
.../src/main/jython/tests/conftest.py | 6 +-
.../src/main/jython/tests/driver/test_client.py | 14 +-
.../driver/test_driver_remote_connection.py | 4 +-
.../test_driver_remote_connection_threaded.py | 4 +-
gremlin-server/scripts/generate-all.groovy | 63 -----
gremlin-server/src/assembly/standalone.xml | 3 -
.../driver/remote/RemoteGraphProvider.java | 2 +-
.../server/GremlinResultSetIntegrateTest.java | 34 ++-
.../server/GremlinServerHttpIntegrateTest.java | 18 +-
.../gremlin/server/ServerTestHelper.java | 7 +-
.../server/util/DefaultGraphManagerTest.java | 32 ++-
.../remote/gremlin-server-integration.yaml | 56 -----
.../server/gremlin-server-integration.yaml | 11 +-
.../src/test/scripts/generate-all.groovy | 31 ++-
.../src/test/scripts/neo4j-empty.properties | 33 +++
gremlin-test/features/map/AddVertex.feature | 16 +-
gremlin-test/features/map/Match.feature | 134 ++++++++++
gremlin-test/features/map/Order.feature | 173 +++++++++++++
gremlin-test/features/map/Properties.feature | 30 ++-
gremlin-test/features/map/Select.feature | 151 ++++++++++++
gremlin-test/features/map/Vertex.feature | 45 +++-
gremlin-test/features/sideEffect/Group.feature | 1 -
gremlin-test/features/sideEffect/Sack.feature | 24 +-
.../process/traversal/step/map/SelectTest.java | 245 ++++++++++++++++---
.../process/traversal/step/map/VertexTest.java | 27 +-
.../io/graphson/tinkerpop-sink-typed.json | 6 +-
.../io/graphson/tinkerpop-sink-v2d0-typed.json | 6 +-
.../io/graphson/tinkerpop-sink-v2d0.json | 6 +-
.../structure/io/graphson/tinkerpop-sink.json | 6 +-
.../structure/io/gryo/tinkerpop-sink.kryo | Bin 234 -> 240 bytes
.../gremlin/process/FeatureCoverageTest.java | 44 +---
tinkergraph-gremlin/pom.xml | 19 ++
.../tinkergraph/structure/TinkerFactory.java | 64 ++++-
.../tinkergraph/structure/grateful-dead.kryo | Bin 0 -> 332226 bytes
54 files changed, 1126 insertions(+), 346 deletions(-)
----------------------------------------------------------------------
[07/17] tinkerpop git commit: TINKERPOP-1968 Stop ignoring test that
passes for python GLV
Posted by sp...@apache.org.
TINKERPOP-1968 Stop ignoring test that passes for python GLV
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/225508f5
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/225508f5
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/225508f5
Branch: refs/heads/master
Commit: 225508f586755c3d24b3af880df71e55c120051e
Parents: fa631e9
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat May 19 07:57:07 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:18:09 2018 -0400
----------------------------------------------------------------------
gremlin-python/src/main/jython/radish/feature_steps.py | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/225508f5/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 80137b0..fab35fd 100644
--- a/gremlin-python/src/main/jython/radish/feature_steps.py
+++ b/gremlin-python/src/main/jython/radish/feature_steps.py
@@ -43,9 +43,7 @@ inV = __.inV
project = __.project
tail = __.tail
-ignores = [
- "g.V(v1Id).out().inject(v2).values(\"name\")", # bug in attachment won't connect v2
- ]
+ignores = []
@given("the {graph_name:w} graph")
[06/17] tinkerpop git commit: TINKERPOP-1968 Minor change to loading
Grateful from TinkerFactory
Posted by sp...@apache.org.
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/master
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
[08/17] tinkerpop git commit: TINKERPOP-1968 Have one method of
ignoring tests.
Posted by sp...@apache.org.
TINKERPOP-1968 Have one method of ignoring tests.
Tests that should be ignored are "unsupported" in the .feature files. The validator doesn't need a second level of filtering for that.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d7d46522
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d7d46522
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d7d46522
Branch: refs/heads/master
Commit: d7d4652240df0c8cc419fc90435f89285c01613e
Parents: 88f88d9
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon May 21 07:46:07 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:19:43 2018 -0400
----------------------------------------------------------------------
gremlin-test/features/map/AddVertex.feature | 16 ++++++++++++-
gremlin-test/features/map/Properties.feature | 16 ++++++++++++-
gremlin-test/features/sideEffect/Sack.feature | 24 +++++++++++++++++++-
.../gremlin/process/FeatureCoverageTest.java | 16 -------------
4 files changed, 53 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d7d46522/gremlin-test/features/map/AddVertex.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/AddVertex.feature b/gremlin-test/features/map/AddVertex.feature
index 996521b..c684b3b 100644
--- a/gremlin-test/features/map/AddVertex.feature
+++ b/gremlin-test/features/map/AddVertex.feature
@@ -334,4 +334,18 @@ Feature: Step - addV()
Then the result should be unordered
| result |
| marko |
- And the graph should return 2 for count of "g.V().has(\"name\",\"marko\")"
\ No newline at end of file
+ And the graph should return 2 for count of "g.V().has(\"name\",\"marko\")"
+
+ Scenario: g_V_addVXlabel_animal_age_0X
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ This API is deprecated - will not test.
+ """
+
+ Scenario: g_addVXlabel_person_name_stephenX
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ This API is deprecated - will not test.
+ """
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d7d46522/gremlin-test/features/map/Properties.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Properties.feature b/gremlin-test/features/map/Properties.feature
index 5e61615..52376ec 100644
--- a/gremlin-test/features/map/Properties.feature
+++ b/gremlin-test/features/map/Properties.feature
@@ -65,4 +65,18 @@ Feature: Step - properties()
| josh |
| d[32].i |
| peter |
- | d[35].i |
\ No newline at end of file
+ | d[35].i |
+
+ Scenario: g_V_hasXageX_properties_hasXid_nameIdX_value
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ GLV suite doesn't support property identifiers and related assertions
+ """
+
+ Scenario: g_V_hasXageX_properties_hasXid_nameIdAsStringX_value
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ GLV suite doesn't support property identifiers and related assertions
+ """
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d7d46522/gremlin-test/features/sideEffect/Sack.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/sideEffect/Sack.feature b/gremlin-test/features/sideEffect/Sack.feature
index 8d97c0c..aaf248d 100644
--- a/gremlin-test/features/sideEffect/Sack.feature
+++ b/gremlin-test/features/sideEffect/Sack.feature
@@ -108,4 +108,26 @@ Feature: Step - sack()
Then the result should be unordered
| result |
| d[1.0].m |
- | d[1.0].m |
\ No newline at end of file
+ | d[1.0].m |
+
+ Scenario: g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ GLV Suite does not support BigInteger assignments at this time.
+ """
+
+ Scenario: g_withSackXmap__map_cloneX_V_out_out_sackXmap_a_nameX_sack
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ This test is bound pretty tightly to the JVM in that it requires a UnaryOperator cast to get the right
+ withSack() method called. Not sure how that would work with a GLV.
+ """
+
+ Scenario: g_withSackX2X_V_sackXdivX_byXconstantX3_0XX_sack
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ Something strange happens with rounding that prevents GLVs from asserting this result properly.
+ """
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d7d46522/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
index 181cd17..503df77 100644
--- a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
+++ b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
@@ -53,7 +53,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.MaxTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.MeanTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.MinTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.PageRankTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.PathTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.ProjectTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesTest;
@@ -98,20 +97,6 @@ public class FeatureCoverageTest {
private static Pattern scenarioName = Pattern.compile("^\\s*Scenario:\\s*(.*)$");
- private static final List<String> testToIgnore = Arrays.asList(
- // deprecated tests
- "g_V_addVXlabel_animal_age_0X",
- "g_addVXlabel_person_name_stephenX",
- // GLV suite doesn't support property identifiers and related assertions
- "g_V_hasXageX_properties_hasXid_nameIdX_value",
- "g_V_hasXageX_properties_hasXid_nameIdAsStringX_value",
- // ugh - BigInteger?
- "g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack",
- // ugh - clone
- "g_withSackXmap__map_cloneX_V_out_out_sackXmap_a_nameX_sack",
- // wont round right or something
- "g_withSackX2X_V_sackXdivX_byXconstantX3_0XX_sack");
-
@Test
public void shouldImplementAllProcessTestsAsFeatures() throws Exception {
@@ -193,7 +178,6 @@ public class FeatureCoverageTest {
t.getSimpleName().replace("Test", "") + ".feature";
final Set<String> testMethods = Stream.of(t.getDeclaredMethods())
.filter(m -> m.isAnnotationPresent(Test.class))
- .filter(m -> !testToIgnore.contains(m.getName()))
.map(Method::getName).collect(Collectors.toSet());
final File featureFile = new File(featureFileName);
[12/17] tinkerpop git commit: TINKERPOP-1968 Removed embedded list
test from ignored validation
Posted by sp...@apache.org.
TINKERPOP-1968 Removed embedded list test from ignored validation
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/88f88d91
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/88f88d91
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/88f88d91
Branch: refs/heads/master
Commit: 88f88d9109a9056c2675a87e5ac9cbcbd30b479d
Parents: 35b1ff9
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon May 21 07:07:20 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:19:43 2018 -0400
----------------------------------------------------------------------
.../org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java | 2 --
1 file changed, 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/88f88d91/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
index ceef0d6..181cd17 100644
--- a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
+++ b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
@@ -105,8 +105,6 @@ public class FeatureCoverageTest {
// GLV suite doesn't support property identifiers and related assertions
"g_V_hasXageX_properties_hasXid_nameIdX_value",
"g_V_hasXageX_properties_hasXid_nameIdAsStringX_value",
- // assertion doesn't seem to want to work right for embedded lists
- "g_V_asXa_bX_out_asXcX_path_selectXkeysX",
// ugh - BigInteger?
"g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack",
// ugh - clone
[11/17] tinkerpop git commit: TINKERPOP-1968 Embedded list tests only
pass for js at this point
Posted by sp...@apache.org.
TINKERPOP-1968 Embedded list tests only pass for js at this point
Creating issues for .net and python.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/735f89b9
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/735f89b9
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/735f89b9
Branch: refs/heads/master
Commit: 735f89b970dd208ebb83d80a906b8d27aacba418
Parents: 225508f
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon May 21 06:57:36 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:19:43 2018 -0400
----------------------------------------------------------------------
.../Gherkin/GherkinTestRunner.cs | 3 ++-
.../Gherkin/IgnoreException.cs | 6 +++++-
.../src/main/jython/radish/feature_steps.py | 2 +-
gremlin-test/features/map/Select.feature | 18 +++++++++++++++++-
gremlin-test/features/sideEffect/Group.feature | 1 -
5 files changed, 25 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/735f89b9/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
index 3802da5..787cca9 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -41,7 +41,8 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
new Dictionary<string, IgnoreReason>()
{
{ "g_injectX1X_chooseXisX1X__constantX10Xfold__foldX", IgnoreReason.NoReason },
- { "g_injectX2X_chooseXisX1X__constantX10Xfold__foldX", IgnoreReason.NoReason }
+ { "g_injectX2X_chooseXisX1X__constantX10Xfold__foldX", IgnoreReason.NoReason },
+ { "g_V_asXa_bX_out_asXcX_path_selectXkeysX", IgnoreReason.EmbeddedListAssertion }
};
private static class Keywords
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/735f89b9/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
index 860c11d..368713d 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
@@ -40,6 +40,9 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
string reasonSuffix = null;
switch (reason)
{
+ case IgnoreReason.EmbeddedListAssertion:
+ reasonSuffix = "This test returns an embedded list in the result and the Gherkin processor does not parse that correctly";
+ break;
case IgnoreReason.NoReason:
reasonSuffix = "";
break;
@@ -50,6 +53,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
public enum IgnoreReason
{
- NoReason
+ NoReason,
+ EmbeddedListAssertion
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/735f89b9/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 fab35fd..5067d1b 100644
--- a/gremlin-python/src/main/jython/radish/feature_steps.py
+++ b/gremlin-python/src/main/jython/radish/feature_steps.py
@@ -43,7 +43,7 @@ inV = __.inV
project = __.project
tail = __.tail
-ignores = []
+ignores = ["g.V().as(\"a\", \"b\").out().as(\"c\").path().select(Column.keys)"]
@given("the {graph_name:w} graph")
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/735f89b9/gremlin-test/features/map/Select.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Select.feature b/gremlin-test/features/map/Select.feature
index db79c15..4765f59 100644
--- a/gremlin-test/features/map/Select.feature
+++ b/gremlin-test/features/map/Select.feature
@@ -669,4 +669,20 @@ Feature: Step - select()
g.V().valueMap().select(Pop.all, "a","b")
"""
When iterated to list
- Then the result should be empty
\ No newline at end of file
+ Then the result should be empty
+
+ Scenario: g_V_asXa_bX_out_asXcX_path_selectXkeysX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().as("a", "b").out().as("c").path().select(Column.keys)
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/735f89b9/gremlin-test/features/sideEffect/Group.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/sideEffect/Group.feature b/gremlin-test/features/sideEffect/Group.feature
index 94d2191..cd2a5ce 100644
--- a/gremlin-test/features/sideEffect/Group.feature
+++ b/gremlin-test/features/sideEffect/Group.feature
@@ -161,7 +161,6 @@ Feature: Step - group()
| ripple |
| lop |
- # TODO: can we change the traversal to allow for a better assertion
Scenario: g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX
Given the grateful graph
And the traversal of
[16/17] tinkerpop git commit: Merge branch 'tp32' into tp33
Posted by sp...@apache.org.
Merge branch 'tp32' into tp33
Conflicts:
data/tinkerpop-sink.json
gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyVertexTest.groovy
gremlin-python/src/main/jython/radish/feature_steps.py
gremlin-python/src/main/jython/tests/conftest.py
gremlin-python/src/main/jython/tests/driver/test_client.py
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/driver/remote/gremlin-server-integration.yaml
gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
gremlin-test/features/map/AddVertex.feature
gremlin-test/features/map/Properties.feature
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed.json
gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink.json
gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f2e74ffb
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f2e74ffb
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f2e74ffb
Branch: refs/heads/master
Commit: f2e74ffb7231cfbbb5e632b0b54b9bef7e90331a
Parents: ae8fee7 1a0947b
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Jun 1 07:43:09 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Jun 1 07:43:09 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 3 +
data/tinkerpop-sink.json | 6 +-
data/tinkerpop-sink.kryo | Bin 234 -> 240 bytes
.../the-gremlin-console/index.asciidoc | 5 +-
.../upgrade/release-3.2.x-incubating.asciidoc | 8 +
.../Gherkin/GherkinTestRunner.cs | 3 +-
.../Gherkin/IgnoreException.cs | 6 +-
.../ModernGraphTypeInformation.cs | 3 +-
gremlin-dotnet/test/pom.xml | 2 +-
gremlin-javascript/pom.xml | 2 +-
.../test/cucumber/feature-steps.js | 3 +-
.../test/integration/remote-connection-tests.js | 2 +-
.../test/integration/traversal-test.js | 2 +-
gremlin-python/pom.xml | 2 +-
.../src/main/jython/radish/feature_steps.py | 2 +-
.../src/main/jython/tests/conftest.py | 8 +-
.../src/main/jython/tests/driver/test_client.py | 18 +-
.../driver/test_driver_remote_connection.py | 4 +-
.../test_driver_remote_connection_threaded.py | 4 +-
gremlin-server/scripts/generate-all.groovy | 63 -----
gremlin-server/src/assembly/standalone.xml | 3 -
.../driver/remote/RemoteGraphProvider.java | 2 +-
.../server/GremlinResultSetIntegrateTest.java | 36 ++-
.../server/GremlinServerHttpIntegrateTest.java | 20 +-
.../gremlin/server/ServerTestHelper.java | 20 +-
.../server/util/DefaultGraphManagerTest.java | 32 ++-
.../remote/gremlin-server-integration.yaml | 56 -----
.../server/gremlin-server-integration.yaml | 11 +-
.../src/test/scripts/generate-all.groovy | 31 ++-
.../src/test/scripts/neo4j-empty.properties | 33 +++
gremlin-test/features/map/AddVertex.feature | 1 +
gremlin-test/features/map/Match.feature | 134 +++++++++++
gremlin-test/features/map/Order.feature | 13 +
gremlin-test/features/map/Properties.feature | 28 +++
gremlin-test/features/map/Select.feature | 151 ++++++++++++
gremlin-test/features/map/Vertex.feature | 45 +++-
gremlin-test/features/sideEffect/Group.feature | 1 -
gremlin-test/features/sideEffect/Sack.feature | 24 +-
.../process/traversal/step/map/SelectTest.java | 240 ++++++++++++++++---
.../process/traversal/step/map/VertexTest.java | 27 +--
.../io/graphson/tinkerpop-sink-typed-v1d0.json | 6 +-
.../io/graphson/tinkerpop-sink-typed-v2d0.json | 6 +-
.../io/graphson/tinkerpop-sink-v1d0.json | 6 +-
.../io/graphson/tinkerpop-sink-v2d0.json | 6 +-
.../io/graphson/tinkerpop-sink-v3d0.json | 6 +-
.../structure/io/gryo/tinkerpop-sink-v1d0.kryo | Bin 234 -> 240 bytes
.../structure/io/gryo/tinkerpop-sink-v3d0.kryo | Bin 234 -> 240 bytes
.../gremlin/process/FeatureCoverageTest.java | 44 +---
tinkergraph-gremlin/pom.xml | 19 ++
.../tinkergraph/structure/TinkerFactory.java | 64 ++++-
.../tinkergraph/structure/grateful-dead.kryo | Bin 0 -> 332226 bytes
51 files changed, 886 insertions(+), 325 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/CHANGELOG.asciidoc
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/data/tinkerpop-sink.json
----------------------------------------------------------------------
diff --cc data/tinkerpop-sink.json
index 7a27853,4d4811f..906d74a
--- a/data/tinkerpop-sink.json
+++ b/data/tinkerpop-sink.json
@@@ -1,3 -1,3 +1,3 @@@
- {"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
- {"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
- {"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
-{"id":2000,"label":"message","inE":{"link":[{"id":2003,"outV":2000}]},"outE":{"link":[{"id":2002,"inV":2001},{"id":2003,"inV":2000}]},"properties":{"name":[{"id":1,"value":"a"}]}}
-{"id":2001,"label":"message","inE":{"link":[{"id":2002,"outV":2000}]},"properties":{"name":[{"id":2,"value":"b"}]}}
-{"id":1000,"label":"loops","inE":{"self":[{"id":1001,"outV":1000}]},"outE":{"self":[{"id":1001,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
++{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2003},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":2003},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"a"}]}}
++{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"b"}]}}
++{"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/docs/src/upgrade/release-3.2.x-incubating.asciidoc
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
----------------------------------------------------------------------
diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
index d5d6dfd,368713d..0815171
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs
@@@ -50,11 -53,7 +53,12 @@@ namespace Gremlin.Net.IntegrationTest.G
public enum IgnoreReason
{
+ /// <summary>
+ /// Deserialization of g:T on GraphSON3 is not supported.
+ /// </summary>
+ TraversalTDeserializationNotSupported,
+ ReceivedDataDoesntMatchExpected,
- NoReason
+ NoReason,
+ EmbeddedListAssertion
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-dotnet/test/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-javascript/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-python/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-python/src/main/jython/tests/conftest.py
----------------------------------------------------------------------
diff --cc gremlin-python/src/main/jython/tests/conftest.py
index 9b12180,96ded16..13a9124
--- a/gremlin-python/src/main/jython/tests/conftest.py
+++ b/gremlin-python/src/main/jython/tests/conftest.py
@@@ -65,14 -62,10 +65,14 @@@ def client(request)
request.addfinalizer(fin)
return client
-@pytest.fixture
+@pytest.fixture(params=['v2', 'v3'])
def remote_connection(request):
try:
- remote_conn = DriverRemoteConnection('ws://localhost:45940/gremlin', 'gmodern')
+ if request.param == 'v2':
- remote_conn = DriverRemoteConnection('ws://localhost:45940/gremlin', 'g',
++ remote_conn = DriverRemoteConnection('ws://localhost:45940/gremlin', 'gmodern',
+ message_serializer=serializer.GraphSONSerializersV2d0())
+ else:
- remote_conn = DriverRemoteConnection('ws://localhost:45940/gremlin', 'g')
++ remote_conn = DriverRemoteConnection('ws://localhost:45940/gremlin', 'gmodern')
except OSError:
pytest.skip('Gremlin Server is not running')
else:
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-python/src/main/jython/tests/driver/test_client.py
----------------------------------------------------------------------
diff --cc gremlin-python/src/main/jython/tests/driver/test_client.py
index c804bd1,595aba0..145bf9c
--- a/gremlin-python/src/main/jython/tests/driver/test_client.py
+++ b/gremlin-python/src/main/jython/tests/driver/test_client.py
@@@ -79,13 -78,12 +79,13 @@@ def test_client_async(client)
def test_connection_share(client):
# Overwrite fixture with pool_size=1 client
- client = Client('ws://localhost:45940/gremlin', 'g', pool_size=1)
+ client = Client('ws://localhost:45940/gremlin', 'gmodern', pool_size=1)
g = Graph().traversal()
t = g.V()
- message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
- message2 = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
+ message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
++ message2 = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
future = client.submitAsync(message)
- future2 = client.submitAsync(message)
+ future2 = client.submitAsync(message2)
result_set2 = future2.result()
assert len(result_set2.all().result()) == 6
@@@ -99,11 -97,9 +99,11 @@@
def test_multi_conn_pool(client):
g = Graph().traversal()
t = g.V()
- message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
- message2 = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode})
+ message = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
++ message2 = RequestMessage('traversal', 'bytecode', {'gremlin': t.bytecode, 'aliases': {'g': 'gmodern'}})
+ client = Client('ws://localhost:45940/gremlin', 'g', pool_size=1)
future = client.submitAsync(message)
- future2 = client.submitAsync(message)
+ future2 = client.submitAsync(message2)
result_set2 = future2.result()
assert len(result_set2.all().result()) == 6
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-server/src/assembly/standalone.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
----------------------------------------------------------------------
diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
index 01c5ee3,81d51df..66e2c94
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
@@@ -70,19 -69,11 +70,11 @@@ public class GremlinResultSetIntegrateT
private Cluster cluster;
private Client client;
- @Override
- public Settings overrideSettings(final Settings settings) {
- final Map<String,Object> m = new HashMap<>();
- m.put("files", Collections.singletonList("scripts/generate-modern.groovy"));
- settings.scriptEngines.get("gremlin-groovy").plugins.put(ScriptFileGremlinPlugin.class.getName(), m);
- return settings;
- }
-
@Before
public void beforeTest() {
- final MessageSerializer serializer = new GryoMessageSerializerV1d0();
+ final MessageSerializer serializer = new GryoMessageSerializerV3d0();
final Map<String,Object> c = new HashMap<>();
- c.put("ioRegistries", Collections.singletonList(TinkerIoRegistry.class.getName()));
+ c.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
c.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
serializer.configure(c, null);
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java
----------------------------------------------------------------------
diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java
index e846673,41352a4..2879308
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java
@@@ -18,7 -18,7 +18,10 @@@
*/
package org.apache.tinkerpop.gremlin.server;
++import org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin;
++
import java.io.File;
++import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@@ -33,12 -33,13 +36,17 @@@ public class ServerTestHelper
*/
public static void rewritePathsInGremlinServerSettings(final Settings overridenSettings) {
final String buildDir = System.getProperty("build.dir");
- final String homeDir = buildDir.substring(0, buildDir.indexOf("gremlin-server") + "gremlin-server".length());
+ final String homeDir = buildDir.substring(0, buildDir.indexOf("gremlin-server") + "gremlin-server".length()) +
+ File.separator + "src" + File.separator + "test" + File.separator +"scripts";
-- overridenSettings.scriptEngines.get("gremlin-groovy").scripts = overridenSettings.scriptEngines
-- .get("gremlin-groovy").scripts.stream()
- .map(s -> new File(s).isAbsolute() ? s : homeDir + File.separator + s)
- .map(s -> new File(s).isAbsolute() ? s : homeDir + s.substring(s.lastIndexOf(File.separator)))
-- .collect(Collectors.toList());
++ if (overridenSettings.scriptEngines.get("gremlin-groovy").plugins.containsKey(ScriptFileGremlinPlugin.class.getName())) {
++ overridenSettings.scriptEngines.get("gremlin-groovy").
++ plugins.get(ScriptFileGremlinPlugin.class.getName()).
++ put("files", ((List<String>) overridenSettings.scriptEngines
++ .get("gremlin-groovy").plugins.get(ScriptFileGremlinPlugin.class.getName()).get("files")).stream()
++ .map(s -> new File(s).isAbsolute() ? s : homeDir + s.substring(s.lastIndexOf(File.separator)))
++ .collect(Collectors.toList()));
++ }
overridenSettings.graphs = overridenSettings.graphs.entrySet().stream()
.map(kv -> {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
----------------------------------------------------------------------
diff --cc gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
index 21e8e84,dcb5299..4e6cf9a
--- 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
@@@ -19,22 -19,26 +19,27 @@@ host: localhos
port: 45940
scriptEvaluationTimeout: 30000
graphs: {
- graph: conf/tinkergraph-empty.properties}
+ graph: conf/tinkergraph-empty.properties,
+ classic: conf/tinkergraph-empty.properties,
+ modern: conf/tinkergraph-empty.properties,
+ crew: conf/tinkergraph-empty.properties,
+ grateful: conf/tinkergraph-empty.properties,
+ sink: conf/tinkergraph-empty.properties}
-plugins:
- - tinkerpop.tinkergraph
scriptEngines: {
gremlin-groovy: {
- imports: [java.lang.Math],
- staticImports: [java.lang.Math.PI],
- scripts: [scripts/generate-all.groovy]}}
+ plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
+ org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
+ org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
- org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
++ org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/generate-all.groovy]}}}}
serializers:
- { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0], custom: [groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer]}}
+ - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0], custom: [groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer]}}
- { className: org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0], custom: [groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer]}}
- { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true}}
+ - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { serializeResultToString: true}}
- { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0] }}
- { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0] }}
- - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0] }}
+ - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}
processors:
- { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
metrics: {
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/features/map/AddVertex.feature
----------------------------------------------------------------------
diff --cc gremlin-test/features/map/AddVertex.feature
index 5d324f3,c684b3b..761916e
--- a/gremlin-test/features/map/AddVertex.feature
+++ b/gremlin-test/features/map/AddVertex.feature
@@@ -335,54 -335,17 +335,55 @@@ Feature: Step - addV(
| result |
| marko |
And the graph should return 2 for count of "g.V().has(\"name\",\"marko\")"
+
- Scenario: g_V_addVXlabel_animal_age_0X
- Given an unsupported test
- Then nothing should happen because
+ Scenario: g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMapXtrueX
+ Given the empty graph
+ And the graph initializer of
"""
- This API is deprecated - will not test.
+ g.addV("person").property(T.id, 1).property("name", "marko").property("age", 29).as("marko").
+ addV("person").property(T.id, 2).property("name", "vadas").property("age", 27).as("vadas").
+ addV("software").property(T.id, 3).property("name", "lop").property("lang", "java").as("lop").
+ addV("person").property(T.id, 4).property("name","josh").property("age", 32).as("josh").
+ addV("software").property(T.id, 5).property("name", "ripple").property("lang", "java").as("ripple").
+ addV("person").property(T.id, 6).property("name", "peter").property("age", 35).as('peter').
+ addE("knows").from("marko").to("vadas").property(T.id, 7).property("weight", 0.5).
+ addE("knows").from("marko").to("josh").property(T.id, 8).property("weight", 1.0).
+ addE("created").from("marko").to("lop").property(T.id, 9).property("weight", 0.4).
+ addE("created").from("josh").to("ripple").property(T.id, 10).property("weight", 1.0).
+ addE("created").from("josh").to("lop").property(T.id, 11).property("weight", 0.4).
+ addE("created").from("peter").to("lop").property(T.id, 12).property("weight", 0.2)
+ """
+ And the traversal of
"""
+ g.V().as("a").has("name", "marko").out("created").as("b").addV(__.select("a").label()).property("test", __.select("b").label()).valueMap(true)
+ """
+ When iterated to list
+ Then the result should have a count of 1
+ And the graph should return 1 for count of "g.V().has(\"person\",\"test\",\"software\")"
- Scenario: g_addVXlabel_person_name_stephenX
- Given an unsupported test
- Then nothing should happen because
+ Scenario: g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label
+ Given the empty graph
+ And the graph initializer of
"""
- This API is deprecated - will not test.
- """
+ g.addV("person").property(T.id, 1).property("name", "marko").property("age", 29).as("marko").
+ addV("person").property(T.id, 2).property("name", "vadas").property("age", 27).as("vadas").
+ addV("software").property(T.id, 3).property("name", "lop").property("lang", "java").as("lop").
+ addV("person").property(T.id, 4).property("name","josh").property("age", 32).as("josh").
+ addV("software").property(T.id, 5).property("name", "ripple").property("lang", "java").as("ripple").
+ addV("person").property(T.id, 6).property("name", "peter").property("age", 35).as('peter').
+ addE("knows").from("marko").to("vadas").property(T.id, 7).property("weight", 0.5).
+ addE("knows").from("marko").to("josh").property(T.id, 8).property("weight", 1.0).
+ addE("created").from("marko").to("lop").property(T.id, 9).property("weight", 0.4).
+ addE("created").from("josh").to("ripple").property(T.id, 10).property("weight", 1.0).
+ addE("created").from("josh").to("lop").property(T.id, 11).property("weight", 0.4).
+ addE("created").from("peter").to("lop").property(T.id, 12).property("weight", 0.2)
+ """
+ And the traversal of
+ """
+ g.addV(__.V().has("name", "marko").properties("name").key()).label()
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | name |
+
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/features/map/Match.feature
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/features/map/Order.feature
----------------------------------------------------------------------
diff --cc gremlin-test/features/map/Order.feature
index f361878,d800812..1d4331f
--- a/gremlin-test/features/map/Order.feature
+++ b/gremlin-test/features/map/Order.feature
@@@ -355,3 -323,176 +355,16 @@@ Feature: Step - order(
| result |
| m[{"3":"d[87].i","2":"d[58].i","1":"d[29].i","4":"d[29].i"}] |
- Scenario: g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_incrX
- Given the grateful graph
- And the traversal of
++ Scenario: g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_descX
++ Given an unsupported test
++ Then nothing should happen because
+ """
- g.V().has("song", "name", "OH BOY").out("followedBy").out("followedBy").order().by("performances").by("songType", Order.decr)
++ TODO
+ """
- When iterated to list
- Then the result should be ordered
- | result |
- | v[THE BOXER] |
- | v[BARBRY ALLEN] |
- | v[OLLIN ARRAGEED] |
- | v[GOOD TIME BLUES] |
- | v[TOM THUMB BLUES] |
- | v[GIMME SOME LOVIN] |
- | v[SATISFACTION] |
- | v[MAYBE YOU KNOW HOW I FEEL] |
- | v[SPACE] |
- | v[THIS COULD BE THE LAST TIME] |
- | v[CHANTING BY THE GYOTO MONKS] |
- | v[SILENT WAY JAM] |
- | v[STRONGER THAN DIRT] |
- | v[MOJO] |
- | v[FUNICULI FUNICULA] |
- | v[QUINN THE ESKIMO] |
- | v[LUCY IN THE SKY] |
- | v[LOVE THE ONE YOURE WITH] |
- | v[CHINESE BONES] |
- | v[OH BOY] |
- | v[BLACK QUEEN] |
- | v[BLUES FOR ALLAH] |
- | v[IF I HAD THE WORLD TO GIVE] |
- | v[HEY JUDE] |
- | v[WILLIE AND THE HAND JIVE] |
- | v[ITS ALL TOO MUCH] |
- | v[WHY DONT WE DO IT IN THE ROAD] |
- | v[UNBROKEN CHAIN] |
- | v[DONT NEED LOVE] |
- | v[NOBODYS FAULT BUT MINE] |
- | v[HEAVEN HELP THE FOOL] |
- | v[BLOW AWAY] |
- | v[JAM] |
- | v[SUNSHINE DAYDREAM] |
- | v[I WILL TAKE YOU HOME] |
- | v[SAMBA IN THE RAIN] |
- | v[ON THE ROAD AGAIN] |
- | v[SPANISH JAM] |
- | v[EASY TO LOVE YOU] |
- | v[DEATH DONT HAVE NO MERCY] |
- | v[SPOONFUL] |
- | v[CAUTION] |
- | v[THE RACE IS ON] |
- | v[SMOKESTACK LIGHTNING] |
- | v[COMES A TIME] |
- | v[STANDING ON THE MOON] |
- | v[KNOCKING ON HEAVENS DOOR] |
- | v[PICASSO MOON] |
- | v[FOOLISH HEART] |
- | v[WAY TO GO HOME] |
- | v[THE ELEVEN] |
- | v[VICTIM OR THE CRIME] |
- | v[PASSENGER] |
- | v[PASSENGER] |
- | v[MY BROTHER ESAU] |
- | v[HELP ON THE WAY] |
- | v[LAZY LIGHTNING] |
- | v[CHINA DOLL] |
- | v[ME AND BOBBY MCGEE] |
- | v[ALL ALONG THE WATCHTOWER] |
- | v[CRYPTICAL ENVELOPMENT] |
- | v[ALABAMA GETAWAY] |
- | v[CRAZY FINGERS] |
- | v[CRAZY FINGERS] |
- | v[WHEN I PAINT MY MASTERPIECE] |
- | v[LOST SAILOR] |
- | v[LOST SAILOR] |
- | v[BLACK THROATED WIND] |
- | v[IT MUST HAVE BEEN THE ROSES] |
- | v[IT MUST HAVE BEEN THE ROSES] |
- | v[BOX OF RAIN] |
- | v[SHAKEDOWN STREET] |
- | v[SHAKEDOWN STREET] |
- | v[IKO IKO] |
- | v[IKO IKO] |
- | v[FEEL LIKE A STRANGER] |
- | v[TOUCH OF GREY] |
- | v[TOUCH OF GREY] |
- | v[BROKEDOWN PALACE] |
- | v[HELL IN A BUCKET] |
- | v[DARK STAR] |
- | v[DARK STAR] |
- | v[FRANKLINS TOWER] |
- | v[SAINT OF CIRCUMSTANCE] |
- | v[SAINT OF CIRCUMSTANCE] |
- | v[THE MUSIC NEVER STOPPED] |
- | v[COLD RAIN AND SNOW] |
- | v[FIRE ON THE MOUNTAIN] |
- | v[MORNING DEW] |
- | v[THE WHEEL] |
- | v[THROWING STONES] |
- | v[I NEED A MIRACLE] |
- | v[I NEED A MIRACLE] |
- | v[ALTHEA] |
- | v[LITTLE RED ROOSTER] |
- | v[LET IT GROW] |
- | v[LET IT GROW] |
- | v[GOING DOWN THE ROAD FEELING BAD] |
- | v[BIRDSONG] |
- | v[TERRAPIN STATION] |
- | v[TERRAPIN STATION] |
- | v[MAMA TRIED] |
- | v[FRIEND OF THE DEVIL] |
- | v[FRIEND OF THE DEVIL] |
- | v[SCARLET BEGONIAS] |
- | v[SCARLET BEGONIAS] |
- | v[BEAT IT ON DOWN THE LINE] |
- | v[HES GONE] |
- | v[STELLA BLUE] |
- | v[UNCLE JOHNS BAND] |
- | v[UNCLE JOHNS BAND] |
- | v[CASSIDY] |
- | v[ONE MORE SATURDAY NIGHT] |
- | v[BLACK PETER] |
- | v[BROWN EYED WOMEN] |
- | v[SUGAREE] |
- | v[SAMSON AND DELILAH] |
- | v[SAMSON AND DELILAH] |
- | v[EYES OF THE WORLD] |
- | v[EYES OF THE WORLD] |
- | v[EL PASO] |
- | v[ESTIMATED PROPHET] |
- | v[WHARF RAT] |
- | v[BERTHA] |
- | v[BIG RIVER] |
- | v[LOOKS LIKE RAIN] |
- | v[AROUND AND AROUND] |
- | v[PROMISED LAND] |
- | v[GOOD LOVING] |
- | v[MEXICALI BLUES] |
- | v[NEW MINGLEWOOD BLUES] |
- | v[JACK STRAW] |
- | v[JACK STRAW] |
- | v[TRUCKING] |
- | v[TRUCKING] |
- | v[NOT FADE AWAY] |
- | v[CHINA CAT SUNFLOWER] |
- | v[CHINA CAT SUNFLOWER] |
- | v[PLAYING IN THE BAND] |
- | v[PLAYING IN THE BAND] |
- | v[THE OTHER ONE] |
- | v[SUGAR MAGNOLIA] |
- | v[SUGAR MAGNOLIA] |
- | v[ME AND MY UNCLE] |
+
- Scenario: g_V_hasLabelXsongX_order_byXperfomances_decrX_byXnameX_rangeX110_120X_name
- Given the grateful graph
- And the traversal of
++ Scenario: g_V_hasLabelXsongX_order_byXperformances_descX_byXnameX_rangeX110_120X_name
++ Given an unsupported test
++ Then nothing should happen because
+ """
- g.V().hasLabel("song").order().by("performances", Order.decr).by("name").range(110, 120).values("name")
- """
- When iterated to list
- Then the result should be ordered
- | result |
- | WANG DANG DOODLE |
- | THE ELEVEN |
- | WAY TO GO HOME |
- | FOOLISH HEART |
- | GIMME SOME LOVING |
- | DUPREES DIAMOND BLUES |
- | CORRINA |
- | PICASSO MOON |
- | KNOCKING ON HEAVENS DOOR |
- | MEMPHIS BLUES |
++ TODO
++ """
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/features/map/Properties.feature
----------------------------------------------------------------------
diff --cc gremlin-test/features/map/Properties.feature
index dafb13e,52376ec..58daa6a
--- a/gremlin-test/features/map/Properties.feature
+++ b/gremlin-test/features/map/Properties.feature
@@@ -53,9 -67,16 +67,23 @@@ Feature: Step - properties(
| peter |
| d[35].i |
+ Scenario: g_injectXg_VX1X_propertiesXnameX_nextX_value
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ The test suite doesn't do well with vertex property values.
++ """
++
+ Scenario: g_V_hasXageX_properties_hasXid_nameIdX_value
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ GLV suite doesn't support property identifiers and related assertions
+ """
+
+ Scenario: g_V_hasXageX_properties_hasXid_nameIdAsStringX_value
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ GLV suite doesn't support property identifiers and related assertions
"""
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/features/map/Select.feature
----------------------------------------------------------------------
diff --cc gremlin-test/features/map/Select.feature
index 788eda7,4765f59..945b1e4
--- a/gremlin-test/features/map/Select.feature
+++ b/gremlin-test/features/map/Select.feature
@@@ -579,3 -535,154 +579,154 @@@ Feature: Step - select(
Then the result should be unordered
| result |
| d[0].l |
+
+ Scenario: g_V_selectXa_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select("a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXaX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select("a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXa_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select("a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXfirst_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.first, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXfirst_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.first, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXfirst_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.first, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXfirst_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.first, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXlast_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.last, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXlast_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.last, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXlast_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.last, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXlast_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.last, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXall_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.all, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXall_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.all, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXall_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.all, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXall_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.all, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_asXa_bX_out_asXcX_path_selectXkeysX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().as("a", "b").out().as("c").path().select(Column.keys)
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
+ | l[l[a,b],l[c]] |
- | l[l[a,b],l[c]] |
++ | l[l[a,b],l[c]] |
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed-v1d0.json
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed-v1d0.json
index 2e83384,0000000..9f16788
mode 100644,000000..100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed-v1d0.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed-v1d0.json
@@@ -1,3 -1,0 +1,3 @@@
- {"@class":"java.util.HashMap","id":2000,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"inV":2001},{"@class":"java.util.HashMap","id":5,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"a"}]]}}
- {"@class":"java.util.HashMap","id":2001,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"b"}]]}}
- {"@class":"java.util.HashMap","id":1000,"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"outV":1000}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1,"inV":1000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"loop"}]]}}
++{"@class":"java.util.HashMap","id":2000,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2003,"outV":2000}]]},"outE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2002,"inV":2001},{"@class":"java.util.HashMap","id":2003,"inV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":"a"}]]}}
++{"@class":"java.util.HashMap","id":2001,"label":"message","inE":{"@class":"java.util.HashMap","link":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2002,"outV":2000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"b"}]]}}
++{"@class":"java.util.HashMap","id":1000,"label":"loops","inE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1001,"outV":1000}]]},"outE":{"@class":"java.util.HashMap","self":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":1001,"inV":1000}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"loop"}]]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed-v2d0.json
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed-v2d0.json
index 7a27853,0000000..906d74a
mode 100644,000000..100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed-v2d0.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-typed-v2d0.json
@@@ -1,3 -1,0 +1,3 @@@
- {"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
- {"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
- {"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
++{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2003},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":2003},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"a"}]}}
++{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"b"}]}}
++{"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v1d0.json
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v1d0.json
index 420e089,0000000..4d4811f
mode 100644,000000..100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v1d0.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v1d0.json
@@@ -1,3 -1,0 +1,3 @@@
- {"id":2000,"label":"message","inE":{"link":[{"id":5,"outV":2000}]},"outE":{"link":[{"id":4,"inV":2001},{"id":5,"inV":2000}]},"properties":{"name":[{"id":2,"value":"a"}]}}
- {"id":2001,"label":"message","inE":{"link":[{"id":4,"outV":2000}]},"properties":{"name":[{"id":3,"value":"b"}]}}
- {"id":1000,"label":"loops","inE":{"self":[{"id":1,"outV":1000}]},"outE":{"self":[{"id":1,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
++{"id":2000,"label":"message","inE":{"link":[{"id":2003,"outV":2000}]},"outE":{"link":[{"id":2002,"inV":2001},{"id":2003,"inV":2000}]},"properties":{"name":[{"id":1,"value":"a"}]}}
++{"id":2001,"label":"message","inE":{"link":[{"id":2002,"outV":2000}]},"properties":{"name":[{"id":2,"value":"b"}]}}
++{"id":1000,"label":"loops","inE":{"self":[{"id":1001,"outV":1000}]},"outE":{"self":[{"id":1001,"inV":1000}]},"properties":{"name":[{"id":0,"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v3d0.json
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v3d0.json
index 7a27853,0000000..906d74a
mode 100644,000000..100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v3d0.json
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinkerpop-sink-v3d0.json
@@@ -1,3 -1,0 +1,3 @@@
- {"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":5},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":4},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":5},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"a"}]}}
- {"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":4},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":3},"value":"b"}]}}
- {"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
++{"id":{"@type":"g:Int32","@value":2000},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2003},"outV":{"@type":"g:Int32","@value":2000}}]},"outE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"inV":{"@type":"g:Int32","@value":2001}},{"id":{"@type":"g:Int32","@value":2003},"inV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":1},"value":"a"}]}}
++{"id":{"@type":"g:Int32","@value":2001},"label":"message","inE":{"link":[{"id":{"@type":"g:Int32","@value":2002},"outV":{"@type":"g:Int32","@value":2000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":2},"value":"b"}]}}
++{"id":{"@type":"g:Int32","@value":1000},"label":"loops","inE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"outV":{"@type":"g:Int32","@value":1000}}]},"outE":{"self":[{"id":{"@type":"g:Int32","@value":1001},"inV":{"@type":"g:Int32","@value":1000}}]},"properties":{"name":[{"id":{"@type":"g:Int64","@value":0},"value":"loop"}]}}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink-v1d0.kryo
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink-v1d0.kryo
index ae68674,0000000..8db5f4f
mode 100644,000000..100644
Binary files differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink-v3d0.kryo
----------------------------------------------------------------------
diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/gryo/tinkerpop-sink-v3d0.kryo
index ae68674,0000000..8db5f4f
mode 100644,000000..100644
Binary files differ
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f2e74ffb/tinkergraph-gremlin/pom.xml
----------------------------------------------------------------------
[09/17] tinkerpop git commit: TINKERPOP-1968 Open up a formerly
ignored test
Posted by sp...@apache.org.
TINKERPOP-1968 Open up a formerly ignored test
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8ff76ac5
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8ff76ac5
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8ff76ac5
Branch: refs/heads/master
Commit: 8ff76ac5b62781982a40d42f12132adddeb16184
Parents: d7d4652
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon May 21 08:32:03 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:19:43 2018 -0400
----------------------------------------------------------------------
gremlin-test/features/map/Vertex.feature | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8ff76ac5/gremlin-test/features/map/Vertex.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Vertex.feature b/gremlin-test/features/map/Vertex.feature
index 8642693..3f2a63b 100644
--- a/gremlin-test/features/map/Vertex.feature
+++ b/gremlin-test/features/map/Vertex.feature
@@ -449,12 +449,25 @@ Feature: Step - V(), E(), out(), in(), both(), inE(), outE(), bothE()
| v[vadas] |
| v[josh] |
+ # this test deviates from the setup of the java test, but the intent is the same. the java test drops lop and then
+ # tries to query it as part of the group of ids. here, rather than drop, we simply use an id that doesn't exist
+ # which is simulated by an edge identifier.
Scenario: g_VX1_2_3_4X_name
- Given an unsupported test
- Then nothing should happen because
+ Given the modern graph
+ And using the parameter v1Id defined as "v[marko].id"
+ And using the parameter v2Id defined as "v[vadas].id"
+ And using the parameter v3Id defined as "e[marko-knows->josh].id"
+ And using the parameter v4Id defined as "v[josh].id"
+ And the traversal of
"""
- the test manipulates a static dataset which is not supported by the language of the feature files"
+ g.V(v1Id, v2Id, v3Id, v4Id).values("name")
"""
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | marko |
+ | vadas |
+ | josh |
Scenario: g_V_hasLabelXpersonX_V_hasLabelXsoftwareX_name
Given the modern graph
[10/17] tinkerpop git commit: TINKERPOP-1968 Javascript doesn't
handle embedded list assertions.
Posted by sp...@apache.org.
TINKERPOP-1968 Javascript doesn't handle embedded list assertions.
Had to ignore this test for now.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/68ea1009
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/68ea1009
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/68ea1009
Branch: refs/heads/master
Commit: 68ea10091e8f529502fe4b8ee821555914d4f38c
Parents: 8ff76ac
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon May 21 08:56:15 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:19:43 2018 -0400
----------------------------------------------------------------------
.../javascript/gremlin-javascript/test/cucumber/feature-steps.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/68ea1009/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 c4eaebc..53f457d 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
@@ -55,12 +55,13 @@ const parsers = [
const ignoreReason = {
lambdaNotSupported: 'Lambdas are not supported on gremlin-javascript',
+ embeddedListAssertion: '"This test returns an embedded list in the result and the Gherkin processor does not parse that correctly"',
needsFurtherInvestigation: '',
};
const ignoredScenarios = {
// An associative array containing the scenario name as key, for example:
- // 'g_V_branchXlabel_eq_person': new IgnoreError(ignoreReason.lambdaNotSupported),
+ 'g_V_asXa_bX_out_asXcX_path_selectXkeysX': new IgnoreError(ignoreReason.embeddedListAssertion),
};
defineSupportCode(function(methods) {
[03/17] tinkerpop git commit: TINKERPOP-1968 Make Pop tests more GLV
friendly
Posted by sp...@apache.org.
TINKERPOP-1968 Make Pop tests more GLV friendly
The java/groovy tests were nicer before, but they don't translate to GLV tests well. Had to change them to get them off the ignore list.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/fa631e98
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/fa631e98
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/fa631e98
Branch: refs/heads/master
Commit: fa631e98381f283ef8d684c0a458fae8afe3529c
Parents: f6d76f9
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat May 19 07:16:09 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:18:09 2018 -0400
----------------------------------------------------------------------
.../traversal/step/map/GroovySelectTest.groovy | 80 +++++-
gremlin-test/features/map/Select.feature | 135 ++++++++++
.../process/traversal/step/map/SelectTest.java | 245 ++++++++++++++++---
.../gremlin/process/FeatureCoverageTest.java | 5 -
4 files changed, 409 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fa631e98/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
index 104322d..6f5b73b 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
@@ -177,27 +177,83 @@ public abstract class GroovySelectTest {
// TINKERPOP-619: select should not throw
@Override
- public Traversal<Vertex, Object> get_g_V_selectXaX(final Pop pop) {
- final String root = "g.V."
- new ScriptTraversal<>(g, "gremlin-groovy", root + (null == pop ? "select('a')" : "select(${pop}, 'a')"))
+ public Traversal<Vertex, Object> get_g_V_selectXaX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.select('a')")
}
@Override
- public Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX(final Pop pop) {
- final String root = "g.V."
- new ScriptTraversal<>(g, "gremlin-groovy", root + (null == pop ? "select('a', 'b')" : "select(${pop}, 'a', 'b')"))
+ public Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.select('a', 'b')")
}
@Override
- public Traversal<Vertex, Object> get_g_V_valueMap_selectXpop_aX(final Pop pop) {
- final String root = "g.V.valueMap."
- new ScriptTraversal<>(g, "gremlin-groovy", root + (null == pop ? "select('a')" : "select(${pop}, 'a')"))
+ public Traversal<Vertex, Object> get_g_V_valueMap_selectXaX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.valueMap().select('a')")
}
@Override
- public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXpop_a_bX(final Pop pop) {
- final String root = "g.V.valueMap."
- new ScriptTraversal<>(g, "gremlin-groovy", root + (null == pop ? "select('a', 'b')" : "select(${pop}, 'a', 'b')"))
+ public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXa_bX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.valueMap().select('a', 'b')")
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_selectXfirst_aX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.select(Pop.first, 'a')")
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_selectXfirst_a_bX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.select(Pop.first, 'a', 'b')")
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_valueMap_selectXfirst_aX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.valueMap().select(Pop.first, 'a')")
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXfirst_a_bX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.valueMap().select(Pop.first, 'a', 'b')")
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_selectXlast_aX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.select(Pop.last, 'a')")
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_selectXlast_a_bX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.select(Pop.last, 'a', 'b')")
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_valueMap_selectXlast_aX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.valueMap().select(Pop.last, 'a')")
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXlast_a_bX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.valueMap().select(Pop.last, 'a', 'b')")
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_selectXall_aX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.select(Pop.all, 'a')")
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_selectXall_a_bX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.select(Pop.all, 'a', 'b')")
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_valueMap_selectXall_aX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.valueMap().select(Pop.all, 'a')")
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXall_a_bX() {
+ new ScriptTraversal<>(g, "gremlin-groovy", "g.V.valueMap().select(Pop.all, 'a', 'b')")
}
// when labels don't exist
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fa631e98/gremlin-test/features/map/Select.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Select.feature b/gremlin-test/features/map/Select.feature
index 1e45a0e..db79c15 100644
--- a/gremlin-test/features/map/Select.feature
+++ b/gremlin-test/features/map/Select.feature
@@ -535,3 +535,138 @@ Feature: Step - select()
Then the result should be unordered
| result |
| d[0].l |
+
+ Scenario: g_V_selectXa_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select("a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXaX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select("a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXa_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select("a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXfirst_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.first, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXfirst_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.first, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXfirst_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.first, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXfirst_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.first, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXlast_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.last, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXlast_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.last, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXlast_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.last, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXlast_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.last, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXall_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.all, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_selectXall_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().select(Pop.all, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXall_aX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.all, "a")
+ """
+ When iterated to list
+ Then the result should be empty
+
+ Scenario: g_V_valueMap_selectXall_a_bX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().valueMap().select(Pop.all, "a","b")
+ """
+ When iterated to list
+ Then the result should be empty
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fa631e98/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
index 3d778e4..73f8687 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
@@ -24,7 +24,6 @@ import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
import org.apache.tinkerpop.gremlin.process.traversal.Order;
import org.apache.tinkerpop.gremlin.process.traversal.Pop;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Vertex;
@@ -111,13 +110,37 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
// TINKERPOP-619: select should not throw
- public abstract Traversal<Vertex, Object> get_g_V_selectXaX(final Pop pop);
+ public abstract Traversal<Vertex, Object> get_g_V_selectXaX();
- public abstract Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX(final Pop pop);
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX();
- public abstract Traversal<Vertex, Object> get_g_V_valueMap_selectXpop_aX(final Pop pop);
+ public abstract Traversal<Vertex, Object> get_g_V_valueMap_selectXaX();
- public abstract Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXpop_a_bX(final Pop pop);
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXa_bX();
+
+ public abstract Traversal<Vertex, Object> get_g_V_selectXfirst_aX();
+
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_selectXfirst_a_bX();
+
+ public abstract Traversal<Vertex, Object> get_g_V_valueMap_selectXfirst_aX();
+
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXfirst_a_bX();
+
+ public abstract Traversal<Vertex, Object> get_g_V_selectXlast_aX();
+
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_selectXlast_a_bX();
+
+ public abstract Traversal<Vertex, Object> get_g_V_valueMap_selectXlast_aX();
+
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXlast_a_bX();
+
+ public abstract Traversal<Vertex, Object> get_g_V_selectXall_aX();
+
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_selectXall_a_bX();
+
+ public abstract Traversal<Vertex, Object> get_g_V_valueMap_selectXall_aX();
+
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXall_a_bX();
public abstract Traversal<Vertex, Vertex> get_g_VX1X_asXaX_repeatXout_asXaXX_timesX2X_selectXfirst_aX(final Object v1Id);
@@ -512,41 +535,129 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
public void g_V_selectXaX() {
- POPS.forEach(pop -> {
- final Traversal<Vertex, Object> traversal = get_g_V_selectXaX(pop);
- printTraversalForm(traversal);
- assertEquals(Collections.emptyList(), traversal.toList());
- });
+ final Traversal<Vertex, Object> traversal = get_g_V_selectXaX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
}
@Test
@LoadGraphWith(MODERN)
public void g_V_selectXa_bX() {
- POPS.forEach(pop -> {
- final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_selectXa_bX(pop);
- printTraversalForm(traversal);
- assertEquals(Collections.emptyList(), traversal.toList());
- });
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_selectXa_bX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_valueMap_selectXaX() {
+ final Traversal<Vertex, Object> traversal = get_g_V_valueMap_selectXaX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_valueMap_selectXa_bX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_valueMap_selectXa_bX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_selectXfirst_aX() {
+ final Traversal<Vertex, Object> traversal = get_g_V_selectXfirst_aX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_selectXfirst_a_bX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_selectXfirst_a_bX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_valueMap_selectXfirst_aX() {
+ final Traversal<Vertex, Object> traversal = get_g_V_valueMap_selectXfirst_aX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_valueMap_selectXfirst_a_bX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_valueMap_selectXfirst_a_bX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_selectXlast_aX() {
+ final Traversal<Vertex, Object> traversal = get_g_V_selectXlast_aX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_selectXlast_a_bX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_selectXlast_a_bX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_valueMap_selectXlast_aX() {
+ final Traversal<Vertex, Object> traversal = get_g_V_valueMap_selectXlast_aX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_valueMap_selectXlast_a_bX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_valueMap_selectXlast_a_bX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_selectXall_aX() {
+ final Traversal<Vertex, Object> traversal = get_g_V_selectXall_aX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_selectXall_a_bX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_selectXall_a_bX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
}
@Test
@LoadGraphWith(MODERN)
- public void g_V_valueMap_selectXpop_aX() {
- POPS.forEach(pop -> {
- final Traversal<Vertex, Object> traversal = get_g_V_valueMap_selectXpop_aX(pop);
- printTraversalForm(traversal);
- assertEquals(Collections.emptyList(), traversal.toList());
- });
+ public void g_V_valueMap_selectXall_aX() {
+ final Traversal<Vertex, Object> traversal = get_g_V_valueMap_selectXall_aX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
}
@Test
@LoadGraphWith(MODERN)
- public void g_V_valueMap_selectXpop_a_bX() {
- POPS.forEach(pop -> {
- final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_valueMap_selectXpop_a_bX(pop);
- printTraversalForm(traversal);
- assertEquals(Collections.emptyList(), traversal.toList());
- });
+ public void g_V_valueMap_selectXall_a_bX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_valueMap_selectXall_a_bX();
+ printTraversalForm(traversal);
+ assertEquals(Collections.emptyList(), traversal.toList());
}
// when labels don't exist
@@ -803,27 +914,83 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
// TINKERPOP-619: select should not throw
@Override
- public Traversal<Vertex, Object> get_g_V_selectXaX(final Pop pop) {
- final GraphTraversal<Vertex, Vertex> root = g.V();
- return null == pop ? root.select("a") : root.select(pop, "a");
+ public Traversal<Vertex, Object> get_g_V_selectXaX() {
+ return g.V().select("a");
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX() {
+ return g.V().select("a", "b");
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_valueMap_selectXaX() {
+ return g.V().valueMap().select("a");
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXa_bX() {
+ return g.V().valueMap().select("a", "b");
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_selectXfirst_aX() {
+ return g.V().select(Pop.first, "a");
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_selectXfirst_a_bX() {
+ return g.V().select(Pop.first, "a", "b");
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_valueMap_selectXfirst_aX() {
+ return g.V().valueMap().select(Pop.first, "a");
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXfirst_a_bX() {
+ return g.V().valueMap().select(Pop.first, "a", "b");
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_selectXlast_aX() {
+ return g.V().select(Pop.last, "a");
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_selectXlast_a_bX() {
+ return g.V().select(Pop.last, "a", "b");
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_valueMap_selectXlast_aX() {
+ return g.V().valueMap().select(Pop.last, "a");
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXlast_a_bX() {
+ return g.V().valueMap().select(Pop.last, "a", "b");
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_selectXall_aX() {
+ return g.V().select(Pop.all, "a");
}
@Override
- public Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX(final Pop pop) {
- final GraphTraversal<Vertex, Vertex> root = g.V();
- return null == pop ? root.select("a", "b") : root.select(pop, "a", "b");
+ public Traversal<Vertex, Map<String, Object>> get_g_V_selectXall_a_bX() {
+ return g.V().select(Pop.all, "a", "b");
}
@Override
- public Traversal<Vertex, Object> get_g_V_valueMap_selectXpop_aX(final Pop pop) {
- final GraphTraversal<Vertex, Map<String, Object>> root = g.V().valueMap();
- return null == pop ? root.select("a") : root.select(pop, "a");
+ public Traversal<Vertex, Object> get_g_V_valueMap_selectXall_aX() {
+ return g.V().valueMap().select(Pop.all, "a");
}
@Override
- public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXpop_a_bX(final Pop pop) {
- final GraphTraversal<Vertex, Map<String, Object>> root = g.V().valueMap();
- return null == pop ? root.select("a", "b") : root.select(pop, "a", "b");
+ public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXall_a_bX() {
+ return g.V().valueMap().select(Pop.all, "a", "b");
}
// when labels don't exist
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/fa631e98/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
index 670cae9..5c2d8ed 100644
--- a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
+++ b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
@@ -105,11 +105,6 @@ public class FeatureCoverageTest {
// GLV suite doesn't support property identifiers and related assertions
"g_V_hasXageX_properties_hasXid_nameIdX_value",
"g_V_hasXageX_properties_hasXid_nameIdAsStringX_value",
- // Pop tests not organized right for GLVs
- "g_V_valueMap_selectXpop_aX",
- "g_V_selectXa_bX",
- "g_V_valueMap_selectXpop_a_bX",
- "g_V_selectXaX",
// assertion doesn't seem to want to work right for embedded lists
"g_V_asXa_bX_out_asXcX_path_selectXkeysX",
// ugh - BigInteger?
[14/17] tinkerpop git commit: TINKERPOP-1968 PageRank tests aren't
currently part of the required tests
Posted by sp...@apache.org.
TINKERPOP-1968 PageRank tests aren't currently part of the required tests
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/35b1ff98
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/35b1ff98
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/35b1ff98
Branch: refs/heads/master
Commit: 35b1ff980579eabf9b6f4c2d7907ee92cfaf0b3c
Parents: 735f89b
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Mon May 21 07:06:35 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:19:43 2018 -0400
----------------------------------------------------------------------
.../org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/35b1ff98/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
index 5c2d8ed..ceef0d6 100644
--- a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
+++ b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
@@ -157,7 +157,7 @@ public class FeatureCoverageTest {
MeanTest.class,
MinTest.class,
OrderTest.class,
- PageRankTest.class,
+ //PageRankTest.class,
PathTest.class,
// PeerPressureTest.class,
// ProfileTest.class,
[04/17] tinkerpop git commit: TINKERPOP-1968 Configured all the
match() tests for GLV
Posted by sp...@apache.org.
TINKERPOP-1968 Configured all the match() tests for GLV
These were ignored because grateful dead wasn't an available graph, buuuuut it's been available for a while now so i'm not sure why those weren't setup.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/bd199349
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/bd199349
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/bd199349
Branch: refs/heads/master
Commit: bd1993494c870f0f33b7b4120e6b4e2b461c86f4
Parents: 5c50772
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri May 18 16:17:11 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 31 16:18:09 2018 -0400
----------------------------------------------------------------------
.../ModernGraphTypeInformation.cs | 3 +-
gremlin-test/features/map/Match.feature | 134 ++++++++++++++
gremlin-test/features/map/Order.feature | 173 +++++++++++++++++++
gremlin-test/features/map/Properties.feature | 14 ++
.../gremlin/process/FeatureCoverageTest.java | 16 --
5 files changed, 323 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd199349/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
index 327a50a..7489b44 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs
@@ -39,7 +39,8 @@ namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation
{"lang", typeof(string)},
{"weight", typeof(float)},
{"foo", typeof(object)}, // used when for invalid property key lookups
- {"friendWeight", typeof(float)} // used in an AddVertex.feature test
+ {"friendWeight", typeof(float)}, // used in an AddVertex.feature test
+ {"performances", typeof(int)} // grateful dead graph
};
/// <summary>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd199349/gremlin-test/features/map/Match.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Match.feature b/gremlin-test/features/map/Match.feature
index 55dffcf..73afd71 100644
--- a/gremlin-test/features/map/Match.feature
+++ b/gremlin-test/features/map/Match.feature
@@ -393,3 +393,137 @@ Feature: Step - match()
| d[0].l |
| d[0].l |
+ Scenario: g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_d__c_sungBy_d__d_hasXname_GarciaXX
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().match(__.as("a").in("sungBy").as("b"),
+ __.as("a").in("writtenBy").as("c"),
+ __.as("b").out("writtenBy").as("d"),
+ __.as("c").out("sungBy").as("d"),
+ __.as("d").has("name", "Garcia"))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"a":"v[Garcia]","b":"v[CREAM PUFF WAR]","c":"v[CREAM PUFF WAR]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CREAM PUFF WAR]","c":"v[CRYPTICAL ENVELOPMENT]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CRYPTICAL ENVELOPMENT]","c":"v[CREAM PUFF WAR]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CRYPTICAL ENVELOPMENT]","c":"v[CRYPTICAL ENVELOPMENT]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Grateful_Dead]","b":"v[CANT COME DOWN]","c":"v[DOWN SO LONG]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Grateful_Dead]","b":"v[THE ONLY TIME IS NOW]","c":"v[DOWN SO LONG]","d":"v[Garcia]"}] |
+
+ Scenario: g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().match(__.as("a").has("song", "name", "HERE COMES SUNSHINE"),
+ __.as("a").map(__.inE("followedBy").values("weight").mean()).as("b"),
+ __.as("a").inE("followedBy").as("c"),
+ __.as("c").filter(__.values("weight").where(P.gte("b"))).outV().as("d")).
+ select("d").by("name")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | THE MUSIC NEVER STOPPED |
+ | PROMISED LAND |
+ | PLAYING IN THE BAND |
+ | CASEY JONES |
+ | BIG RIVER |
+ | EL PASO |
+ | LIBERTY |
+ | LOOKS LIKE RAIN |
+
+ Scenario: g_V_matchXa_0sungBy_b__a_0sungBy_c__b_writtenBy_d__c_writtenBy_e__d_hasXname_George_HarisonX__e_hasXname_Bob_MarleyXX
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().match(__.as("a").in("sungBy").as("b"),
+ __.as("a").in("sungBy").as("c"),
+ __.as("b").out("writtenBy").as("d"),
+ __.as("c").out("writtenBy").as("e"),
+ __.as("d").has("name", "George_Harrison"),
+ __.as("e").has("name", "Bob_Marley"))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"a":"v[Garcia]","b":"v[I WANT TO TELL YOU]","c":"v[STIR IT UP]","d":"v[George_Harrison]","e":"v[Bob_Marley]"}] |
+
+ Scenario: g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__a_0sungBy_bX
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().match(__.as("a").has("name", "Garcia"),
+ __.as("a").in("writtenBy").as("b"),
+ __.as("a").in("sungBy").as("b"))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"a":"v[Garcia]","b":"v[CREAM PUFF WAR]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CRYPTICAL ENVELOPMENT]"}] |
+
+ Scenario: g_V_hasLabelXsongsX_matchXa_name_b__a_performances_cX_selectXb_cX_count
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().hasLabel("song").match(
+ __.as("a").values("name").as("b"),
+ __.as("a").values("performances").as("c")).select("b", "c").count()
+ """
+ When iterated to list
+ Then the result should be ordered
+ | result |
+ | d[584].l |
+
+ Scenario: g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().match(__.as("a").out("followedBy").count().is(P.gt(10)).as("b"),
+ __.as("a").in("followedBy").count().is(P.gt(10)).as("b")).count()
+ """
+ When iterated to list
+ Then the result should be ordered
+ | result |
+ | d[6].l |
+
+ Scenario: g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_dX_whereXc_sungBy_dX_whereXd_hasXname_GarciaXX
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().match(__.as("a").in("sungBy").as("b"),
+ __.as("a").in("writtenBy").as("c"),
+ __.as("b").out("writtenBy").as("d")).
+ where(__.as("c").out("sungBy").as("d")).
+ where(__.as("d").has("name", "Garcia"))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"a":"v[Garcia]","b":"v[CREAM PUFF WAR]","c":"v[CREAM PUFF WAR]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CREAM PUFF WAR]","c":"v[CRYPTICAL ENVELOPMENT]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CRYPTICAL ENVELOPMENT]","c":"v[CREAM PUFF WAR]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CRYPTICAL ENVELOPMENT]","c":"v[CRYPTICAL ENVELOPMENT]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Grateful_Dead]","b":"v[CANT COME DOWN]","c":"v[DOWN SO LONG]","d":"v[Garcia]"}] |
+ | m[{"a":"v[Grateful_Dead]","b":"v[THE ONLY TIME IS NOW]","c":"v[DOWN SO LONG]","d":"v[Garcia]"}] |
+
+ Scenario: g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__b_followedBy_c__c_writtenBy_d__whereXd_neqXaXXX
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().match(__.as("a").has("name", "Garcia"),
+ __.as("a").in("writtenBy").as("b"),
+ __.as("b").out("followedBy").as("c"),
+ __.as("c").out("writtenBy").as("d"),
+ __.where("d", P.neq("a")))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"a":"v[Garcia]","b":"v[CRYPTICAL ENVELOPMENT]","c":"v[DRUMS]","d":"v[Grateful_Dead]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CRYPTICAL ENVELOPMENT]","c":"v[THE OTHER ONE]","d":"v[Weir]"}] |
+ | m[{"a":"v[Garcia]","b":"v[CRYPTICAL ENVELOPMENT]","c":"v[WHARF RAT]","d":"v[Hunter]"}] |
+
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd199349/gremlin-test/features/map/Order.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Order.feature b/gremlin-test/features/map/Order.feature
index 6dd8ac4..d800812 100644
--- a/gremlin-test/features/map/Order.feature
+++ b/gremlin-test/features/map/Order.feature
@@ -323,3 +323,176 @@ Feature: Step - order()
| result |
| m[{"3":"d[87].i","2":"d[58].i","1":"d[29].i","4":"d[29].i"}] |
+ Scenario: g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_incrX
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().has("song", "name", "OH BOY").out("followedBy").out("followedBy").order().by("performances").by("songType", Order.decr)
+ """
+ When iterated to list
+ Then the result should be ordered
+ | result |
+ | v[THE BOXER] |
+ | v[BARBRY ALLEN] |
+ | v[OLLIN ARRAGEED] |
+ | v[GOOD TIME BLUES] |
+ | v[TOM THUMB BLUES] |
+ | v[GIMME SOME LOVIN] |
+ | v[SATISFACTION] |
+ | v[MAYBE YOU KNOW HOW I FEEL] |
+ | v[SPACE] |
+ | v[THIS COULD BE THE LAST TIME] |
+ | v[CHANTING BY THE GYOTO MONKS] |
+ | v[SILENT WAY JAM] |
+ | v[STRONGER THAN DIRT] |
+ | v[MOJO] |
+ | v[FUNICULI FUNICULA] |
+ | v[QUINN THE ESKIMO] |
+ | v[LUCY IN THE SKY] |
+ | v[LOVE THE ONE YOURE WITH] |
+ | v[CHINESE BONES] |
+ | v[OH BOY] |
+ | v[BLACK QUEEN] |
+ | v[BLUES FOR ALLAH] |
+ | v[IF I HAD THE WORLD TO GIVE] |
+ | v[HEY JUDE] |
+ | v[WILLIE AND THE HAND JIVE] |
+ | v[ITS ALL TOO MUCH] |
+ | v[WHY DONT WE DO IT IN THE ROAD] |
+ | v[UNBROKEN CHAIN] |
+ | v[DONT NEED LOVE] |
+ | v[NOBODYS FAULT BUT MINE] |
+ | v[HEAVEN HELP THE FOOL] |
+ | v[BLOW AWAY] |
+ | v[JAM] |
+ | v[SUNSHINE DAYDREAM] |
+ | v[I WILL TAKE YOU HOME] |
+ | v[SAMBA IN THE RAIN] |
+ | v[ON THE ROAD AGAIN] |
+ | v[SPANISH JAM] |
+ | v[EASY TO LOVE YOU] |
+ | v[DEATH DONT HAVE NO MERCY] |
+ | v[SPOONFUL] |
+ | v[CAUTION] |
+ | v[THE RACE IS ON] |
+ | v[SMOKESTACK LIGHTNING] |
+ | v[COMES A TIME] |
+ | v[STANDING ON THE MOON] |
+ | v[KNOCKING ON HEAVENS DOOR] |
+ | v[PICASSO MOON] |
+ | v[FOOLISH HEART] |
+ | v[WAY TO GO HOME] |
+ | v[THE ELEVEN] |
+ | v[VICTIM OR THE CRIME] |
+ | v[PASSENGER] |
+ | v[PASSENGER] |
+ | v[MY BROTHER ESAU] |
+ | v[HELP ON THE WAY] |
+ | v[LAZY LIGHTNING] |
+ | v[CHINA DOLL] |
+ | v[ME AND BOBBY MCGEE] |
+ | v[ALL ALONG THE WATCHTOWER] |
+ | v[CRYPTICAL ENVELOPMENT] |
+ | v[ALABAMA GETAWAY] |
+ | v[CRAZY FINGERS] |
+ | v[CRAZY FINGERS] |
+ | v[WHEN I PAINT MY MASTERPIECE] |
+ | v[LOST SAILOR] |
+ | v[LOST SAILOR] |
+ | v[BLACK THROATED WIND] |
+ | v[IT MUST HAVE BEEN THE ROSES] |
+ | v[IT MUST HAVE BEEN THE ROSES] |
+ | v[BOX OF RAIN] |
+ | v[SHAKEDOWN STREET] |
+ | v[SHAKEDOWN STREET] |
+ | v[IKO IKO] |
+ | v[IKO IKO] |
+ | v[FEEL LIKE A STRANGER] |
+ | v[TOUCH OF GREY] |
+ | v[TOUCH OF GREY] |
+ | v[BROKEDOWN PALACE] |
+ | v[HELL IN A BUCKET] |
+ | v[DARK STAR] |
+ | v[DARK STAR] |
+ | v[FRANKLINS TOWER] |
+ | v[SAINT OF CIRCUMSTANCE] |
+ | v[SAINT OF CIRCUMSTANCE] |
+ | v[THE MUSIC NEVER STOPPED] |
+ | v[COLD RAIN AND SNOW] |
+ | v[FIRE ON THE MOUNTAIN] |
+ | v[MORNING DEW] |
+ | v[THE WHEEL] |
+ | v[THROWING STONES] |
+ | v[I NEED A MIRACLE] |
+ | v[I NEED A MIRACLE] |
+ | v[ALTHEA] |
+ | v[LITTLE RED ROOSTER] |
+ | v[LET IT GROW] |
+ | v[LET IT GROW] |
+ | v[GOING DOWN THE ROAD FEELING BAD] |
+ | v[BIRDSONG] |
+ | v[TERRAPIN STATION] |
+ | v[TERRAPIN STATION] |
+ | v[MAMA TRIED] |
+ | v[FRIEND OF THE DEVIL] |
+ | v[FRIEND OF THE DEVIL] |
+ | v[SCARLET BEGONIAS] |
+ | v[SCARLET BEGONIAS] |
+ | v[BEAT IT ON DOWN THE LINE] |
+ | v[HES GONE] |
+ | v[STELLA BLUE] |
+ | v[UNCLE JOHNS BAND] |
+ | v[UNCLE JOHNS BAND] |
+ | v[CASSIDY] |
+ | v[ONE MORE SATURDAY NIGHT] |
+ | v[BLACK PETER] |
+ | v[BROWN EYED WOMEN] |
+ | v[SUGAREE] |
+ | v[SAMSON AND DELILAH] |
+ | v[SAMSON AND DELILAH] |
+ | v[EYES OF THE WORLD] |
+ | v[EYES OF THE WORLD] |
+ | v[EL PASO] |
+ | v[ESTIMATED PROPHET] |
+ | v[WHARF RAT] |
+ | v[BERTHA] |
+ | v[BIG RIVER] |
+ | v[LOOKS LIKE RAIN] |
+ | v[AROUND AND AROUND] |
+ | v[PROMISED LAND] |
+ | v[GOOD LOVING] |
+ | v[MEXICALI BLUES] |
+ | v[NEW MINGLEWOOD BLUES] |
+ | v[JACK STRAW] |
+ | v[JACK STRAW] |
+ | v[TRUCKING] |
+ | v[TRUCKING] |
+ | v[NOT FADE AWAY] |
+ | v[CHINA CAT SUNFLOWER] |
+ | v[CHINA CAT SUNFLOWER] |
+ | v[PLAYING IN THE BAND] |
+ | v[PLAYING IN THE BAND] |
+ | v[THE OTHER ONE] |
+ | v[SUGAR MAGNOLIA] |
+ | v[SUGAR MAGNOLIA] |
+ | v[ME AND MY UNCLE] |
+
+ Scenario: g_V_hasLabelXsongX_order_byXperfomances_decrX_byXnameX_rangeX110_120X_name
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().hasLabel("song").order().by("performances", Order.decr).by("name").range(110, 120).values("name")
+ """
+ When iterated to list
+ Then the result should be ordered
+ | result |
+ | WANG DANG DOODLE |
+ | THE ELEVEN |
+ | WAY TO GO HOME |
+ | FOOLISH HEART |
+ | GIMME SOME LOVING |
+ | DUPREES DIAMOND BLUES |
+ | CORRINA |
+ | PICASSO MOON |
+ | KNOCKING ON HEAVENS DOOR |
+ | MEMPHIS BLUES |
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd199349/gremlin-test/features/map/Properties.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Properties.feature b/gremlin-test/features/map/Properties.feature
index 3c926fa..5e61615 100644
--- a/gremlin-test/features/map/Properties.feature
+++ b/gremlin-test/features/map/Properties.feature
@@ -17,6 +17,20 @@
Feature: Step - properties()
+ Scenario: g_V_hasXageX_propertiesXnameX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().has("age").properties("name").value()
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | marko |
+ | vadas |
+ | josh |
+ | peter |
+
Scenario: g_V_hasXageX_propertiesXname_ageX_value
Given the modern graph
And the traversal of
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/bd199349/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
index 00391bf..670cae9 100644
--- a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
+++ b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java
@@ -68,9 +68,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SackTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectCapTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectTest;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.StoreTest;
-import org.junit.Ignore;
import org.junit.Test;
import java.io.BufferedReader;
@@ -107,19 +105,6 @@ public class FeatureCoverageTest {
// GLV suite doesn't support property identifiers and related assertions
"g_V_hasXageX_properties_hasXid_nameIdX_value",
"g_V_hasXageX_properties_hasXid_nameIdAsStringX_value",
- "g_V_hasXageX_propertiesXnameX",
- // grateful dead graph not supported in GLV suite
- "g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_d__c_sungBy_d__d_hasXname_GarciaXX",
- "g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX",
- "g_V_matchXa_0sungBy_b__a_0sungBy_c__b_writtenBy_d__c_writtenBy_e__d_hasXname_George_HarisonX__e_hasXname_Bob_MarleyXX",
- "g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__a_0sungBy_bX",
- "g_V_hasLabelXsongsX_matchXa_name_b__a_performances_cX_selectXb_cX_count",
- "g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__b_followedBy_c__c_writtenBy_d__whereXd_neqXaXXX",
- "g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_dX_whereXc_sungBy_dX_whereXd_hasXname_GarciaXX",
- "get_g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count",
- "g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count",
- "g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_incrX",
- "g_V_hasLabelXsongX_order_byXperfomances_decrX_byXnameX_rangeX110_120X_name",
// Pop tests not organized right for GLVs
"g_V_valueMap_selectXpop_aX",
"g_V_selectXa_bX",
@@ -135,7 +120,6 @@ public class FeatureCoverageTest {
"g_withSackX2X_V_sackXdivX_byXconstantX3_0XX_sack");
@Test
- // @Ignore("As it stands we won't have all of these tests migrated initially so there is no point to running this in full - it can be flipped on later")
public void shouldImplementAllProcessTestsAsFeatures() throws Exception {
// TEMPORARY while test framework is under development - all tests should ultimately be included
[17/17] tinkerpop git commit: Merge branch 'tp33'
Posted by sp...@apache.org.
Merge branch 'tp33'
Conflicts:
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/23b766ad
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/23b766ad
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/23b766ad
Branch: refs/heads/master
Commit: 23b766ad83f2877d6affee638d7718be6d85e00f
Parents: 5d6873e f2e74ff
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Jun 1 07:47:24 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Jun 1 07:47:24 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 3 +
data/tinkerpop-sink.json | 6 +-
data/tinkerpop-sink.kryo | Bin 234 -> 240 bytes
.../the-gremlin-console/index.asciidoc | 5 +-
.../upgrade/release-3.2.x-incubating.asciidoc | 8 +
.../Gherkin/GherkinTestRunner.cs | 3 +-
.../Gherkin/IgnoreException.cs | 6 +-
.../ModernGraphTypeInformation.cs | 3 +-
gremlin-dotnet/test/pom.xml | 2 +-
gremlin-javascript/pom.xml | 2 +-
.../test/cucumber/feature-steps.js | 3 +-
.../test/integration/remote-connection-tests.js | 2 +-
.../test/integration/traversal-test.js | 2 +-
gremlin-python/pom.xml | 2 +-
.../src/main/jython/radish/feature_steps.py | 2 +-
.../src/main/jython/tests/conftest.py | 8 +-
.../src/main/jython/tests/driver/test_client.py | 18 +-
.../driver/test_driver_remote_connection.py | 4 +-
.../test_driver_remote_connection_threaded.py | 4 +-
gremlin-server/scripts/generate-all.groovy | 63 -----
gremlin-server/src/assembly/standalone.xml | 3 -
.../driver/remote/RemoteGraphProvider.java | 2 +-
.../server/GremlinResultSetIntegrateTest.java | 36 ++-
.../server/GremlinServerHttpIntegrateTest.java | 14 +-
.../gremlin/server/ServerTestHelper.java | 20 +-
.../server/util/DefaultGraphManagerTest.java | 32 ++-
.../remote/gremlin-server-integration.yaml | 56 -----
.../server/gremlin-server-integration.yaml | 11 +-
.../src/test/scripts/generate-all.groovy | 31 ++-
.../src/test/scripts/neo4j-empty.properties | 33 +++
gremlin-test/features/map/AddVertex.feature | 1 +
gremlin-test/features/map/Match.feature | 134 +++++++++++
gremlin-test/features/map/Order.feature | 13 +
gremlin-test/features/map/Properties.feature | 28 +++
gremlin-test/features/map/Select.feature | 151 ++++++++++++
gremlin-test/features/map/Vertex.feature | 45 +++-
gremlin-test/features/sideEffect/Group.feature | 1 -
gremlin-test/features/sideEffect/Sack.feature | 24 +-
.../process/traversal/step/map/SelectTest.java | 240 ++++++++++++++++---
.../process/traversal/step/map/VertexTest.java | 27 +--
.../io/graphson/tinkerpop-sink-typed-v1d0.json | 6 +-
.../io/graphson/tinkerpop-sink-typed-v2d0.json | 6 +-
.../io/graphson/tinkerpop-sink-v1d0.json | 6 +-
.../io/graphson/tinkerpop-sink-v2d0.json | 6 +-
.../io/graphson/tinkerpop-sink-v3d0.json | 6 +-
.../structure/io/gryo/tinkerpop-sink-v1d0.kryo | Bin 234 -> 240 bytes
.../structure/io/gryo/tinkerpop-sink-v3d0.kryo | Bin 234 -> 240 bytes
.../gremlin/process/FeatureCoverageTest.java | 44 +---
tinkergraph-gremlin/pom.xml | 19 ++
.../tinkergraph/structure/TinkerFactory.java | 64 ++++-
.../tinkergraph/structure/grateful-dead.kryo | Bin 0 -> 332226 bytes
51 files changed, 883 insertions(+), 322 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/CHANGELOG.asciidoc
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/docs/src/tutorials/the-gremlin-console/index.asciidoc
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-dotnet/test/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-javascript/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-python/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-test/features/map/Order.feature
----------------------------------------------------------------------
diff --cc gremlin-test/features/map/Order.feature
index a13102f,1d4331f..207675a
--- a/gremlin-test/features/map/Order.feature
+++ b/gremlin-test/features/map/Order.feature
@@@ -354,3 -355,16 +354,16 @@@ Feature: Step - order(
| result |
| m[{"3":"d[87].i","2":"d[58].i","1":"d[29].i","4":"d[29].i"}] |
+ Scenario: g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_descX
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ TODO
+ """
+
+ Scenario: g_V_hasLabelXsongX_order_byXperformances_descX_byXnameX_rangeX110_120X_name
+ Given an unsupported test
+ Then nothing should happen because
+ """
+ TODO
- """
++ """
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-test/features/map/Select.feature
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-test/features/sideEffect/Group.feature
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/23b766ad/tinkergraph-gremlin/pom.xml
----------------------------------------------------------------------