private static void waitForKdsActivation()

in src/main/java/software/amazon/qldb/tutorial/streams/StreamJournal.java [366:395]


    private static void waitForKdsActivation() {
        log.info("Waiting for Kinesis Stream to become Active.");
        DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest()
                .withStreamName(kdsName);

        int retries = 0;
        while (retries < MAX_RETRIES) {
            try {
                log.info("Sleeping for 5 sec before polling Kinesis Stream status.");
                Thread.sleep(5 * 1000);
            } catch (Exception ignore) {
            }

            DescribeStreamResult describeStreamResponse = kinesis.describeStream(describeStreamRequest);
            kdsArn = describeStreamResponse.getStreamDescription().getStreamARN();
            String streamStatus = describeStreamResponse.getStreamDescription().getStreamStatus();
            if (streamStatus.equals("ACTIVE")) {
                break;
            }
            log.info("Still waiting for Kinesis Stream to become Active. Current streamStatus: {}.", streamStatus);
            try {
                Thread.sleep(1000);
            } catch (Exception ignore) {
            }
            retries++;
        }
        if (retries >= MAX_RETRIES) {
            throw new RuntimeException("Kinesis Stream with name " + kdsName + " never went active");
        }
    }