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 2015/05/16 17:54:47 UTC
[1/2] incubator-tinkerpop git commit: fix for TINKERPOP3-686
WebSocket serialization fails for JSON
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master 4c104cebf -> 76c42bff2
fix for TINKERPOP3-686 WebSocket serialization fails for JSON
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/b3a943c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/b3a943c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/b3a943c5
Branch: refs/heads/master
Commit: b3a943c515583dfe2ae8d2b50f4109049a87568a
Parents: 4c104ce
Author: Jason Plurad <pl...@users.noreply.github.com>
Authored: Sat May 16 11:35:19 2015 -0400
Committer: Jason Plurad <pl...@users.noreply.github.com>
Committed: Sat May 16 11:35:19 2015 -0400
----------------------------------------------------------------------
.../server/channel/WebSocketChannelizer.java | 2 +-
.../handler/WsGremlinTextRequestDecoder.java | 29 ++++++++++++++++----
2 files changed, 25 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b3a943c5/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java
index 992fa55..86076f0 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/channel/WebSocketChannelizer.java
@@ -58,7 +58,7 @@ public class WebSocketChannelizer extends AbstractChannelizer {
super.init(settings, gremlinExecutor, gremlinExecutorService, graphs, scheduledExecutorService);
wsGremlinResponseEncoder = new WsGremlinResponseEncoder();
- wsGremlinTextRequestDecoder = new WsGremlinTextRequestDecoder();
+ wsGremlinTextRequestDecoder = new WsGremlinTextRequestDecoder(serializers);
wsGremlinBinaryRequestDecoder = new WsGremlinBinaryRequestDecoder(serializers);
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b3a943c5/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinTextRequestDecoder.java
----------------------------------------------------------------------
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 37b0dd1..1b54f2b 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
@@ -18,6 +18,7 @@
*/
package org.apache.tinkerpop.gremlin.server.handler;
+import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
import org.apache.tinkerpop.gremlin.driver.message.RequestMessage;
import org.apache.tinkerpop.gremlin.driver.ser.MessageTextSerializer;
import org.apache.tinkerpop.gremlin.driver.ser.SerializationException;
@@ -26,8 +27,11 @@ import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageDecoder;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.List;
+import java.util.Map;
/**
* Decodes the contents of a {@link TextWebSocketFrame}. Text-based frames are always assumed to be
@@ -37,18 +41,33 @@ import java.util.List;
*/
@ChannelHandler.Sharable
public class WsGremlinTextRequestDecoder extends MessageToMessageDecoder<TextWebSocketFrame> {
+ private static final Logger logger = LoggerFactory.getLogger(WsGremlinTextRequestDecoder.class);
+
+ private final Map<String, MessageSerializer> serializers;
+
+ public WsGremlinTextRequestDecoder(final Map<String, MessageSerializer> serializers) {
+ this.serializers = serializers;
+ }
@Override
protected void decode(final ChannelHandlerContext channelHandlerContext, final TextWebSocketFrame frame, final List<Object> objects) throws Exception {
- // the default serializer must be a MessageTextSerializer instance to be compatible with this decoder
- final MessageTextSerializer serializer = (MessageTextSerializer) Serializers.DEFAULT_REQUEST_SERIALIZER;
- channelHandlerContext.channel().attr(StateKey.SERIALIZER).set(serializer);
- channelHandlerContext.channel().attr(StateKey.USE_BINARY).set(false);
-
try {
+ // the default serializer must be a MessageTextSerializer instance to be compatible with this decoder
+ final MessageTextSerializer serializer = (MessageTextSerializer) select("application/json", Serializers.DEFAULT_REQUEST_SERIALIZER);
+
+ channelHandlerContext.channel().attr(StateKey.SERIALIZER).set(serializer);
+ channelHandlerContext.channel().attr(StateKey.USE_BINARY).set(false);
objects.add(serializer.deserializeRequest(frame.text()));
} catch (SerializationException se) {
objects.add(RequestMessage.INVALID);
}
}
+
+ public 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());
+
+ return serializers.getOrDefault(mimeType, defaultSerializer);
+ }
}
[2/2] incubator-tinkerpop git commit: Change method scope to private
in ws request decoders
Posted by sp...@apache.org.
Change method scope to private in ws request decoders
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/76c42bff
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/76c42bff
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/76c42bff
Branch: refs/heads/master
Commit: 76c42bff287b03d89f6ff57947fa2749a1585378
Parents: b3a943c
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat May 16 11:54:15 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat May 16 11:54:15 2015 -0400
----------------------------------------------------------------------
.../gremlin/server/handler/WsGremlinBinaryRequestDecoder.java | 2 +-
.../gremlin/server/handler/WsGremlinTextRequestDecoder.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/76c42bff/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinBinaryRequestDecoder.java
----------------------------------------------------------------------
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 8fe8cc4..071eb18 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
@@ -79,7 +79,7 @@ public class WsGremlinBinaryRequestDecoder extends MessageToMessageDecoder<Binar
}
}
- public 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());
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/76c42bff/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinTextRequestDecoder.java
----------------------------------------------------------------------
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 1b54f2b..9316c1b 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
@@ -63,7 +63,7 @@ public class WsGremlinTextRequestDecoder extends MessageToMessageDecoder<TextWeb
}
}
- public 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());