Example usage for com.amazonaws.services.sqs.model ReceiveMessageRequest getMaxNumberOfMessages

List of usage examples for com.amazonaws.services.sqs.model ReceiveMessageRequest getMaxNumberOfMessages

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs.model ReceiveMessageRequest getMaxNumberOfMessages.

Prototype


public Integer getMaxNumberOfMessages() 

Source Link

Document

The maximum number of messages to return.

Usage

From source file:org.apache.camel.component.aws.sqs.AmazonSQSClientMock.java

License:Apache License

@Override
public ReceiveMessageResult receiveMessage(ReceiveMessageRequest receiveMessageRequest)
        throws AmazonServiceException, AmazonClientException {
    Integer maxNumberOfMessages = receiveMessageRequest.getMaxNumberOfMessages() != null
            ? receiveMessageRequest.getMaxNumberOfMessages()
            : Integer.MAX_VALUE;/*  w  w w  . j a  va  2s  .co m*/
    ReceiveMessageResult result = new ReceiveMessageResult();
    Collection<Message> resultMessages = new ArrayList<Message>();

    synchronized (messages) {
        int fetchSize = 0;
        for (Iterator<Message> iterator = messages.iterator(); iterator.hasNext()
                && fetchSize < maxNumberOfMessages; fetchSize++) {
            Message rc = iterator.next();
            resultMessages.add(rc);
            iterator.remove();
            scheduleCancelInflight(receiveMessageRequest.getQueueUrl(), rc);
        }
    }

    result.setMessages(resultMessages);
    return result;
}

From source file:org.apache.camel.itest.osgi.aws.AmazonSQSClientMock.java

License:Apache License

@Override
public ReceiveMessageResult receiveMessage(ReceiveMessageRequest receiveMessageRequest)
        throws AmazonServiceException, AmazonClientException {
    Integer maxNumberOfMessages = receiveMessageRequest.getMaxNumberOfMessages() != null
            ? receiveMessageRequest.getMaxNumberOfMessages()
            : Integer.MAX_VALUE;//from   w  w w.j  av  a  2s  .  co  m
    ReceiveMessageResult result = new ReceiveMessageResult();
    Collection<Message> resultMessages = new ArrayList<Message>();

    synchronized (messages) {
        int fetchSize = 0;
        for (Iterator<Message> iterator = messages.iterator(); iterator.hasNext()
                && fetchSize < maxNumberOfMessages; fetchSize++) {
            resultMessages.add(iterator.next());
            iterator.remove();
        }
    }

    result.setMessages(resultMessages);
    return result;
}

From source file:org.flite.mock.amazonaws.sqs.AmazonSQSMock.java

License:Open Source License

public ReceiveMessageResult receiveMessage(final ReceiveMessageRequest request)
        throws AmazonServiceException, AmazonClientException {
    if (request == null) {
        throw new AmazonClientException("Null ReceiveMessageRequest");
    }/*  w w  w. jav  a 2  s . co m*/
    final String queueUrl = request.getQueueUrl();
    checkURLForException(queueUrl);
    // Per documentation throws OverLimitException, but in my testing,
    // they actually only throw AmazonServiceException
    final Integer max = request.getMaxNumberOfMessages();
    if (max == null || max < 1 || max > 10) {
        throw new AmazonServiceException("MaxNumberOfMessages must be a value between [1,10]");
    }
    final ReceiveMessageResult result = new ReceiveMessageResult();
    int received = 0;
    boolean avail = true;
    while (received < request.getMaxNumberOfMessages() && avail) {
        try {
            final Message msg = allQueues.get(queueUrl).remove(0);
            received++;
            msg.setReceiptHandle(RECEIPT_ID_PREFIX + incrementer.getAndIncrement());
            retrievedMessages.get(queueUrl).put(msg.getReceiptHandle(), msg);
            result.withMessages(msg);
        } catch (Exception ex) {
            avail = false;
        }
    }
    return result;
}