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/04/21 12:43:31 UTC
[04/39] incubator-tinkerpop git commit: Extracted method in json
message serialization for better reuse.
Extracted method in json message serialization for better reuse.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/1f05d3cb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/1f05d3cb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/1f05d3cb
Branch: refs/heads/refactor-io
Commit: 1f05d3cb65a031995049e36b49ea52c6e220dd1c
Parents: 5763895
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Apr 17 15:57:10 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Apr 17 15:57:10 2015 -0400
----------------------------------------------------------------------
.../ser/AbstractJsonMessageSerializerV1d0.java | 37 ++++++++++++--------
.../driver/ser/JsonMessageSerializerV1d0.java | 16 +--------
2 files changed, 23 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/1f05d3cb/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractJsonMessageSerializerV1d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractJsonMessageSerializerV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractJsonMessageSerializerV1d0.java
index 518f242..7737a7f 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractJsonMessageSerializerV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/AbstractJsonMessageSerializerV1d0.java
@@ -99,21 +99,7 @@ public abstract class AbstractJsonMessageSerializerV1d0 implements MessageSerial
public ByteBuf serializeResponseAsBinary(final ResponseMessage responseMessage, final ByteBufAllocator allocator) throws SerializationException {
ByteBuf encodedMessage = null;
try {
- final Map<String, Object> result = new HashMap<>();
- result.put(SerTokens.TOKEN_DATA, responseMessage.getResult().getData());
- result.put(SerTokens.TOKEN_META, responseMessage.getResult().getMeta());
-
- final Map<String, Object> status = new HashMap<>();
- status.put(SerTokens.TOKEN_MESSAGE, responseMessage.getStatus().getMessage());
- status.put(SerTokens.TOKEN_CODE, responseMessage.getStatus().getCode().getValue());
- status.put(SerTokens.TOKEN_ATTRIBUTES, responseMessage.getStatus().getAttributes());
-
- final Map<String, Object> message = new HashMap<>();
- message.put(SerTokens.TOKEN_STATUS, status);
- message.put(SerTokens.TOKEN_RESULT, result);
- message.put(SerTokens.TOKEN_REQUEST, responseMessage.getRequestId() != null ? responseMessage.getRequestId() : null);
-
- final byte[] payload = mapper.writeValueAsBytes(message);
+ final byte[] payload = mapper.writeValueAsBytes(createResponseMessageMap(responseMessage));
encodedMessage = allocator.buffer(payload.length);
encodedMessage.writeBytes(payload);
@@ -179,6 +165,27 @@ public abstract class AbstractJsonMessageSerializerV1d0 implements MessageSerial
}
}
+ /**
+ * Construct a {@link Map} from the {@link ResponseMessage} for serialization purposes. By doing it this way,
+ * type embedding does not become overly verbose in the core structure of the message.
+ */
+ protected static Map<String, Object> createResponseMessageMap(final ResponseMessage responseMessage) {
+ final Map<String, Object> result = new HashMap<>();
+ result.put(SerTokens.TOKEN_DATA, responseMessage.getResult().getData());
+ result.put(SerTokens.TOKEN_META, responseMessage.getResult().getMeta());
+
+ final Map<String, Object> status = new HashMap<>();
+ status.put(SerTokens.TOKEN_MESSAGE, responseMessage.getStatus().getMessage());
+ status.put(SerTokens.TOKEN_CODE, responseMessage.getStatus().getCode().getValue());
+ status.put(SerTokens.TOKEN_ATTRIBUTES, responseMessage.getStatus().getAttributes());
+
+ final Map<String, Object> message = new HashMap<>();
+ message.put(SerTokens.TOKEN_STATUS, status);
+ message.put(SerTokens.TOKEN_RESULT, result);
+ message.put(SerTokens.TOKEN_REQUEST, responseMessage.getRequestId() != null ? responseMessage.getRequestId() : null);
+ return message;
+ }
+
public static class GremlinServerModule extends SimpleModule {
public GremlinServerModule() {
super("graphson-gremlin-server");
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/1f05d3cb/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0.java
index 91063a7..21ef3cd 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/JsonMessageSerializerV1d0.java
@@ -94,21 +94,7 @@ public class JsonMessageSerializerV1d0 extends AbstractJsonMessageSerializerV1d0
@Override
public String serializeResponseAsString(final ResponseMessage responseMessage) throws SerializationException {
try {
- final Map<String, Object> result = new HashMap<>();
- result.put(SerTokens.TOKEN_DATA, responseMessage.getResult().getData());
- result.put(SerTokens.TOKEN_META, responseMessage.getResult().getMeta());
-
- final Map<String, Object> status = new HashMap<>();
- status.put(SerTokens.TOKEN_MESSAGE, responseMessage.getStatus().getMessage());
- status.put(SerTokens.TOKEN_CODE, responseMessage.getStatus().getCode().getValue());
- status.put(SerTokens.TOKEN_ATTRIBUTES, responseMessage.getStatus().getAttributes());
-
- final Map<String, Object> message = new HashMap<>();
- message.put(SerTokens.TOKEN_STATUS, status);
- message.put(SerTokens.TOKEN_RESULT, result);
- message.put(SerTokens.TOKEN_REQUEST, responseMessage.getRequestId() != null ? responseMessage.getRequestId() : null);
-
- return mapper.writeValueAsString(message);
+ return mapper.writeValueAsString(createResponseMessageMap(responseMessage));
} catch (Exception ex) {
logger.warn("Response [{}] could not be serialized by {}.", responseMessage.toString(), AbstractJsonMessageSerializerV1d0.class.getName());
throw new RuntimeException("Error during serialization.", ex);