You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/06/01 11:45:01 UTC

[16/16] 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/tp33
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
----------------------------------------------------------------------