private ClusterContext createClusterContext()

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();
    }