/** * The asynchronous version of {@link #submit(String, RequestOptions)}} where the returned future will complete when the * write of the request completes. * * @param gremlin the gremlin script to execute * @param options the options to supply for this request */ public CompletableFuture<ResultSet> submitAsync(final String gremlin, final RequestOptions options) { final int batchSize = options.getBatchSize().orElse(cluster.connectionPoolSettings().resultIterationBatchSize); // need to call buildMessage() right away to get client specific configurations, that way request specific // ones can override as needed final RequestMessage.Builder request = buildMessage(RequestMessage.build(Tokens.OPS_EVAL)) .add(Tokens.ARGS_GREMLIN, gremlin) .add(Tokens.ARGS_BATCH_SIZE, batchSize); // apply settings if they were made available options.getTimeout().ifPresent(timeout -> request.add(Tokens.ARGS_SCRIPT_EVAL_TIMEOUT, timeout)); options.getParameters().ifPresent(params -> request.addArg(Tokens.ARGS_BINDINGS, params)); options.getAliases().ifPresent(aliases -> request.addArg(Tokens.ARGS_ALIASES, aliases)); return submitAsync(request.create()); }
this.executor.setRemoveOnCancelPolicy(true); validationRequest = () -> RequestMessage.build(Tokens.OPS_EVAL).add(Tokens.ARGS_GREMLIN, builder.validationRequest);
requestMessage = RequestMessage.build("authentication"). 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\".");
this.executor.setRemoveOnCancelPolicy(true); validationRequest = () -> RequestMessage.build(Tokens.OPS_EVAL).add(Tokens.ARGS_GREMLIN, builder.validationRequest);
/** * The asynchronous version of {@link #submit(String, RequestOptions)}} where the returned future will complete when the * write of the request completes. * * @param gremlin the gremlin script to execute * @param options the options to supply for this request */ public CompletableFuture<ResultSet> submitAsync(final String gremlin, final RequestOptions options) { final int batchSize = options.getBatchSize().orElse(cluster.connectionPoolSettings().resultIterationBatchSize); // need to call buildMessage() right away to get client specific configurations, that way request specific // ones can override as needed final RequestMessage.Builder request = buildMessage(RequestMessage.build(Tokens.OPS_EVAL)) .add(Tokens.ARGS_GREMLIN, gremlin) .add(Tokens.ARGS_BATCH_SIZE, batchSize); // apply settings if they were made available options.getTimeout().ifPresent(timeout -> request.add(Tokens.ARGS_SCRIPT_EVAL_TIMEOUT, timeout)); options.getParameters().ifPresent(params -> request.addArg(Tokens.ARGS_BINDINGS, params)); options.getAliases().ifPresent(aliases -> request.addArg(Tokens.ARGS_ALIASES, aliases)); return submitAsync(request.create()); }
private static RequestMessage.Builder buildRequest(String query, Map<String, ?> parameters) { RequestMessage.Builder request = RequestMessage.build(Tokens.OPS_EVAL) .processor(CYPHER_OP_PROCESSOR_NAME) .add(Tokens.ARGS_GREMLIN, query); if (parameters != null && !parameters.isEmpty()) { request.addArg(Tokens.ARGS_BINDINGS, parameters); } return request; } }