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 <[email protected]> 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";
