in gremlin-client-demo/src/main/java/software/amazon/neptune/RetryDemo.java [221:264]
private ClusterContext createClusterContext(RetryConfig retryConfig,
ClusterEndpointsRefreshAgent refreshAgent,
EndpointsSelector selector) {
logger.info("Creating ClusterContext for {}", selector);
CallExecutor executor = new CallExecutorBuilder()
.config(retryConfig)
.build();
Status<ClusterContext> status = executor.execute((Callable<ClusterContext>) () -> {
NeptuneGremlinClusterBuilder builder = NeptuneGremlinClusterBuilder.build()
.enableSsl(!disableSsl)
.enableIamAuth(enableIam)
.iamProfile(profile)
.addContactPoints(refreshAgent.getEndpoints(selector))
.port(neptunePort);
if (StringUtils.isNotEmpty(serviceRegion)) {
builder = builder.serviceRegion(serviceRegion);
}
GremlinCluster cluster = builder.create();
GremlinClient client = cluster.connect();
refreshAgent.startPollingNeptuneAPI(
client,
selector,
intervalSeconds,
TimeUnit.SECONDS
);
DriverRemoteConnection connection = DriverRemoteConnection.using(client);
GraphTraversalSource g = AnonymousTraversalSource.traversal().withRemote(connection);
return new ClusterContext(cluster, client, g);
});
return status.getResult();
}