private SqsClient getRegionSpecificClientForQueue()

in src/main/java/com/awslabs/sqs/helpers/implementations/BasicSqsHelper.java [87:109]


    private SqsClient getRegionSpecificClientForQueue(QueueUrl queueUrl) {
        Region currentRegion = awsRegionProviderChain.getRegion();

        // SQS queue URLs look like this: "https://sqs.REGION.amazonaws.com/xxxxxxxxxxxx/yyyyyyyyyy
        String url = queueUrl.getUrl();

        url = url.replace("https://", "");
        String[] urlComponents = url.split("\\.");

        if (urlComponents.length < 4) {
            throw new RuntimeException("Could not parse the region out of the queue URL [" + queueUrl.getUrl() + "]");
        }

        String queueRegionString = urlComponents[1];

        Region queueRegion = Region.of(queueRegionString);

        if (!queueRegion.equals(currentRegion)) {
            return sqsClientBuilderProvider.get().region(queueRegion).build();
        } else {
            return getDefaultSqsClient();
        }
    }