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 14:21:20 UTC
[23/25] tinkerpop git commit: Merge branch 'tp32' into tp33
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-1975
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
----------------------------------------------------------------------