in src/main/java/com/amazonaws/services/sqs/AmazonSQSTemporaryQueuesClient.java [78:99]
public static AmazonSQSTemporaryQueuesClient make(AmazonSQSRequesterClientBuilder builder) {
AmazonSQS sqs = builder.getAmazonSQS().orElseGet(AmazonSQSClientBuilder::defaultClient);
AmazonSQSIdleQueueDeletingClient deleter = new AmazonSQSIdleQueueDeletingClient(sqs, builder.getInternalQueuePrefix(), builder.getQueueHeartbeatInterval());
AmazonSQS virtualizer = AmazonSQSVirtualQueuesClientBuilder.standard()
.withAmazonSQS(deleter)
.withHeartbeatIntervalSeconds(builder.getQueueHeartbeatInterval())
.build();
AmazonSQSTemporaryQueuesClient temporaryQueuesClient = new AmazonSQSTemporaryQueuesClient(virtualizer, deleter, builder.getInternalQueuePrefix(), builder.getIdleQueueRetentionPeriodSeconds());
AmazonSQSRequesterClient requester = new AmazonSQSRequesterClient(temporaryQueuesClient, builder.getInternalQueuePrefix(), builder.getQueueAttributes());
AmazonSQSResponderClient responder = new AmazonSQSResponderClient(temporaryQueuesClient);
temporaryQueuesClient.startIdleQueueSweeper(requester, responder,
builder.getIdleQueueSweepingPeriod(), builder.getIdleQueueSweepingTimeUnit());
if (builder.getAmazonSQS().isPresent()) {
requester.setShutdownHook(temporaryQueuesClient::shutdown);
} else {
requester.setShutdownHook(() -> {
temporaryQueuesClient.shutdown();
sqs.shutdown();
});
}
return temporaryQueuesClient;
}