Example usage for com.amazonaws.services.sqs AmazonSQSClientBuilder defaultClient

List of usage examples for com.amazonaws.services.sqs AmazonSQSClientBuilder defaultClient

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs AmazonSQSClientBuilder defaultClient.

Prototype

public static AmazonSQS defaultClient() 

Source Link

Usage

From source file:aws.example.sqs.DeadLetterQueues.java

License:Open Source License

public static void main(String[] args) {
    if (args.length != 2) {
        System.out.println("Usage: DeadLetterQueues <src_queue_name> <dl_queue_name>");
        System.exit(1);//ww  w.  j ava  2 s. c  om
    }

    String src_queue_name = args[0];
    String dl_queue_name = args[1];

    final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

    // Create source queue
    try {
        sqs.createQueue(src_queue_name);
    } catch (AmazonSQSException e) {
        if (!e.getErrorCode().equals("QueueAlreadyExists")) {
            throw e;
        }
    }

    // Create dead-letter queue
    try {
        sqs.createQueue(dl_queue_name);
    } catch (AmazonSQSException e) {
        if (!e.getErrorCode().equals("QueueAlreadyExists")) {
            throw e;
        }
    }

    // Get dead-letter queue ARN
    String dl_queue_url = sqs.getQueueUrl(dl_queue_name).getQueueUrl();

    GetQueueAttributesResult queue_attrs = sqs
            .getQueueAttributes(new GetQueueAttributesRequest(dl_queue_url).withAttributeNames("QueueArn"));

    String dl_queue_arn = queue_attrs.getAttributes().get("QueueArn");

    // Set dead letter queue with redrive policy on source queue.
    String src_queue_url = sqs.getQueueUrl(src_queue_name).getQueueUrl();

    SetQueueAttributesRequest request = new SetQueueAttributesRequest().withQueueUrl(src_queue_url)
            .addAttributesEntry("RedrivePolicy",
                    "{\"maxReceiveCount\":\"5\", \"deadLetterTargetArn\":\"" + dl_queue_arn + "\"}");

    sqs.setQueueAttributes(request);
}

From source file:aws.example.sqs.LongPolling.java

License:Open Source License

public static void main(String[] args) {
    final String USAGE = "To run this example, supply the name of a queue to create and\n"
            + "queue url of an existing queue.\n\n"
            + "Ex: LongPolling <unique-queue-name> <existing-queue-url>\n";

    if (args.length != 2) {
        System.out.println(USAGE);
        System.exit(1);//  ww  w  .  j  av a2  s.  co  m
    }

    String queue_name = args[0];
    String queue_url = args[1];

    final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

    // Enable long polling when creating a queue
    CreateQueueRequest create_request = new CreateQueueRequest().withQueueName(queue_name)
            .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20");

    try {
        sqs.createQueue(create_request);
    } catch (AmazonSQSException e) {
        if (!e.getErrorCode().equals("QueueAlreadyExists")) {
            throw e;
        }
    }

    // Enable long polling on an existing queue
    SetQueueAttributesRequest set_attrs_request = new SetQueueAttributesRequest().withQueueUrl(queue_url)
            .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20");
    sqs.setQueueAttributes(set_attrs_request);

    // Enable long polling on a message receipt
    ReceiveMessageRequest receive_request = new ReceiveMessageRequest().withQueueUrl(queue_url)
            .withWaitTimeSeconds(20);
    sqs.receiveMessage(receive_request);
}

From source file:aws.example.sqs.SendReceiveMessages.java

License:Open Source License

public static void main(String[] args) {
    final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

    try {/*from  ww w .j av  a2  s.c  o m*/
        CreateQueueResult create_result = sqs.createQueue(QUEUE_NAME);
    } catch (AmazonSQSException e) {
        if (!e.getErrorCode().equals("QueueAlreadyExists")) {
            throw e;
        }
    }

    String queueUrl = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl();

    SendMessageRequest send_msg_request = new SendMessageRequest().withQueueUrl(queueUrl)
            .withMessageBody("hello world").withDelaySeconds(5);
    sqs.sendMessage(send_msg_request);

    // Send multiple messages to the queue
    SendMessageBatchRequest send_batch_request = new SendMessageBatchRequest().withQueueUrl(queueUrl)
            .withEntries(new SendMessageBatchRequestEntry("msg_1", "Hello from message 1"),
                    new SendMessageBatchRequestEntry("msg_2", "Hello from message 2").withDelaySeconds(10));
    sqs.sendMessageBatch(send_batch_request);

    // receive messages from the queue
    List<Message> messages = sqs.receiveMessage(queueUrl).getMessages();

    // delete messages from the queue
    for (Message m : messages) {
        sqs.deleteMessage(queueUrl, m.getReceiptHandle());
    }
}

From source file:aws.example.sqs.UsingQueues.java

License:Open Source License

public static void main(String[] args) {
    AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

    // Creating a Queue
    CreateQueueRequest create_request = new CreateQueueRequest(QUEUE_NAME)
            .addAttributesEntry("DelaySeconds", "60").addAttributesEntry("MessageRetentionPeriod", "86400");

    try {/*w  w w  .  j  a v a  2  s .  co  m*/
        sqs.createQueue(create_request);
    } catch (AmazonSQSException e) {
        if (!e.getErrorCode().equals("QueueAlreadyExists")) {
            throw e;
        }
    }

    // Get the URL for a queue
    String queue_url = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl();

    // Delete the Queue
    sqs.deleteQueue(queue_url);

    sqs.createQueue("Queue1" + new Date().getTime());
    sqs.createQueue("Queue2" + new Date().getTime());
    sqs.createQueue("MyQueue" + new Date().getTime());

    // List your queues
    ListQueuesResult lq_result = sqs.listQueues();
    System.out.println("Your SQS Queue URLs:");
    for (String url : lq_result.getQueueUrls()) {
        System.out.println(url);
    }

    // List queues with filters
    String name_prefix = "Queue";
    lq_result = sqs.listQueues(new ListQueuesRequest(name_prefix));
    System.out.println("Queue URLs with prefix: " + name_prefix);
    for (String url : lq_result.getQueueUrls()) {
        System.out.println(url);
    }
}

From source file:aws.example.sqs.VisibilityTimeout.java

License:Open Source License

public static void changeMessageVisibilitySingle(String queue_url, int timeout) {
    AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

    // Get the receipt handle for the first message in the queue.
    String receipt = sqs.receiveMessage(queue_url).getMessages().get(0).getReceiptHandle();

    sqs.changeMessageVisibility(queue_url, receipt, timeout);
}

From source file:aws.example.sqs.VisibilityTimeout.java

License:Open Source License

public static void changeMessageVisibilityMultiple(String queue_url, int timeout) {
    AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

    List<ChangeMessageVisibilityBatchRequestEntry> entries = new ArrayList<ChangeMessageVisibilityBatchRequestEntry>();

    entries.add(new ChangeMessageVisibilityBatchRequestEntry("unique_id_msg1",
            sqs.receiveMessage(queue_url).getMessages().get(0).getReceiptHandle())
                    .withVisibilityTimeout(timeout));

    entries.add(new ChangeMessageVisibilityBatchRequestEntry("unique_id_msg2",
            sqs.receiveMessage(queue_url).getMessages().get(0).getReceiptHandle())
                    .withVisibilityTimeout(timeout + 200));

    sqs.changeMessageVisibilityBatch(queue_url, entries);
}

From source file:aws.example.sqs.VisibilityTimeout.java

License:Open Source License

public static void main(String[] args) {
    final String queue_name = "testQueue" + new Date().getTime();
    AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

    // first, create a queue (unless it exists already)
    try {//from   w  w w .j  a va 2 s  .  com
        CreateQueueResult cq_result = sqs.createQueue(queue_name);
    } catch (AmazonSQSException e) {
        if (!e.getErrorCode().equals("QueueAlreadyExists")) {
            throw e;
        }
    }

    final String queue_url = sqs.getQueueUrl(queue_name).getQueueUrl();

    // Send some messages to the queue
    for (int i = 0; i < 20; i++) {
        sqs.sendMessage(queue_url, "This is message " + i);
    }

    // change visibility timeout (single)
    changeMessageVisibilitySingle(queue_url, 3600);

    // change visibility timeout (multiple)
    changeMessageVisibilityMultiple(queue_url, 2000);
}

From source file:com.vitembp.embedded.interfaces.AmazonSQSControl.java

License:Open Source License

/**
 * Initializes a new instance of the AmazonSQSControl class.
 * @param queueName The name of the queue to connect to.
 * @param msgParser The parser that handles messages.
 * @param threads The number of message handling threads.
 *///www  .  j  a  va 2 s  .c  om
public AmazonSQSControl(String queueName, Function<String, String> msgParser, int threads) {
    // save thread count
    this.threadCount = threads;

    // create client to use to communicate with sqs
    this.sqsClient = AmazonSQSClientBuilder.defaultClient();

    // save the function which parses messages
    this.messageParser = msgParser;

    // save the name of the queue for this device
    this.queueName = queueName;

    // build DynamoDB client with default credentials
    this.client = AmazonDynamoDBClient.builder().build();
}

From source file:org.duracloud.common.queue.aws.SQSTaskQueue.java

License:Apache License

/**
 * Creates a SQSTaskQueue that serves as a handle to interacting with a
 * remote Amazon SQS Queue./*from ww  w .  ja v a 2s  .  c om*/
 * The AmazonSQSClient will search for Amazon credentials on the system as
 * described here:
 * http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html
 *
 * Moreover, it is possible to set the region to use via the AWS_REGION
 * environment variable or one of the other methods described here:
 * http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-region-selection.html
 */
public SQSTaskQueue(String queueName) {
    this(AmazonSQSClientBuilder.defaultClient(), queueName);
}

From source file:org.duracloud.common.sns.config.SnsSubscriptionManagerConfig.java

License:Apache License

@Bean(destroyMethod = "disconnect", initMethod = "connect")
public SnsSubscriptionManager snsSubscriptionManager(GlobalPropertiesRepo globalPropertiesRepo,
        final List<AccountComponentCache<?>> componentCaches, String appName) {
    try {//  w w w.  j a v  a 2s.c  om

        GlobalProperties props = globalPropertiesRepo.findAll().get(0);
        String queueName = "node-queue-" + appName + "-"
                + Inet4Address.getLocalHost().getHostName().replace(".", "_");
        SnsSubscriptionManager subscriptionManager = new SnsSubscriptionManager(
                AmazonSQSClientBuilder.defaultClient(), AmazonSNSClientBuilder.defaultClient(),
                props.getInstanceNotificationTopicArn(), queueName);

        subscriptionManager.addListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                log.info("message received: " + message);
                log.debug("message body: " + message.getBody());
                JsonFactory factory = new JsonFactory();
                ObjectMapper mapper = new ObjectMapper(factory);
                TypeReference<HashMap<String, String>> typeRef = new TypeReference<HashMap<String, String>>() {
                };
                String body = message.getBody();
                try {
                    Map<String, String> map = mapper.readValue(body, typeRef);
                    AccountChangeEvent event = AccountChangeEvent.deserialize(map.get("Message"));
                    for (AccountComponentCache<?> cache : componentCaches) {
                        cache.onEvent(event);
                    }
                } catch (IOException e) {
                    log.warn("unable to dispatch message: " + message + " : " + e.getMessage(), e);
                }
            }
        });

        return subscriptionManager;
    } catch (UnknownHostException e) {
        throw new DuraCloudRuntimeException(e);
    }
}