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/TINKERPOP-1967 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 ----------------------------------------------------------------------