Example usage for com.amazonaws.services.sqs AmazonSQS listQueues

List of usage examples for com.amazonaws.services.sqs AmazonSQS listQueues

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs AmazonSQS listQueues.

Prototype

ListQueuesResult listQueues(String queueNamePrefix);

Source Link

Document

Simplified method form for invoking the ListQueues operation.

Usage

From source file:com.streamsets.pipeline.stage.origin.sqs.SqsConsumer.java

License:Apache License

@Override
protected List<ConfigIssue> init() {
    List<ConfigIssue> issues = super.init();

    if (conf.region == AwsRegion.OTHER && (conf.endpoint == null || conf.endpoint.isEmpty())) {
        issues.add(getContext().createConfigIssue(Groups.SQS.name(), SQS_CONFIG_PREFIX + "endpoint",
                Errors.SQS_01));//ww  w  .j ava 2s  .co  m

        return issues;
    }

    // Propagate StringBuilder size to the service
    getContext().getService(DataFormatParserService.class).setStringBuilderPoolSize(getNumberOfThreads());

    try {
        clientConfiguration = AWSUtil.getClientConfiguration(conf.proxyConfig);
    } catch (StageException e) {
        issues.add(getContext().createConfigIssue(Groups.SQS.name(), SQS_CONFIG_PREFIX + "proxyConfig",
                Errors.SQS_10, e.getMessage(), e));
        return issues;
    }
    try {
        credentials = AWSUtil.getCredentialsProvider(conf.awsConfig);
    } catch (StageException e) {
        issues.add(getContext().createConfigIssue(Groups.SQS.name(), SQS_CONFIG_PREFIX + "awsConfig",
                Errors.SQS_11, e.getMessage(), e));
        return issues;
    }

    AmazonSQS validationClient = AmazonSQSClientBuilder.standard().withRegion(conf.region.getId())
            .withClientConfiguration(clientConfiguration).withCredentials(credentials).build();

    for (int i = 0; i < conf.queuePrefixes.size(); i++) {
        final String queueNamePrefix = conf.queuePrefixes.get(i);
        ListQueuesResult result = validationClient.listQueues(new ListQueuesRequest(queueNamePrefix));
        if (LOG.isDebugEnabled()) {
            LOG.debug("ListQueuesResult for prefix {}: {}", queueNamePrefix, result);
        }
        if (result.getQueueUrls().size() == 0) {
            //TODO: set index in issue when API-138 is implemented
            issues.add(getContext().createConfigIssue(Groups.SQS.name(), SQS_CONFIG_PREFIX + "queuePrefixes",
                    Errors.SQS_02, queueNamePrefix));
        }
        result.getQueueUrls().forEach(url -> queueUrlToPrefix.put(url, queueNamePrefix));
    }

    if (queueUrlToPrefix.isEmpty()) {
        issues.add(getContext().createConfigIssue(Groups.SQS.name(), SQS_CONFIG_PREFIX + "queuePrefixes",
                Errors.SQS_09));
    }

    return issues;
}