@Override public RequestMessage createObject(final Map<String, Object> data) { final Map<String, Object> args = (Map<String, Object>) data.get(SerTokens.TOKEN_ARGS); RequestMessage.Builder builder = RequestMessage.build(data.get(SerTokens.TOKEN_OP).toString()) .overrideRequestId(UUID.fromString(data.get(SerTokens.TOKEN_REQUEST).toString())); if (data.containsKey(SerTokens.TOKEN_PROCESSOR)) builder = builder.processor(data.get(SerTokens.TOKEN_PROCESSOR).toString()); if (args != null) { for (Map.Entry<String, Object> kv : args.entrySet()) { builder = builder.addArg(kv.getKey(), kv.getValue()); } } return builder.create(); } }
@Override public RequestMessage deserializeRequest(final ByteBuf msg) throws SerializationException { try { final Kryo kryo = kryoThreadLocal.get(); final byte[] payload = new byte[msg.readableBytes()]; msg.readBytes(payload); try (final Input input = new Input(payload)) { // by the time the message gets here, the mime length/type have been already read, so this part just // needs to process the payload. final UUID id = kryo.readObject(input, UUID.class); final String processor = input.readString(); final String op = input.readString(); final RequestMessage.Builder builder = RequestMessage.build(op) .overrideRequestId(id) .processor(processor); final Map<String, Object> args = kryo.readObject(input, HashMap.class); args.forEach(builder::addArg); return builder.create(); } } catch (Exception ex) { logger.warn(String.format("Request [%s] could not be deserialized by %s.", msg, AbstractGryoMessageSerializerV1d0.class.getName()), ex); throw new SerializationException(ex); } }
public static Builder from(final RequestMessage msg) { final Builder builder = build(msg.op) .overrideRequestId(msg.requestId) .processor(msg.processor); msg.args.forEach(builder::addArg); return builder; }
@Override public RequestMessage deserializeRequest(final ByteBuf msg) throws SerializationException { try { final Kryo kryo = kryoThreadLocal.get(); final byte[] payload = new byte[msg.readableBytes()]; msg.readBytes(payload); try (final Input input = new Input(payload)) { // by the time the message gets here, the mime length/type have been already read, so this part just // needs to process the payload. final UUID id = kryo.readObject(input, UUID.class); final String processor = input.readString(); final String op = input.readString(); final RequestMessage.Builder builder = RequestMessage.build(op) .overrideRequestId(id) .processor(processor); final Map<String, Object> args = kryo.readObject(input, HashMap.class); args.forEach(builder::addArg); return builder.create(); } } catch (Exception ex) { logger.warn(String.format("Request [%s] could not be deserialized by %s.", msg, AbstractGryoMessageSerializerV1d0.class.getName()), ex); throw new SerializationException(ex); } }
@Override public RequestMessage createObject(final Map<String, Object> data) { final Map<String, Object> args = (Map<String, Object>) data.get(SerTokens.TOKEN_ARGS); RequestMessage.Builder builder = RequestMessage.build(data.get(SerTokens.TOKEN_OP).toString()) .overrideRequestId(UUID.fromString(data.get(SerTokens.TOKEN_REQUEST).toString())); if (data.containsKey(SerTokens.TOKEN_PROCESSOR)) builder = builder.processor(data.get(SerTokens.TOKEN_PROCESSOR).toString()); if (args != null) { for (Map.Entry<String, Object> kv : args.entrySet()) { builder = builder.addArg(kv.getKey(), kv.getValue()); } } return builder.create(); } }
@Override public <I extends InputShim> RequestMessage read(final KryoShim<I, ?> kryo, final I input, final Class<RequestMessage> aClass) { final UUID id = kryo.readObject(input, UUID.class); final String processor = input.readString(); final String op = input.readString(); final RequestMessage.Builder builder = RequestMessage.build(op) .overrideRequestId(id) .processor(processor); final Map<String, Object> args = kryo.readObject(input, HashMap.class); args.forEach(builder::addArg); return builder.create(); } }
public static Builder from(final RequestMessage msg) { final Builder builder = build(msg.op) .overrideRequestId(msg.requestId) .processor(msg.processor); msg.args.forEach(builder::addArg); return builder; }
public RequestMessage readValue(final ByteBuf buffer, final GraphBinaryReader context) throws SerializationException { final int version = buffer.readByte(); assert version >>> 31 == 1; final UUID id = context.readValue(buffer, UUID.class, false); final String op = context.readValue(buffer, String.class, false); final String processor = context.readValue(buffer, String.class, false); final RequestMessage.Builder builder = RequestMessage.build(op).overrideRequestId(id).processor(processor); final Map<String, Object> args = context.readValue(buffer, Map.class, false); args.forEach(builder::addArg); return builder.create(); }
overrideRequestId(UUID.fromString("cb682578-9d92-4499-9ebc-5c6aa73c5397")). add("saslMechanism", "PLAIN", "sasl", "AHN0ZXBocGhlbgBwYXNzd29yZA==").create(); addRequestMessageEntry(requestMessage, "Authentication Response", "The following `RequestMessage` is an example of the response that should be made to a SASL-based authentication challenge."); requestMessage = RequestMessage.build("eval").processor("session"). overrideRequestId(UUID.fromString("cb682578-9d92-4499-9ebc-5c6aa73c5397")). add("gremlin", "g.V(x)", "bindings", requestBindings, "language", "gremlin-groovy", "session", UUID.fromString("41d2e28a-20a4-4ab0-b379-d810dede3786")).create(); addRequestMessageEntry(requestMessage, "Session Eval", "The following `RequestMessage` is an example of a simple session request for a script evaluation with parameters."); requestMessage = RequestMessage.build("eval").processor("session"). overrideRequestId(UUID.fromString("cb682578-9d92-4499-9ebc-5c6aa73c5397")). add("gremlin", "social.V(x)", "bindings", requestBindings, "language", "gremlin-groovy", "aliases", requestAliases, "session", UUID.fromString("41d2e28a-20a4-4ab0-b379-d810dede3786")).create(); addRequestMessageEntry(requestMessage, "Session Eval Aliased", "The following `RequestMessage` is an example of a session request for a script evaluation with an alias that binds the `TraversalSource` of \"g\" to \"social\"."); requestMessage = RequestMessage.build("close").processor("session"). overrideRequestId(UUID.fromString("cb682578-9d92-4499-9ebc-5c6aa73c5397")). add("session", UUID.fromString("41d2e28a-20a4-4ab0-b379-d810dede3786")).create(); addRequestMessageEntry(requestMessage, "Session Close", "The following `RequestMessage` is an example of a request to close a session."); requestMessage = RequestMessage.build("eval"). overrideRequestId(UUID.fromString("cb682578-9d92-4499-9ebc-5c6aa73c5397")). add("gremlin", "g.V(x)", "bindings", requestBindings, "language", "gremlin-groovy").create(); addRequestMessageEntry(requestMessage, "Sessionless Eval", "The following `RequestMessage` is an example of a simple sessionless request for a script evaluation with parameters."); requestMessage = RequestMessage.build("eval"). overrideRequestId(UUID.fromString("cb682578-9d92-4499-9ebc-5c6aa73c5397")). add("gremlin", "social.V(x)", "bindings", requestBindings, "language", "gremlin-groovy", "aliases", requestAliases).create(); addRequestMessageEntry(requestMessage, "Sessionless Eval Aliased", "The following `RequestMessage` is an example of a sessionless request for a script evaluation with an alias that binds the `TraversalSource` of \"g\" to \"social\".");
@Override public <I extends InputShim> RequestMessage read(final KryoShim<I, ?> kryo, final I input, final Class<RequestMessage> aClass) { final UUID id = kryo.readObject(input, UUID.class); final String processor = input.readString(); final String op = input.readString(); final RequestMessage.Builder builder = RequestMessage.build(op) .overrideRequestId(id) .processor(processor); final Map<String, Object> args = kryo.readObject(input, HashMap.class); args.forEach(builder::addArg); return builder.create(); } }
@Benchmark public RequestMessage testInstanceCreation() { return RequestMessage.build("a").overrideRequestId(id).processor("b").create(); } }
public RequestMessage readValue(final ByteBuf buffer, final GraphBinaryReader context) throws SerializationException { final int version = buffer.readByte(); assert version >>> 31 == 1; final UUID id = context.readValue(buffer, UUID.class, false); final String op = context.readValue(buffer, String.class, false); final String processor = context.readValue(buffer, String.class, false); final RequestMessage.Builder builder = RequestMessage.build(op).overrideRequestId(id).processor(processor); final Map<String, Object> args = context.readValue(buffer, Map.class, false); args.forEach(builder::addArg); return builder.create(); }