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 2021/04/02 12:31:44 UTC
[tinkerpop] branch master updated: Changed getMapper() to an
MessageSerializer level method CTR
This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/master by this push:
new 3ba462f Changed getMapper() to an MessageSerializer level method CTR
3ba462f is described below
commit 3ba462fca9a1fc43c559d1b328225bde649b6f96
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Fri Apr 2 08:31:01 2021 -0400
Changed getMapper() to an MessageSerializer level method CTR
---
CHANGELOG.asciidoc | 1 +
.../structure/io/binary/GraphBinaryMapper.java | 41 ++++++++++++++++++++++
.../apache/tinkerpop/gremlin/driver/Cluster.java | 8 ++---
.../gremlin/driver/MessageSerializer.java | 7 +++-
.../apache/tinkerpop/gremlin/driver/Settings.java | 4 +--
.../handler/WebSocketGremlinRequestEncoder.java | 6 ++--
.../handler/WebSocketGremlinResponseDecoder.java | 6 ++--
.../ser/AbstractGraphSONMessageSerializerV1d0.java | 3 +-
.../ser/AbstractGraphSONMessageSerializerV2d0.java | 3 +-
.../ser/AbstractGryoMessageSerializerV1d0.java | 7 +++-
.../ser/AbstractGryoMessageSerializerV3d0.java | 7 +++-
.../driver/ser/AbstractMessageSerializer.java | 2 +-
.../driver/ser/GraphBinaryMessageSerializerV1.java | 10 +++++-
.../driver/ser/GraphSONMessageSerializerV1d0.java | 3 +-
.../driver/ser/GraphSONMessageSerializerV2d0.java | 3 +-
.../driver/ser/GraphSONMessageSerializerV3d0.java | 3 +-
.../gremlin/driver/ser/MessageTextSerializer.java | 2 +-
.../tinkerpop/gremlin/driver/ser/Serializers.java | 2 +-
.../gremlin/driver/simple/WebSocketClient.java | 3 +-
.../GraphSONMessageSerializerGremlinV1d0Test.java | 3 +-
.../GraphSONMessageSerializerGremlinV2d0Test.java | 3 +-
.../ser/GraphSONMessageSerializerV2d0Test.java | 2 +-
.../ser/GraphSONMessageSerializerV3d0Test.java | 5 +--
.../ser/GryoLiteMessageSerializerV1d0Test.java | 3 +-
.../driver/ser/GryoMessageSerializerV1d0Test.java | 30 ++++++++--------
.../gremlin/server/AbstractChannelizer.java | 6 ++--
.../handler/GremlinResponseFrameEncoder.java | 6 ++--
.../server/handler/HttpGremlinEndpointHandler.java | 10 +++---
.../gremlin/server/handler/ServerSerializers.java | 6 ++--
.../tinkerpop/gremlin/server/handler/StateKey.java | 2 +-
.../handler/WsGremlinBinaryRequestDecoder.java | 8 ++---
.../handler/WsGremlinCloseRequestDecoder.java | 8 ++---
.../handler/WsGremlinTextRequestDecoder.java | 8 ++---
.../gremlin/server/op/AbstractOpProcessor.java | 6 ++--
.../server/op/traversal/TraversalOpProcessor.java | 2 +-
.../server/GremlinResultSetIntegrateTest.java | 12 ++++---
.../server/GremlinServerAuthKrb5IntegrateTest.java | 2 +-
37 files changed, 161 insertions(+), 82 deletions(-)
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index be5f38b..65f438a 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -72,6 +72,7 @@ This release also includes changes from <<release-3-4-3, 3.4.3>>.
* Bumped to Spark 3.0.0.
* Bumped to Jackson 2.11.x.
* Supported build for Java 11.
+* Added `MessageSerializer.getMapper()` to return the underlying object that handles serialization for a particular implementation.
* Added a parameterized `TypeTranslator` for use with `GroovyTranslator` that should produce more cache hits.
* Added support for `TextP` in Neo4j using its string search functions.
* Added a kerberos KDC to the docker container for testing GLV's.
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/GraphBinaryMapper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/GraphBinaryMapper.java
new file mode 100644
index 0000000..049a90d
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/GraphBinaryMapper.java
@@ -0,0 +1,41 @@
+/*
+ * 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;
+
+/**
+ * Holds a {@link GraphBinaryReader} and {@link GraphBinaryWriter} which together allow mapping in and out of the
+ * GraphBinary format.
+ */
+public final class GraphBinaryMapper {
+ private final GraphBinaryWriter writer;
+ private final GraphBinaryReader reader;
+
+ public GraphBinaryMapper(final GraphBinaryWriter writer, final GraphBinaryReader reader) {
+ this.writer = writer;
+ this.reader = reader;
+ }
+
+ public GraphBinaryWriter getWriter() {
+ return writer;
+ }
+
+ public GraphBinaryReader getReader() {
+ return reader;
+ }
+}
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java
index b6fbca7..1aca514 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java
@@ -465,7 +465,7 @@ public final class Cluster {
return manager.factory;
}
- MessageSerializer getSerializer() {
+ MessageSerializer<?> getSerializer() {
return manager.serializer;
}
@@ -558,7 +558,7 @@ public final class Cluster {
private List<InetAddress> addresses = new ArrayList<>();
private int port = 8182;
private String path = "/gremlin";
- private MessageSerializer serializer = null;
+ private MessageSerializer<?> serializer = null;
private int nioPoolSize = Runtime.getRuntime().availableProcessors();
private int workerPoolSize = Runtime.getRuntime().availableProcessors() * 2;
private int minConnectionPoolSize = ConnectionPool.MIN_POOL_SIZE;
@@ -645,7 +645,7 @@ public final class Cluster {
/**
* Sets the {@link MessageSerializer} to use.
*/
- public Builder serializer(final MessageSerializer serializer) {
+ public Builder serializer(final MessageSerializer<?> serializer) {
this.serializer = serializer;
return this;
}
@@ -1012,7 +1012,7 @@ public final class Cluster {
private boolean initialized;
private final List<InetSocketAddress> contactPoints;
private final Factory factory;
- private final MessageSerializer serializer;
+ private final MessageSerializer<?> serializer;
private final Settings.ConnectionPoolSettings connectionPoolSettings;
private final LoadBalancingStrategy loadBalancingStrategy;
private final AuthProperties authProps;
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/MessageSerializer.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/MessageSerializer.java
index af39cd4..8b21ec4 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/MessageSerializer.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/MessageSerializer.java
@@ -42,11 +42,16 @@ import java.util.ServiceLoader;
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public interface MessageSerializer {
+public interface MessageSerializer<M> {
static final Logger logger = LoggerFactory.getLogger(MessageSerializer.class);
/**
+ * Gets the "mapper" that performs the underlying serialization work.
+ */
+ M getMapper();
+
+ /**
* Serialize a {@link ResponseMessage} to a Netty {@code ByteBuf}.
*
* @param responseMessage The response message to serialize to bytes.
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java
index cd277b7..0e8ae0f 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Settings.java
@@ -419,9 +419,9 @@ final class Settings {
*/
public Map<String, Object> config = null;
- public MessageSerializer create() throws Exception {
+ public MessageSerializer<?> create() throws Exception {
final Class<?> clazz = Class.forName(className);
- final MessageSerializer serializer = (MessageSerializer) clazz.newInstance();
+ final MessageSerializer<?> serializer = (MessageSerializer<?>) clazz.newInstance();
Optional.ofNullable(config).ifPresent(c -> serializer.configure(c, null));
return serializer;
}
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketGremlinRequestEncoder.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketGremlinRequestEncoder.java
index 9ffbc60..92dedab 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketGremlinRequestEncoder.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketGremlinRequestEncoder.java
@@ -39,9 +39,9 @@ import java.util.List;
public final class WebSocketGremlinRequestEncoder extends MessageToMessageEncoder<RequestMessage> {
private final boolean binaryEncoding;
- private final MessageSerializer serializer;
+ private final MessageSerializer<?> serializer;
- public WebSocketGremlinRequestEncoder(final boolean binaryEncoding, final MessageSerializer serializer) {
+ public WebSocketGremlinRequestEncoder(final boolean binaryEncoding, final MessageSerializer<?> serializer) {
this.binaryEncoding = binaryEncoding;
this.serializer = serializer;
}
@@ -53,7 +53,7 @@ public final class WebSocketGremlinRequestEncoder extends MessageToMessageEncode
final ByteBuf encodedMessage = serializer.serializeRequestAsBinary(requestMessage, channelHandlerContext.alloc());
objects.add(new BinaryWebSocketFrame(encodedMessage));
} else {
- final MessageTextSerializer textSerializer = (MessageTextSerializer) serializer;
+ final MessageTextSerializer<?> textSerializer = (MessageTextSerializer<?>) serializer;
objects.add(new TextWebSocketFrame(textSerializer.serializeRequestAsString(requestMessage)));
}
} catch (Exception ex) {
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketGremlinResponseDecoder.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketGremlinResponseDecoder.java
index 3b292f8..2e93061 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketGremlinResponseDecoder.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/WebSocketGremlinResponseDecoder.java
@@ -34,9 +34,9 @@ import java.util.List;
*/
@ChannelHandler.Sharable
public final class WebSocketGremlinResponseDecoder extends MessageToMessageDecoder<WebSocketFrame> {
- private final MessageSerializer serializer;
+ private final MessageSerializer<?> serializer;
- public WebSocketGremlinResponseDecoder(final MessageSerializer serializer) {
+ public WebSocketGremlinResponseDecoder(final MessageSerializer<?> serializer) {
this.serializer = serializer;
}
@@ -47,7 +47,7 @@ public final class WebSocketGremlinResponseDecoder extends MessageToMessageDecod
objects.add(serializer.deserializeResponse(tf.content()));
} else if (webSocketFrame instanceof TextWebSocketFrame) {
final TextWebSocketFrame tf = (TextWebSocketFrame) webSocketFrame;
- final MessageTextSerializer textSerializer = (MessageTextSerializer) serializer;
+ final MessageTextSerializer<?> textSerializer = (MessageTextSerializer<?>) serializer;
objects.add(textSerializer.deserializeResponse(tf.text()));
} else {
throw new RuntimeException(String.format("WebSocket channel does not handle this type of message: %s", webSocketFrame.getClass().getName()));
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java
index 0a2229b..76a1808 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV1d0.java
@@ -50,7 +50,7 @@ import java.util.UUID;
/**
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public abstract class AbstractGraphSONMessageSerializerV1d0 extends AbstractMessageSerializer {
+public abstract class AbstractGraphSONMessageSerializerV1d0 extends AbstractMessageSerializer<ObjectMapper> {
private static final Logger logger = LoggerFactory.getLogger(AbstractGraphSONMessageSerializerV1d0.class);
protected ObjectMapper mapper;
@@ -154,6 +154,7 @@ public abstract class AbstractGraphSONMessageSerializerV1d0 extends AbstractMess
.version(GraphSONVersion.V1_0);
}
+ @Override
public ObjectMapper getMapper() {
return this.mapper;
}
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
index 5861b5a..5f2c220 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGraphSONMessageSerializerV2d0.java
@@ -48,7 +48,7 @@ import java.util.UUID;
/**
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMessageSerializer {
+public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMessageSerializer<ObjectMapper> {
private static final Logger logger = LoggerFactory.getLogger(AbstractGraphSONMessageSerializerV2d0.class);
protected ObjectMapper mapper;
@@ -145,6 +145,7 @@ public abstract class AbstractGraphSONMessageSerializerV2d0 extends AbstractMess
.version(GraphSONVersion.V2_0);
}
+ @Override
public ObjectMapper getMapper() {
return this.mapper;
}
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java
index 799b3d9..368b6bb 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV1d0.java
@@ -50,7 +50,7 @@ import java.util.stream.Collectors;
* @deprecated As of release 3.4.3, replaced by {@link GraphBinaryMessageSerializerV1}.
*/
@Deprecated
-public abstract class AbstractGryoMessageSerializerV1d0 extends AbstractMessageSerializer {
+public abstract class AbstractGryoMessageSerializerV1d0 extends AbstractMessageSerializer<Kryo> {
private GryoMapper gryoMapper;
private ThreadLocal<Kryo> kryoThreadLocal = new ThreadLocal<Kryo>() {
@Override
@@ -88,6 +88,11 @@ public abstract class AbstractGryoMessageSerializerV1d0 extends AbstractMessageS
}
@Override
+ public Kryo getMapper() {
+ return kryoThreadLocal.get();
+ }
+
+ @Override
public final void configure(final Map<String, Object> config, final Map<String, Graph> graphs) {
final GryoMapper.Builder builder = GryoMapper.build().version(GryoVersion.V1_0);
addIoRegistries(config, builder);
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV3d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV3d0.java
index 2efb4a3..0affc90 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV3d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractGryoMessageSerializerV3d0.java
@@ -47,7 +47,7 @@ import java.util.stream.Collectors;
* @deprecated As of release 3.4.3, replaced by {@link GraphBinaryMessageSerializerV1}.
*/
@Deprecated
-public abstract class AbstractGryoMessageSerializerV3d0 extends AbstractMessageSerializer {
+public abstract class AbstractGryoMessageSerializerV3d0 extends AbstractMessageSerializer<Kryo> {
private GryoMapper gryoMapper;
private ThreadLocal<Kryo> kryoThreadLocal = new ThreadLocal<Kryo>() {
@Override
@@ -74,6 +74,11 @@ public abstract class AbstractGryoMessageSerializerV3d0 extends AbstractMessageS
this.gryoMapper = kryo;
}
+ @Override
+ public Kryo getMapper() {
+ return kryoThreadLocal.get();
+ }
+
/**
* Called from the {@link #configure(Map, Map)} method right before the call to create the builder. Sub-classes
* can choose to alter the builder or completely replace it.
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractMessageSerializer.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractMessageSerializer.java
index 59d0aad..50124a6 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractMessageSerializer.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractMessageSerializer.java
@@ -33,7 +33,7 @@ import java.util.Map;
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public abstract class AbstractMessageSerializer implements MessageSerializer {
+public abstract class AbstractMessageSerializer<M> implements MessageSerializer<M> {
public static final String TOKEN_IO_REGISTRIES = "ioRegistries";
/**
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphBinaryMessageSerializerV1.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphBinaryMessageSerializerV1.java
index 44125e1..2eea896 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphBinaryMessageSerializerV1.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphBinaryMessageSerializerV1.java
@@ -23,6 +23,7 @@ import io.netty.buffer.ByteBufAllocator;
import org.apache.tinkerpop.gremlin.driver.message.RequestMessage;
import org.apache.tinkerpop.gremlin.driver.message.ResponseMessage;
import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryIo;
+import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryMapper;
import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryReader;
import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryWriter;
import org.apache.tinkerpop.gremlin.driver.ser.binary.RequestMessageSerializer;
@@ -42,7 +43,7 @@ import java.util.stream.Collectors;
import static java.nio.charset.StandardCharsets.UTF_8;
-public class GraphBinaryMessageSerializerV1 extends AbstractMessageSerializer {
+public class GraphBinaryMessageSerializerV1 extends AbstractMessageSerializer<GraphBinaryMapper> {
public static final String TOKEN_CUSTOM = "custom";
public static final String TOKEN_BUILDER = "builder";
@@ -57,6 +58,7 @@ public class GraphBinaryMessageSerializerV1 extends AbstractMessageSerializer {
private GraphBinaryWriter writer;
private RequestMessageSerializer requestSerializer;
private ResponseMessageSerializer responseSerializer;
+ private GraphBinaryMapper mapper;
/**
* Creates a new instance of the message serializer using the default type serializers.
@@ -68,6 +70,7 @@ public class GraphBinaryMessageSerializerV1 extends AbstractMessageSerializer {
public GraphBinaryMessageSerializerV1(final TypeSerializerRegistry registry) {
reader = new GraphBinaryReader(registry);
writer = new GraphBinaryWriter(registry);
+ mapper = new GraphBinaryMapper(writer, reader);
requestSerializer = new RequestMessageSerializer();
responseSerializer = new ResponseMessageSerializer();
@@ -78,6 +81,11 @@ public class GraphBinaryMessageSerializerV1 extends AbstractMessageSerializer {
}
@Override
+ public GraphBinaryMapper getMapper() {
+ return mapper;
+ }
+
+ @Override
public void configure(final Map<String, Object> config, final Map<String, Graph> graphs) {
final String builderClassName = (String) config.get(TOKEN_BUILDER);
final TypeSerializerRegistry.Builder builder;
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java
index 58dbbdf..d3a15f5 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV1d0.java
@@ -24,6 +24,7 @@ import org.apache.tinkerpop.gremlin.driver.message.ResponseStatusCode;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
import org.apache.tinkerpop.gremlin.structure.io.graphson.TypeInfo;
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,7 +37,7 @@ import java.util.UUID;
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public final class GraphSONMessageSerializerV1d0 extends AbstractGraphSONMessageSerializerV1d0 implements MessageTextSerializer {
+public final class GraphSONMessageSerializerV1d0 extends AbstractGraphSONMessageSerializerV1d0 implements MessageTextSerializer<ObjectMapper> {
private static final Logger logger = LoggerFactory.getLogger(GraphSONMessageSerializerV1d0.class);
private static final String MIME_TYPE = SerTokens.MIME_JSON;
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java
index e860dee..6717a00 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0.java
@@ -25,6 +25,7 @@ import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONXModuleV2d0;
import org.apache.tinkerpop.gremlin.structure.io.graphson.TypeInfo;
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,7 +38,7 @@ import java.util.UUID;
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public final class GraphSONMessageSerializerV2d0 extends AbstractGraphSONMessageSerializerV2d0 implements MessageTextSerializer {
+public final class GraphSONMessageSerializerV2d0 extends AbstractGraphSONMessageSerializerV2d0 implements MessageTextSerializer<ObjectMapper> {
private static final Logger logger = LoggerFactory.getLogger(GraphSONMessageSerializerV2d0.class);
private static final String MIME_TYPE = SerTokens.MIME_GRAPHSON_V2D0;
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0.java
index 9547b3d..da3eea7 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.driver.message.ResponseMessage;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONXModuleV3d0;
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,7 +34,7 @@ import java.nio.ByteBuffer;
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public final class GraphSONMessageSerializerV3d0 extends AbstractGraphSONMessageSerializerV2d0 implements MessageTextSerializer {
+public final class GraphSONMessageSerializerV3d0 extends AbstractGraphSONMessageSerializerV2d0 implements MessageTextSerializer<ObjectMapper> {
private static final Logger logger = LoggerFactory.getLogger(GraphSONMessageSerializerV3d0.class);
private static final String MIME_TYPE = SerTokens.MIME_GRAPHSON_V3D0;
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/MessageTextSerializer.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/MessageTextSerializer.java
index 912c786..289d56d 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/MessageTextSerializer.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/MessageTextSerializer.java
@@ -30,7 +30,7 @@ import org.apache.tinkerpop.gremlin.driver.message.ResponseMessage;
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-public interface MessageTextSerializer extends MessageSerializer {
+public interface MessageTextSerializer<M> extends MessageSerializer<M> {
public String serializeResponseAsString(final ResponseMessage responseMessage) throws SerializationException;
public String serializeRequestAsString(final RequestMessage requestMessage) throws SerializationException;
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
index c1cf305..70c50f3 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/Serializers.java
@@ -65,7 +65,7 @@ public enum Serializers {
return value;
}
- public MessageSerializer simpleInstance() {
+ public MessageSerializer<?> simpleInstance() {
switch (value) {
case SerTokens.MIME_JSON:
return new GraphSONMessageSerializerV3d0();
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java
index df1b0d4..4cc6817 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/WebSocketClient.java
@@ -37,6 +37,7 @@ import io.netty.handler.codec.http.HttpObjectAggregator;
import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory;
import io.netty.handler.codec.http.websocketx.WebSocketVersion;
import org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1;
+import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryMapper;
import java.io.IOException;
import java.net.URI;
@@ -65,7 +66,7 @@ public class WebSocketClient extends AbstractClient {
try {
final WebSocketClientHandler wsHandler = new WebSocketClientHandler(WebSocketClientHandshakerFactory.newHandshaker(
uri, WebSocketVersion.V13, null, true, EmptyHttpHeaders.INSTANCE, 65536), 10000);
- final MessageSerializer serializer = new GraphBinaryMessageSerializerV1();
+ final MessageSerializer<GraphBinaryMapper> serializer = new GraphBinaryMessageSerializerV1();
b.channel(NioSocketChannel.class)
.handler(new ChannelInitializer<SocketChannel>() {
@Override
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0Test.java
index f9362be..8cba236 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV1d0Test.java
@@ -34,6 +34,7 @@ import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
import org.apache.tinkerpop.shaded.jackson.databind.util.StdDateFormat;
import org.junit.Test;
@@ -60,7 +61,7 @@ public class GraphSONMessageSerializerGremlinV1d0Test {
private ResponseMessage.Builder responseMessageBuilder = ResponseMessage.build(requestId);
private static ByteBufAllocator allocator = UnpooledByteBufAllocator.DEFAULT;
- public MessageSerializer serializer = new GraphSONMessageSerializerGremlinV1d0();
+ public MessageSerializer<ObjectMapper> serializer = new GraphSONMessageSerializerGremlinV1d0();
@Test
public void shouldSerializeIterable() throws Exception {
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
index 7d3e702..21970be 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerGremlinV2d0Test.java
@@ -36,6 +36,7 @@ import org.apache.tinkerpop.gremlin.structure.io.graphson.AbstractObjectDeserial
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
import org.apache.tinkerpop.shaded.jackson.databind.util.StdDateFormat;
import org.junit.Assert;
import org.junit.Test;
@@ -66,7 +67,7 @@ public class GraphSONMessageSerializerGremlinV2d0Test {
private final ResponseMessage.Builder responseMessageBuilder = ResponseMessage.build(requestId);
private final static ByteBufAllocator allocator = UnpooledByteBufAllocator.DEFAULT;
- public final MessageSerializer serializer = new GraphSONMessageSerializerGremlinV2d0();
+ public final MessageSerializer<ObjectMapper> serializer = new GraphSONMessageSerializerGremlinV2d0();
@Test
public void shouldSerializeIterable() throws Exception {
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java
index dc23179..897b759 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV2d0Test.java
@@ -588,7 +588,7 @@ public class GraphSONMessageSerializerV2d0Test {
logger.setLevel(previousLevel);
}
- private ResponseMessage convert(final Object toSerialize, MessageSerializer serializer) throws SerializationException {
+ private ResponseMessage convert(final Object toSerialize, MessageSerializer<?> serializer) throws SerializationException {
final ByteBuf bb = serializer.serializeResponseAsBinary(responseMessageBuilder.result(toSerialize).create(), allocator);
return serializer.deserializeResponse(bb);
}
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java
index b9ca43c..29de3c3 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java
@@ -40,6 +40,7 @@ import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.apache.tinkerpop.shaded.jackson.databind.JsonMappingException;
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
import org.junit.Test;
import java.util.ArrayList;
@@ -68,7 +69,7 @@ public class GraphSONMessageSerializerV3d0Test {
private final ResponseMessage.Builder responseMessageBuilder = ResponseMessage.build(requestId);
private final static ByteBufAllocator allocator = UnpooledByteBufAllocator.DEFAULT;
- public final MessageSerializer serializer = new GraphSONMessageSerializerV3d0();
+ public final MessageSerializer<ObjectMapper> serializer = new GraphSONMessageSerializerV3d0();
@Test
public void shouldSerializeIterable() throws Exception {
@@ -386,7 +387,7 @@ public class GraphSONMessageSerializerV3d0Test {
assertEquals(ResponseStatusCode.SUCCESS, response.getStatus().getCode());
}
- private ResponseMessage convert(final Object toSerialize, MessageSerializer serializer) throws SerializationException {
+ private ResponseMessage convert(final Object toSerialize, MessageSerializer<?> serializer) throws SerializationException {
final ByteBuf bb = serializer.serializeResponseAsBinary(responseMessageBuilder.result(toSerialize).create(), allocator);
return serializer.deserializeResponse(bb);
}
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoLiteMessageSerializerV1d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoLiteMessageSerializerV1d0Test.java
index fe1ce63..ffc3522 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoLiteMessageSerializerV1d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoLiteMessageSerializerV1d0Test.java
@@ -34,6 +34,7 @@ import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertex;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+import org.apache.tinkerpop.shaded.kryo.Kryo;
import org.junit.Test;
import java.util.ArrayList;
@@ -58,7 +59,7 @@ public class GryoLiteMessageSerializerV1d0Test {
private ResponseMessage.Builder responseMessageBuilder = ResponseMessage.build(requestId);
private static ByteBufAllocator allocator = UnpooledByteBufAllocator.DEFAULT;
- public MessageSerializer binarySerializer = new GryoLiteMessageSerializerV1d0();
+ public MessageSerializer<Kryo> binarySerializer = new GryoLiteMessageSerializerV1d0();
@Test
public void shouldSerializeEdge() throws Exception {
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1d0Test.java
index eba54a0..ea8c197 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1d0Test.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1d0Test.java
@@ -91,7 +91,7 @@ public class GryoMessageSerializerV1d0Test {
public String name;
@Parameterized.Parameter(value = 1)
- public Supplier<MessageSerializer> serializerSupplier;
+ public Supplier<MessageSerializer<?>> serializerSupplier;
private static final Map<String, Object> configForText = new HashMap<String, Object>() {{
put(GryoMessageSerializerV1d0.TOKEN_SERIALIZE_RESULT_TO_STRING, true);
@@ -107,7 +107,7 @@ public class GryoMessageSerializerV1d0Test {
put(GryoMessageSerializerV1d0.TOKEN_IO_REGISTRIES, Collections.singletonList(ColorIoRegistry.class.getName()));
}};
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
serializer.configure(config, null);
final ResponseMessage toSerialize = ResponseMessage.build(requestId).result(Color.RED).create();
@@ -124,7 +124,7 @@ public class GryoMessageSerializerV1d0Test {
put(GryoMessageSerializerV1d0.TOKEN_IO_REGISTRIES, Collections.singletonList(ColorIoRegistryInstance.class.getName()));
}};
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
serializer.configure(config, null);
final ResponseMessage toSerialize = ResponseMessage.build(requestId).result(Color.RED).create();
@@ -141,7 +141,7 @@ public class GryoMessageSerializerV1d0Test {
put(GryoMessageSerializerV1d0.TOKEN_IO_REGISTRIES, Collections.singletonList(ColorIoRegistryGetInstance.class.getName()));
}};
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
serializer.configure(config, null);
final ResponseMessage toSerialize = ResponseMessage.build(requestId).result(Color.RED).create();
@@ -158,7 +158,7 @@ public class GryoMessageSerializerV1d0Test {
put(GryoMessageSerializerV1d0.TOKEN_CLASS_RESOLVER_SUPPLIER, ErrorOnlyClassResolverSupplier.class.getName());
}};
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
serializer.configure(config, null);
try {
@@ -175,7 +175,7 @@ public class GryoMessageSerializerV1d0Test {
put(GryoMessageSerializerV1d0.TOKEN_CLASS_RESOLVER_SUPPLIER, ErrorOnlyClassResolverSupplierAsInstance.class.getName());
}};
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
serializer.configure(config, null);
try {
@@ -192,7 +192,7 @@ public class GryoMessageSerializerV1d0Test {
put(GryoMessageSerializerV1d0.TOKEN_CLASS_RESOLVER_SUPPLIER, ErrorOnlyClassResolverSupplierAsGetInstance.class.getName());
}};
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
serializer.configure(config, null);
try {
@@ -362,7 +362,7 @@ public class GryoMessageSerializerV1d0Test {
.statusMessage("worked")
.create();
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
final ByteBuf bb = serializer.serializeResponseAsBinary(response, allocator);
final ResponseMessage deserialized = serializer.deserializeResponse(bb);
@@ -396,7 +396,7 @@ public class GryoMessageSerializerV1d0Test {
.statusMessage("worked")
.create();
- final MessageSerializer binarySerializerWithSmallBuffer = new GryoMessageSerializerV1d0();
+ final MessageSerializer<Kryo> binarySerializerWithSmallBuffer = new GryoMessageSerializerV1d0();
final Map<String, Object> configWithSmallBuffer = new HashMap<String, Object>() {{
put("bufferSize", 1);
}};
@@ -431,7 +431,7 @@ public class GryoMessageSerializerV1d0Test {
.statusMessage("worked")
.create();
- final MessageSerializer binarySerializerWithSmallBuffer = new GryoMessageSerializerV1d0();
+ final MessageSerializer<Kryo> binarySerializerWithSmallBuffer = new GryoMessageSerializerV1d0();
final Map<String, Object> configWithSmallBuffer = new HashMap<String, Object>() {{
// set to bufferSize < total message size but still greater than any individual object requires
put("bufferSize", 50);
@@ -453,7 +453,7 @@ public class GryoMessageSerializerV1d0Test {
.addArg("test", "this")
.create();
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
final ByteBuf bb = serializer.serializeRequestAsBinary(request, allocator);
final int mimeLen = bb.readByte();
bb.readBytes(new byte[mimeLen]);
@@ -475,7 +475,7 @@ public class GryoMessageSerializerV1d0Test {
.addArg("test", "this")
.create();
- final MessageSerializer binarySerializerWithSmallBuffer = new GryoMessageSerializerV1d0();
+ final MessageSerializer<Kryo> binarySerializerWithSmallBuffer = new GryoMessageSerializerV1d0();
final Map<String, Object> configWithSmallBuffer = new HashMap<String, Object>() {{
put("bufferSize", 1);
}};
@@ -500,7 +500,7 @@ public class GryoMessageSerializerV1d0Test {
.addArg("test", "this")
.create();
- final MessageSerializer binarySerializerWithSmallBuffer = new GryoMessageSerializerV1d0();
+ final MessageSerializer<Kryo> binarySerializerWithSmallBuffer = new GryoMessageSerializerV1d0();
final Map<String, Object> configWithSmallBuffer = new HashMap<String, Object>() {{
// set to bufferSize < total message size but still greater than any individual object requires
put("bufferSize", 50);
@@ -649,13 +649,13 @@ public class GryoMessageSerializerV1d0Test {
}
private ResponseMessage convertBinary(final Object toSerialize) throws SerializationException {
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
final ByteBuf bb = serializer.serializeResponseAsBinary(responseMessageBuilder.result(toSerialize).create(), allocator);
return serializer.deserializeResponse(bb);
}
private ResponseMessage convertText(final Object toSerialize) throws SerializationException {
- final MessageSerializer serializer = serializerSupplier.get();
+ final MessageSerializer<?> serializer = serializerSupplier.get();
serializer.configure(configForText, null);
final ByteBuf bb = serializer.serializeResponseAsBinary(responseMessageBuilder.result(toSerialize).create(), allocator);
return serializer.deserializeResponse(bb);
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
index fe3c9e8..1e2287ea 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
@@ -107,7 +107,7 @@ public abstract class AbstractChannelizer extends ChannelInitializer<SocketChann
protected static final String GREMLIN_ENDPOINT = "/gremlin";
- protected final Map<String, MessageSerializer> serializers = new HashMap<>();
+ protected final Map<String, MessageSerializer<?>> serializers = new HashMap<>();
private OpSelectorHandler opSelectorHandler;
private OpExecutorHandler opExecutorHandler;
@@ -237,7 +237,7 @@ public abstract class AbstractChannelizer extends ChannelInitializer<SocketChann
if (clazz.getAnnotation(Deprecated.class) != null)
logger.warn("The {} serialization class is deprecated.", config.className);
- final MessageSerializer serializer = (MessageSerializer) clazz.newInstance();
+ final MessageSerializer<?> serializer = (MessageSerializer) clazz.newInstance();
final Map<String, Graph> graphsDefinedAtStartup = new HashMap<>();
for (String graphName : settings.graphs.keySet()) {
graphsDefinedAtStartup.put(graphName, graphManager.getGraph(graphName));
@@ -258,7 +258,7 @@ public abstract class AbstractChannelizer extends ChannelInitializer<SocketChann
Stream.of(serializer.mimeTypesSupported()).map(mimeType -> Pair.with(mimeType, serializer))
).forEach(pair -> {
final String mimeType = pair.getValue0();
- final MessageSerializer serializer = pair.getValue1();
+ final MessageSerializer<?> serializer = pair.getValue1();
if (serializers.containsKey(mimeType))
logger.info("{} already has {} configured - it will not be replaced by {}, change order of serialization configuration if this is not desired.",
mimeType, serializers.get(mimeType).getClass().getName(), serializer.getClass().getName());
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/GremlinResponseFrameEncoder.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/GremlinResponseFrameEncoder.java
index 3aa8c36..6020b36 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/GremlinResponseFrameEncoder.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/GremlinResponseFrameEncoder.java
@@ -52,7 +52,7 @@ public class GremlinResponseFrameEncoder extends MessageToMessageEncoder<Respons
@Override
protected void encode(final ChannelHandlerContext ctx, final ResponseMessage o, final List<Object> objects) throws Exception {
- final MessageSerializer serializer = ctx.channel().attr(StateKey.SERIALIZER).get();
+ final MessageSerializer<?> serializer = ctx.channel().attr(StateKey.SERIALIZER).get();
final boolean useBinary = ctx.channel().attr(StateKey.USE_BINARY).get();
final Session session = ctx.channel().attr(StateKey.SESSION).get();
@@ -77,7 +77,7 @@ public class GremlinResponseFrameEncoder extends MessageToMessageEncoder<Respons
} else {
// the expectation is that the GremlinTextRequestDecoder will have placed a MessageTextSerializer
// instance on the channel.
- final MessageTextSerializer textSerializer = (MessageTextSerializer) serializer;
+ final MessageTextSerializer<?> textSerializer = (MessageTextSerializer<?>) serializer;
final Frame serialized;
@@ -101,7 +101,7 @@ public class GremlinResponseFrameEncoder extends MessageToMessageEncoder<Respons
if (useBinary) {
objects.add(serializer.serializeResponseAsBinary(error, ctx.alloc()));
} else {
- final MessageTextSerializer textSerializer = (MessageTextSerializer) serializer;
+ final MessageTextSerializer<?> textSerializer = (MessageTextSerializer<?>) serializer;
objects.add(textSerializer.serializeResponseAsString(error));
}
}
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 706cee9..2ddc202 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
@@ -96,7 +96,7 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter {
/**
* Serializers for the response.
*/
- private final Map<String, MessageSerializer> serializers;
+ private final Map<String, MessageSerializer<?>> serializers;
private final GremlinExecutor gremlinExecutor;
private final GraphManager graphManager;
@@ -104,7 +104,7 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter {
private static final Pattern pattern = Pattern.compile("(.*);q=(.*)");
- public HttpGremlinEndpointHandler(final Map<String, MessageSerializer> serializers,
+ public HttpGremlinEndpointHandler(final Map<String, MessageSerializer<?>> serializers,
final GremlinExecutor gremlinExecutor,
final GraphManager graphManager,
final Settings settings) {
@@ -146,7 +146,7 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter {
}
final String acceptString = Optional.ofNullable(req.headers().get("Accept")).orElse("application/json");
- final Pair<String, MessageTextSerializer> serializer = chooseSerializer(acceptString);
+ final Pair<String, MessageTextSerializer<?>> serializer = chooseSerializer(acceptString);
if (null == serializer) {
HttpHandlerUtil.sendError(ctx, BAD_REQUEST, String.format("no serializer for requested Accept header: %s", acceptString),
keepAlive);
@@ -308,7 +308,7 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter {
return bindings;
}
- private Pair<String, MessageTextSerializer> chooseSerializer(final String acceptString) {
+ private Pair<String, MessageTextSerializer<?>> chooseSerializer(final String acceptString) {
final List<Pair<String, Double>> ordered = Stream.of(acceptString.split(",")).map(mediaType -> {
// parse out each mediaType with its params - keeping it simple and just looking for "quality". if
// that value isn't there, default it to 1.0. not really validating here so users better get their
@@ -322,7 +322,7 @@ public class HttpGremlinEndpointHandler extends ChannelInboundHandlerAdapter {
// super useful for gremlin server really.
final String accept = p.getValue0().equals("*/*") ? "application/json" : p.getValue0();
if (serializers.containsKey(accept))
- return Pair.with(accept, (MessageTextSerializer) serializers.get(accept));
+ return Pair.with(accept, (MessageTextSerializer<?>) serializers.get(accept));
}
return null;
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/ServerSerializers.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/ServerSerializers.java
index 09b7599..32c13da 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/ServerSerializers.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/ServerSerializers.java
@@ -21,6 +21,8 @@ package org.apache.tinkerpop.gremlin.server.handler;
import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
import org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1;
import org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0;
+import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryMapper;
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
/**
* @author Stephen Mallette (http://stephen.genoprime.com)
@@ -33,12 +35,12 @@ final class ServerSerializers {
* Default binary serializer used by the server when the serializer requested does not match what is on the server.
* This defaults to GraphBinary 1.0.
*/
- static final MessageSerializer DEFAULT_BINARY_SERIALIZER = new GraphBinaryMessageSerializerV1();
+ static final MessageSerializer<GraphBinaryMapper> DEFAULT_BINARY_SERIALIZER = new GraphBinaryMessageSerializerV1();
/**
* Default binary serializer used by the server when the serializer requested does not match what is on the server.
* This defaults to GraphSON 3.0.
*/
- static final MessageSerializer DEFAULT_TEXT_SERIALIZER = new GraphSONMessageSerializerV3d0();
+ static final MessageSerializer<ObjectMapper> DEFAULT_TEXT_SERIALIZER = new GraphSONMessageSerializerV3d0();
}
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/StateKey.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/StateKey.java
index 7890bec..4b5f581 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/StateKey.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/StateKey.java
@@ -37,7 +37,7 @@ public final class StateKey {
/**
* The key for the current serializer requested by the client.
*/
- public static final AttributeKey<MessageSerializer> SERIALIZER = AttributeKey.valueOf("serializer");
+ public static final AttributeKey<MessageSerializer<?>> SERIALIZER = AttributeKey.valueOf("serializer");
/**
* The key to indicate if the serializer should use its binary format.
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinBinaryRequestDecoder.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinBinaryRequestDecoder.java
index e3b61bc..b05ae92 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinBinaryRequestDecoder.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinBinaryRequestDecoder.java
@@ -45,9 +45,9 @@ public class WsGremlinBinaryRequestDecoder extends MessageToMessageDecoder<Binar
private static final Logger logger = LoggerFactory.getLogger(WsGremlinBinaryRequestDecoder.class);
private static final Charset UTF8 = Charset.forName("UTF-8");
- private final Map<String, MessageSerializer> serializers;
+ private final Map<String, MessageSerializer<?>> serializers;
- public WsGremlinBinaryRequestDecoder(final Map<String, MessageSerializer> serializers) {
+ public WsGremlinBinaryRequestDecoder(final Map<String, MessageSerializer<?>> serializers) {
this.serializers = serializers;
}
@@ -64,7 +64,7 @@ public class WsGremlinBinaryRequestDecoder extends MessageToMessageDecoder<Binar
try {
messageBytes.readBytes(contentTypeBytes);
final String contentType = contentTypeBytes.toString(UTF8);
- final MessageSerializer serializer = select(contentType, ServerSerializers.DEFAULT_BINARY_SERIALIZER);
+ final MessageSerializer<?> serializer = select(contentType, ServerSerializers.DEFAULT_BINARY_SERIALIZER);
// it's important to re-initialize these channel attributes as they apply globally to the channel. in
// other words, the next request to this channel might not come with the same configuration and mixed
@@ -83,7 +83,7 @@ public class WsGremlinBinaryRequestDecoder extends MessageToMessageDecoder<Binar
}
}
- private MessageSerializer select(final String mimeType, final MessageSerializer defaultSerializer) {
+ private MessageSerializer<?> select(final String mimeType, final MessageSerializer<?> defaultSerializer) {
if (logger.isWarnEnabled() && !serializers.containsKey(mimeType))
logger.warn("Gremlin Server is not configured with a serializer for the requested mime type [{}] - using {} by default",
mimeType, defaultSerializer.getClass().getName());
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinCloseRequestDecoder.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinCloseRequestDecoder.java
index 6281851..c9a48c6 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinCloseRequestDecoder.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinCloseRequestDecoder.java
@@ -44,9 +44,9 @@ public class WsGremlinCloseRequestDecoder extends MessageToMessageDecoder<CloseW
private static final Logger logger = LoggerFactory.getLogger(WsGremlinCloseRequestDecoder.class);
private static final Charset UTF8 = Charset.forName("UTF-8");
- private final Map<String, MessageSerializer> serializers;
+ private final Map<String, MessageSerializer<?>> serializers;
- public WsGremlinCloseRequestDecoder(final Map<String, MessageSerializer> serializers) {
+ public WsGremlinCloseRequestDecoder(final Map<String, MessageSerializer<?>> serializers) {
this.serializers = serializers;
}
@@ -63,7 +63,7 @@ public class WsGremlinCloseRequestDecoder extends MessageToMessageDecoder<CloseW
try {
messageBytes.readBytes(contentTypeBytes);
final String contentType = contentTypeBytes.toString(UTF8);
- final MessageSerializer serializer = select(contentType, ServerSerializers.DEFAULT_BINARY_SERIALIZER);
+ final MessageSerializer<?> serializer = select(contentType, ServerSerializers.DEFAULT_BINARY_SERIALIZER);
// it's important to re-initialize these channel attributes as they apply globally to the channel. in
// other words, the next request to this channel might not come with the same configuration and mixed
@@ -82,7 +82,7 @@ public class WsGremlinCloseRequestDecoder extends MessageToMessageDecoder<CloseW
}
}
- private MessageSerializer select(final String mimeType, final MessageSerializer defaultSerializer) {
+ private MessageSerializer<?> select(final String mimeType, final MessageSerializer<?> defaultSerializer) {
if (logger.isWarnEnabled() && !serializers.containsKey(mimeType))
logger.warn("Gremlin Server is not configured with a serializer for the requested mime type [{}] - using {} by default",
mimeType, defaultSerializer.getClass().getName());
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinTextRequestDecoder.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinTextRequestDecoder.java
index 77472ac..50dc6f3 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinTextRequestDecoder.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinTextRequestDecoder.java
@@ -42,9 +42,9 @@ import java.util.Map;
public class WsGremlinTextRequestDecoder extends MessageToMessageDecoder<TextWebSocketFrame> {
private static final Logger logger = LoggerFactory.getLogger(WsGremlinTextRequestDecoder.class);
- private final Map<String, MessageSerializer> serializers;
+ private final Map<String, MessageSerializer<?>> serializers;
- public WsGremlinTextRequestDecoder(final Map<String, MessageSerializer> serializers) {
+ public WsGremlinTextRequestDecoder(final Map<String, MessageSerializer<?>> serializers) {
this.serializers = serializers;
}
@@ -52,7 +52,7 @@ public class WsGremlinTextRequestDecoder extends MessageToMessageDecoder<TextWeb
protected void decode(final ChannelHandlerContext channelHandlerContext, final TextWebSocketFrame frame, final List<Object> objects) throws Exception {
try {
// the default serializer must be a MessageTextSerializer instance to be compatible with this decoder
- final MessageTextSerializer serializer = (MessageTextSerializer) select("application/json", ServerSerializers.DEFAULT_TEXT_SERIALIZER);
+ final MessageTextSerializer<?> serializer = (MessageTextSerializer<?>) select("application/json", ServerSerializers.DEFAULT_TEXT_SERIALIZER);
// it's important to re-initialize these channel attributes as they apply globally to the channel. in
// other words, the next request to this channel might not come with the same configuration and mixed
@@ -67,7 +67,7 @@ public class WsGremlinTextRequestDecoder extends MessageToMessageDecoder<TextWeb
}
}
- private MessageSerializer select(final String mimeType, final MessageSerializer defaultSerializer) {
+ private MessageSerializer<?> select(final String mimeType, final MessageSerializer<?> defaultSerializer) {
if (logger.isWarnEnabled() && !serializers.containsKey(mimeType))
logger.warn("Gremlin Server is not configured with a serializer for the requested mime type [{}] - using {} by default",
mimeType, defaultSerializer.getClass().getName());
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractOpProcessor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractOpProcessor.java
index a616ffb..1498c51 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractOpProcessor.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractOpProcessor.java
@@ -85,7 +85,7 @@ public abstract class AbstractOpProcessor implements OpProcessor {
final ChannelHandlerContext nettyContext = context.getChannelHandlerContext();
final RequestMessage msg = context.getRequestMessage();
final Settings settings = context.getSettings();
- final MessageSerializer serializer = nettyContext.channel().attr(StateKey.SERIALIZER).get();
+ final MessageSerializer<?> serializer = nettyContext.channel().attr(StateKey.SERIALIZER).get();
final boolean useBinary = nettyContext.channel().attr(StateKey.USE_BINARY).get();
boolean warnOnce = false;
@@ -281,7 +281,7 @@ public abstract class AbstractOpProcessor implements OpProcessor {
}
protected static Frame makeFrame(final Context ctx, final RequestMessage msg,
- final MessageSerializer serializer, final boolean useBinary, final List<Object> aggregate,
+ final MessageSerializer<?> serializer, final boolean useBinary, final List<Object> aggregate,
final ResponseStatusCode code, final Map<String,Object> responseMetaData,
final Map<String,Object> statusAttributes) throws Exception {
try {
@@ -296,7 +296,7 @@ public abstract class AbstractOpProcessor implements OpProcessor {
} else {
// the expectation is that the GremlinTextRequestDecoder will have placed a MessageTextSerializer
// instance on the channel.
- final MessageTextSerializer textSerializer = (MessageTextSerializer) serializer;
+ final MessageTextSerializer<?> textSerializer = (MessageTextSerializer<?>) serializer;
return new Frame(textSerializer.serializeResponseAsString(ResponseMessage.build(msg)
.code(code)
.statusAttributes(statusAttributes)
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
index 0697b5b..9582a84 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java
@@ -288,7 +288,7 @@ public class TraversalOpProcessor extends AbstractOpProcessor {
final ChannelHandlerContext nettyContext = context.getChannelHandlerContext();
final RequestMessage msg = context.getRequestMessage();
final Settings settings = context.getSettings();
- final MessageSerializer serializer = nettyContext.channel().attr(StateKey.SERIALIZER).get();
+ final MessageSerializer<?> serializer = nettyContext.channel().attr(StateKey.SERIALIZER).get();
final boolean useBinary = nettyContext.channel().attr(StateKey.USE_BINARY).get();
boolean warnOnce = false;
diff --git 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
index bd46679..770854a 100644
--- 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
@@ -38,6 +38,7 @@ import org.apache.tinkerpop.gremlin.structure.Property;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.apache.tinkerpop.gremlin.structure.VertexProperty;
import org.apache.tinkerpop.gremlin.structure.io.IoTest;
+import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryMapper;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceEdge;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferencePath;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceProperty;
@@ -45,6 +46,7 @@ import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertex;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertexProperty;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0;
+import org.apache.tinkerpop.shaded.kryo.Kryo;
import org.hamcrest.CoreMatchers;
import org.junit.After;
import org.junit.Before;
@@ -76,22 +78,22 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
- final MessageSerializer graphBinaryMessageSerializerV1 = new GraphBinaryMessageSerializerV1();
+ final MessageSerializer<GraphBinaryMapper> graphBinaryMessageSerializerV1 = new GraphBinaryMessageSerializerV1();
// must configure Gryo with "custom" since it's configured on the server
- final MessageSerializer gryoMessageSerializerV3d0 = new GryoMessageSerializerV3d0();
+ final MessageSerializer<Kryo> gryoMessageSerializerV3d0 = new GryoMessageSerializerV3d0();
final Map<String,Object> gryoV3d0Config = new HashMap<>();
gryoV3d0Config.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
gryoV3d0Config.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
gryoMessageSerializerV3d0.configure(gryoV3d0Config, null);
- final MessageSerializer gryoMessageSerializerV1d0 = new GryoMessageSerializerV1d0();
+ final MessageSerializer<Kryo> gryoMessageSerializerV1d0 = new GryoMessageSerializerV1d0();
final Map<String,Object> gryoV1d0Config = new HashMap<>();
gryoV1d0Config.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
gryoV1d0Config.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
gryoMessageSerializerV1d0.configure(gryoV1d0Config, null);
- final MessageSerializer gryoLiteMessageSerializerV1d0 = new GryoLiteMessageSerializerV1d0();
+ final MessageSerializer<Kryo> gryoLiteMessageSerializerV1d0 = new GryoLiteMessageSerializerV1d0();
final Map<String,Object> gryoLiteV1d0Config = new HashMap<>();
gryoLiteV1d0Config.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
gryoLiteV1d0Config.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
@@ -109,7 +111,7 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
public Serializers name;
@Parameterized.Parameter(value = 1)
- public MessageSerializer messageSerializer;
+ public MessageSerializer<?> messageSerializer;
@Before
public void beforeTest() {
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java
index 1486c1b..4ec467e 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthKrb5IntegrateTest.java
@@ -231,7 +231,7 @@ public class GremlinServerAuthKrb5IntegrateTest extends AbstractGremlinServerInt
assertAuthViaToStringWithSpecifiedSerializer(new GraphBinaryMessageSerializerV1());
}
- public void assertAuthViaToStringWithSpecifiedSerializer(final MessageSerializer serializer) throws InterruptedException, ExecutionException {
+ public void assertAuthViaToStringWithSpecifiedSerializer(final MessageSerializer<?> serializer) throws InterruptedException, ExecutionException {
final Map<String,Object> config = new HashMap<>();
config.put("serializeResultToString", true);
serializer.configure(config, null);