You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ke...@apache.org on 2024/11/03 05:32:49 UTC
(tinkerpop) 40/48: Remove Traverser serializers for GraphSON/GraphBinary V4 (#2862)
This is an automated email from the ASF dual-hosted git repository.
kenhuuu pushed a commit to branch master-http-final
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 6de313320f6eb497b21d733edfc06e93881888a6
Author: kenhuuu <10...@users.noreply.github.com>
AuthorDate: Tue Oct 29 13:31:13 2024 -0700
Remove Traverser serializers for GraphSON/GraphBinary V4 (#2862)
---
.../io/binary/TypeSerializerRegistry.java | 2 -
.../io/binary/types/TraverserSerializer.java | 51 ----------
.../structure/io/graphson/GraphSONModule.java | 3 -
.../io/graphson/GraphSONTypeSerializerV4.java | 2 -
.../io/graphson/TraversalSerializersV4.java | 48 ---------
.../graphson/GraphSONMapperEmbeddedTypeTest.java | 9 --
.../GraphSONMapperPartialEmbeddedTypeTest.java | 7 --
.../server/handler/HttpGremlinEndpointHandler.java | 4 +-
.../gremlin/server/GremlinDriverIntegrateTest.java | 7 +-
.../io/graphbinary/bulked-traverser-v4.gbin | Bin 93 -> 0 bytes
.../io/graphbinary/empty-traverser-v4.gbin | Bin 12 -> 0 bytes
.../io/graphbinary/vertex-traverser-v4.gbin | Bin 451 -> 0 bytes
.../structure/io/graphson/bulked-traverser-v4.json | 32 ------
.../structure/io/graphson/empty-traverser-v4.json | 10 --
.../structure/io/graphson/vertex-traverser-v4.json | 109 ---------------------
.../ser/AbstractGraphSONMessageSerializerV4.java | 3 +
.../io/AbstractTypedCompatibilityTest.java | 48 ---------
17 files changed, 12 insertions(+), 323 deletions(-)
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
index 6ee2a5fc60..a5b9f79047 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
@@ -52,7 +52,6 @@ import org.apache.tinkerpop.gremlin.structure.io.binary.types.SingleTypeSerializ
import org.apache.tinkerpop.gremlin.structure.io.binary.types.StringSerializer;
import org.apache.tinkerpop.gremlin.structure.io.binary.types.TransformSerializer;
import org.apache.tinkerpop.gremlin.structure.io.binary.types.TraversalExplanationSerializer;
-import org.apache.tinkerpop.gremlin.structure.io.binary.types.TraverserSerializer;
import org.apache.tinkerpop.gremlin.structure.io.binary.types.TreeSerializer;
import org.apache.tinkerpop.gremlin.structure.io.binary.types.UUIDSerializer;
import org.apache.tinkerpop.gremlin.structure.io.binary.types.VertexPropertySerializer;
@@ -104,7 +103,6 @@ public class TypeSerializerRegistry {
new RegistryEntry<>(Vertex.class, new VertexSerializer()),
new RegistryEntry<>(Direction.class, EnumSerializer.DirectionSerializer),
new RegistryEntry<>(T.class, EnumSerializer.TSerializer),
- new RegistryEntry<>(Traverser.class, new TraverserSerializer()),
new RegistryEntry<>(BigDecimal.class, new BigDecimalSerializer()),
new RegistryEntry<>(BigInteger.class, new BigIntegerSerializer()),
new RegistryEntry<>(Byte.class, SingleTypeSerializer.ByteSerializer),
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraverserSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraverserSerializer.java
deleted file mode 100644
index 6361fb01e8..0000000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraverserSerializer.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.structure.io.binary.types;
-
-import org.apache.tinkerpop.gremlin.structure.io.binary.DataType;
-import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryReader;
-import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryWriter;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.structure.io.Buffer;
-
-import java.io.IOException;
-
-/**
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public class TraverserSerializer extends SimpleTypeSerializer<Traverser> {
-
- public TraverserSerializer() {
- super(DataType.TRAVERSER);
- }
-
- @Override
- protected Traverser readValue(final Buffer buffer, final GraphBinaryReader context) throws IOException {
- final long bulk = context.readValue(buffer, Long.class, false);
- final Object v = context.read(buffer);
- return new DefaultRemoteTraverser<>(v, bulk);
- }
-
- @Override
- protected void writeValue(final Traverser value, final Buffer buffer, final GraphBinaryWriter context) throws IOException {
- context.writeValue(value.bulk(), buffer, false);
- context.write(value.get(), buffer);
- }
-}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
index b19cbb4931..175114d149 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
@@ -167,7 +167,6 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
put(Metrics.class, "Metrics");
put(TraversalMetrics.class, "TraversalMetrics");
put(TraversalExplanation.class, "TraversalExplanation");
- put(Traverser.class, "Traverser");
put(Tree.class, "Tree");
put(AndP.class, "P");
put(OrP.class, "P");
@@ -274,7 +273,6 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
T.class).forEach(e -> addSerializer(e, new TraversalSerializersV4.EnumJacksonSerializer()));
addSerializer(P.class, new TraversalSerializersV4.PJacksonSerializer());
addSerializer(Lambda.class, new TraversalSerializersV4.LambdaJacksonSerializer());
- addSerializer(Traverser.class, new TraversalSerializersV4.TraverserJacksonSerializer());
addSerializer(TraversalStrategy.class, new TraversalSerializersV4.TraversalStrategyJacksonSerializer());
/////////////////////// DESERIALIZERS ////////////////////////////
@@ -317,7 +315,6 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
addDeserializer(P.class, new TraversalSerializersV4.PJacksonDeserializer());
addDeserializer(TextP.class, new TraversalSerializersV4.TextPJacksonDeserializer());
addDeserializer(Lambda.class, new TraversalSerializersV4.LambdaJacksonDeserializer());
- addDeserializer(Traverser.class, new TraversalSerializersV4.TraverserJacksonDeserializer());
Arrays.asList(
ConnectiveStrategy.class,
ElementIdStrategy.class,
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV4.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV4.java
index 17a406bb8d..a6ba23b576 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV4.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV4.java
@@ -147,8 +147,6 @@ public class GraphSONTypeSerializerV4 extends AbstractGraphSONTypeSerializer {
mapped = ByteBuffer.class;
else if (InetAddress.class.isAssignableFrom(c))
mapped = InetAddress.class;
- else if (Traverser.class.isAssignableFrom(c))
- mapped = Traverser.class;
else if (Lambda.class.isAssignableFrom(c))
mapped = Lambda.class;
else if (VertexProperty.Cardinality.class.isAssignableFrom(c))
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV4.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV4.java
index fec60d2aa8..77a905cc35 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV4.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV4.java
@@ -21,12 +21,10 @@ package org.apache.tinkerpop.gremlin.structure.io.graphson;
import org.apache.commons.configuration2.ConfigurationConverter;
import org.apache.commons.configuration2.MapConfiguration;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
import org.apache.tinkerpop.gremlin.process.traversal.P;
import org.apache.tinkerpop.gremlin.process.traversal.TextP;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy;
import org.apache.tinkerpop.gremlin.process.traversal.util.AndP;
@@ -159,22 +157,6 @@ final class TraversalSerializersV4 {
}
}
- final static class TraverserJacksonSerializer extends StdScalarSerializer<Traverser> {
-
- public TraverserJacksonSerializer() {
- super(Traverser.class);
- }
-
- @Override
- public void serialize(final Traverser traverserInstance, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
- throws IOException {
- jsonGenerator.writeStartObject();
- jsonGenerator.writeObjectField(GraphSONTokens.BULK, traverserInstance.bulk());
- jsonGenerator.writeObjectField(GraphSONTokens.VALUE, traverserInstance.get());
- jsonGenerator.writeEndObject();
- }
- }
-
final static class TraversalStrategyJacksonSerializer extends StdScalarSerializer<TraversalStrategy> {
public TraversalStrategyJacksonSerializer() {
@@ -400,36 +382,6 @@ final class TraversalSerializersV4 {
}
}
- static class TraverserJacksonDeserializer extends StdDeserializer<Traverser> {
-
- public TraverserJacksonDeserializer() {
- super(Traverser.class);
- }
-
- @Override
- public Traverser deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
- long bulk = 1;
- Object v = null;
-
- while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
- if (jsonParser.getCurrentName().equals(GraphSONTokens.BULK)) {
- jsonParser.nextToken();
- bulk = deserializationContext.readValue(jsonParser, Long.class);
- } else if (jsonParser.getCurrentName().equals(GraphSONTokens.VALUE)) {
- jsonParser.nextToken();
- v = deserializationContext.readValue(jsonParser, Object.class);
- }
- }
-
- return new DefaultRemoteTraverser<>(v, bulk);
- }
-
- @Override
- public boolean isCachable() {
- return true;
- }
- }
-
final static class TraversalStrategyProxyJacksonDeserializer<T extends TraversalStrategy> extends AbstractObjectDeserializer<TraversalStrategyProxy> {
private final Class<T> clazz;
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
index 94086371dc..872df275e2 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
@@ -18,7 +18,6 @@
*/
package org.apache.tinkerpop.gremlin.structure.io.graphson;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
import org.apache.tinkerpop.gremlin.process.traversal.Compare;
import org.apache.tinkerpop.gremlin.process.traversal.P;
import org.apache.tinkerpop.gremlin.process.traversal.PBiPredicate;
@@ -242,14 +241,6 @@ public class GraphSONMapperEmbeddedTypeTest extends AbstractGraphSONTest {
assertEquals(o, serializeDeserialize(mapper, o, Lambda.class));
}
- @Test
- public void shouldHandleTraverser() throws Exception {
- assumeThat(version, not(startsWith("v1")));
-
- final Traverser<String> o = new DefaultRemoteTraverser<>("test", 100);
- assertEquals(o, serializeDeserialize(mapper, o, Traverser.class));
- }
-
@Test
public void shouldHandleDuration() throws Exception {
final Duration o = Duration.ZERO;
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
index 75331741d2..5315c1a9ec 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
@@ -18,7 +18,6 @@
*/
package org.apache.tinkerpop.gremlin.structure.io.graphson;
-import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
import org.apache.tinkerpop.gremlin.process.traversal.P;
import org.apache.tinkerpop.gremlin.process.traversal.TextP;
import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
@@ -275,12 +274,6 @@ public class GraphSONMapperPartialEmbeddedTypeTest extends AbstractGraphSONTest
assertNotEquals(myList, read);
}
- @Test
- public void shouldHandleDefaultRemoteTraverser() throws Exception {
- final DefaultRemoteTraverser<String> o = new DefaultRemoteTraverser<>("test", 100);
- assertEquals(o, serializeDeserialize(mapper, o, Traverser.class));
- }
-
@Test
public void shouldHandleVariantsOfP() throws Exception {
final List<P> variantsOfP = Arrays.asList(
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
index 040b1e9edf..9aa0fa4f87 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
@@ -61,6 +61,7 @@ import org.apache.tinkerpop.gremlin.util.Tokens;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.apache.tinkerpop.gremlin.util.message.RequestMessage;
import org.apache.tinkerpop.gremlin.util.message.ResponseMessage;
+import org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV4;
import org.codehaus.groovy.control.MultipleCompilationErrorsException;
import org.javatuples.Pair;
import org.slf4j.Logger;
@@ -315,7 +316,8 @@ public class HttpGremlinEndpointHandler extends SimpleChannelInboundHandler<Requ
final String bulkingSetting = context.getChannelHandlerContext().channel().attr(StateKey.REQUEST_HEADERS).get().get(Tokens.BULKED);
// bulking only applies if it's gremlin-lang, and per request token setting takes precedence over header setting.
- final boolean bulking = Objects.equals(language, "gremlin-lang") ?
+ // The serializer check is temporarily needed because GraphSON hasn't been removed yet and doesn't support bulking.
+ final boolean bulking = language.equals("gremlin-lang") && serializer instanceof GraphBinaryMessageSerializerV4 ?
(args.containsKey(Tokens.BULKED) ?
Objects.equals(args.get(Tokens.BULKED), "true") :
Objects.equals(bulkingSetting, "true")) :
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
index 6dc11483f1..19d56491af 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
@@ -217,7 +217,12 @@ public class GremlinDriverIntegrateTest extends AbstractGremlinServerIntegration
try {
final Client client = cluster.connect();
- assertEquals(2, client.submit("g.inject(2)").all().get().get(0).getInt());
+ final RequestOptions ro = RequestOptions.build()
+ .addG("gmodern")
+ .language("gremlin-lang")
+ .withBulkedResult(true)
+ .create();
+ assertEquals(6, client.submit("g.V()", ro).all().get().size());
} finally {
cluster.close();
}
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/bulked-traverser-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/bulked-traverser-v4.gbin
deleted file mode 100644
index 8878bbec8e..0000000000
Binary files a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/bulked-traverser-v4.gbin and /dev/null differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/empty-traverser-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/empty-traverser-v4.gbin
deleted file mode 100644
index c5f3d9af99..0000000000
Binary files a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/empty-traverser-v4.gbin and /dev/null differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/vertex-traverser-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/vertex-traverser-v4.gbin
deleted file mode 100644
index 46e02df795..0000000000
Binary files a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/vertex-traverser-v4.gbin and /dev/null differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/bulked-traverser-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/bulked-traverser-v4.json
deleted file mode 100644
index c954e4e9af..0000000000
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/bulked-traverser-v4.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "@type" : "g:Traverser",
- "@value" : {
- "bulk" : {
- "@type" : "g:Int64",
- "@value" : 7
- },
- "value" : {
- "@type" : "g:Vertex",
- "@value" : {
- "id" : {
- "@type" : "g:Int32",
- "@value" : 11
- },
- "label" : [ "software" ],
- "properties" : {
- "name" : [ {
- "@type" : "g:VertexProperty",
- "@value" : {
- "id" : {
- "@type" : "g:Int64",
- "@value" : 5
- },
- "value" : "tinkergraph",
- "label" : [ "name" ]
- }
- } ]
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/empty-traverser-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/empty-traverser-v4.json
deleted file mode 100644
index 08298d82f3..0000000000
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/empty-traverser-v4.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "@type" : "g:Traverser",
- "@value" : {
- "bulk" : {
- "@type" : "g:Int64",
- "@value" : 0
- },
- "value" : null
- }
-}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/vertex-traverser-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/vertex-traverser-v4.json
deleted file mode 100644
index 91dcb6d8ea..0000000000
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/vertex-traverser-v4.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "@type" : "g:Traverser",
- "@value" : {
- "bulk" : {
- "@type" : "g:Int64",
- "@value" : 1
- },
- "value" : {
- "@type" : "g:Vertex",
- "@value" : {
- "id" : {
- "@type" : "g:Int32",
- "@value" : 1
- },
- "label" : [ "person" ],
- "properties" : {
- "name" : [ {
- "@type" : "g:VertexProperty",
- "@value" : {
- "id" : {
- "@type" : "g:Int64",
- "@value" : 0
- },
- "value" : "marko",
- "label" : [ "name" ]
- }
- } ],
- "location" : [ {
- "@type" : "g:VertexProperty",
- "@value" : {
- "id" : {
- "@type" : "g:Int64",
- "@value" : 6
- },
- "value" : "san diego",
- "label" : [ "location" ],
- "properties" : {
- "startTime" : {
- "@type" : "g:Int32",
- "@value" : 1997
- },
- "endTime" : {
- "@type" : "g:Int32",
- "@value" : 2001
- }
- }
- }
- }, {
- "@type" : "g:VertexProperty",
- "@value" : {
- "id" : {
- "@type" : "g:Int64",
- "@value" : 7
- },
- "value" : "santa cruz",
- "label" : [ "location" ],
- "properties" : {
- "startTime" : {
- "@type" : "g:Int32",
- "@value" : 2001
- },
- "endTime" : {
- "@type" : "g:Int32",
- "@value" : 2004
- }
- }
- }
- }, {
- "@type" : "g:VertexProperty",
- "@value" : {
- "id" : {
- "@type" : "g:Int64",
- "@value" : 8
- },
- "value" : "brussels",
- "label" : [ "location" ],
- "properties" : {
- "startTime" : {
- "@type" : "g:Int32",
- "@value" : 2004
- },
- "endTime" : {
- "@type" : "g:Int32",
- "@value" : 2005
- }
- }
- }
- }, {
- "@type" : "g:VertexProperty",
- "@value" : {
- "id" : {
- "@type" : "g:Int64",
- "@value" : 9
- },
- "value" : "santa fe",
- "label" : [ "location" ],
- "properties" : {
- "startTime" : {
- "@type" : "g:Int32",
- "@value" : 2005
- }
- }
- }
- } ]
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java
index 48b0b28bd2..5bca08ebcf 100644
--- a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java
+++ b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java
@@ -335,6 +335,9 @@ public abstract class AbstractGraphSONMessageSerializerV4 extends AbstractMessag
if (data.containsKey(Tokens.ARGS_BATCH_SIZE)) {
builder.addChunkSize((int) data.get(Tokens.ARGS_BATCH_SIZE));
}
+ if (data.containsKey(Tokens.BULKED)) {
+ builder.addBulkedResult(Boolean.parseBoolean(data.get(Tokens.BULKED).toString()));
+ }
return builder.create();
}
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
index bd8dee9cb4..5aff82e004 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
@@ -708,54 +708,6 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
IoTest.assertCrewGraph(recycled, false);
}
- @Test
- public void shouldReadWriteVertexTraverser() throws Exception {
- final String resourceName = "vertex-traverser";
-
- final Traverser resource = findModelEntryObject(resourceName);
- final Traverser fromStatic = read(readFromResource(resourceName), Traverser.class);
- final Traverser recycled = read(write(fromStatic, Traverser.class, resourceName), Traverser.class);
- assertNotSame(fromStatic, recycled);
- assertEquals(resource.bulk(), recycled.bulk());
- assertEquals(resource.bulk(), fromStatic.bulk());
- assertEquals(resource.get(), recycled.get());
- assertEquals(resource.get(), fromStatic.get());
- assertVertex((Vertex) resource.get(), (Vertex) recycled.get());
- assertVertex((Vertex) resource.get(), (Vertex) fromStatic.get());
- }
-
- @Test
- public void shouldReadWriteBulkedTraverser() throws Exception {
- final String resourceName = "bulked-traverser";
-
- final Traverser resource = findModelEntryObject(resourceName);
- final Traverser fromStatic = read(readFromResource(resourceName), Traverser.class);
- final Traverser recycled = read(write(fromStatic, Traverser.class, resourceName), Traverser.class);
- assertNotSame(fromStatic, recycled);
- assertEquals(resource.bulk(), recycled.bulk());
- assertEquals(resource.bulk(), fromStatic.bulk());
- assertEquals(resource.get(), recycled.get());
- assertEquals(resource.get(), fromStatic.get());
- assertVertex((Vertex) resource.get(), (Vertex) recycled.get());
- assertVertex((Vertex) resource.get(), (Vertex) fromStatic.get());
- }
-
- @Test
- public void shouldReadWriteEmptyTraverser() throws Exception {
- final String resourceName = "empty-traverser";
-
- final Traverser resource = findModelEntryObject(resourceName);
- final Traverser fromStatic = read(readFromResource(resourceName), Traverser.class);
- final Traverser recycled = read(write(fromStatic, Traverser.class, resourceName), Traverser.class);
- assertNotSame(fromStatic, recycled);
- assertEquals(resource.bulk(), recycled.bulk());
- assertEquals(resource.bulk(), fromStatic.bulk());
- assertEquals(resource.get(), recycled.get());
- assertEquals(resource.get(), fromStatic.get());
- assertEquals(recycled.bulk(), fromStatic.bulk());
- assertEquals(recycled.get(), fromStatic.get());
- }
-
@Test
public void shouldReadWriteUUID() throws Exception {
final String resourceName = "specified-uuid";