Example usage for com.amazonaws.services.sqs.model SendMessageRequest getMessageBody

List of usage examples for com.amazonaws.services.sqs.model SendMessageRequest getMessageBody

Introduction

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

Prototype


public String getMessageBody() 

Source Link

Document

The message to send.

Usage

From source file:com.amazon.sqs.javamessaging.AmazonSQSExtendedClient.java

License:Open Source License

/**
 * <p>//w  ww  . j ava 2s .  co m
 * Delivers a message to the specified queue and uploads the message payload
 * to Amazon S3 if necessary.
 * </p>
 * <p>
 * <b>IMPORTANT:</b> The following list shows the characters (in Unicode)
 * allowed in your message, according to the W3C XML specification. For more
 * information, go to http://www.w3.org/TR/REC-xml/#charsets If you send any
 * characters not included in the list, your request will be rejected. #x9 |
 * #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to #x10FFFF]
 * </p>
 *
 * <b>IMPORTANT:</b> The input object may be modified by the method. </p>
 *
 * @param sendMessageRequest
 *            Container for the necessary parameters to execute the
 *            SendMessage service method on AmazonSQS.
 * 
 * @return The response from the SendMessage service method, as returned by
 *         AmazonSQS.
 * 
 * @throws InvalidMessageContentsException
 * @throws UnsupportedOperationException
 *
 * @throws AmazonClientException
 *             If any internal errors are encountered inside the client
 *             while attempting to make the request or handle the response.
 *             For example if a network connection is not available.
 * @throws AmazonServiceException
 *             If an error response is returned by AmazonSQS indicating
 *             either a problem with the data in the request, or a server
 *             side issue.
 */
public SendMessageResult sendMessage(SendMessageRequest sendMessageRequest) {

    if (sendMessageRequest == null) {
        String errorMessage = "sendMessageRequest cannot be null.";
        LOG.error(errorMessage);
        throw new AmazonClientException(errorMessage);
    }

    sendMessageRequest.getRequestClientOptions().appendUserAgent(SQSExtendedClientConstants.USER_AGENT_HEADER);

    if (!clientConfiguration.isLargePayloadSupportEnabled()) {
        return super.sendMessage(sendMessageRequest);
    }

    if (sendMessageRequest.getMessageBody() == null || "".equals(sendMessageRequest.getMessageBody())) {
        String errorMessage = "messageBody cannot be null or empty.";
        LOG.error(errorMessage);
        throw new AmazonClientException(errorMessage);
    }

    if (clientConfiguration.isAlwaysThroughS3() || isLarge(sendMessageRequest)) {
        sendMessageRequest = storeMessageInS3(sendMessageRequest);
    }
    return super.sendMessage(sendMessageRequest);
}

From source file:com.amazon.sqs.javamessaging.AmazonSQSExtendedClient.java

License:Open Source License

private boolean isLarge(SendMessageRequest sendMessageRequest) {
    int msgAttributesSize = getMsgAttributesSize(sendMessageRequest.getMessageAttributes());
    long msgBodySize = getStringSizeInBytes(sendMessageRequest.getMessageBody());
    long totalMsgSize = msgAttributesSize + msgBodySize;
    return (totalMsgSize > clientConfiguration.getMessageSizeThreshold());
}

From source file:com.amazon.sqs.javamessaging.AmazonSQSExtendedClient.java

License:Open Source License

private SendMessageRequest storeMessageInS3(SendMessageRequest sendMessageRequest) {

    checkMessageAttributes(sendMessageRequest.getMessageAttributes());

    String s3Key = UUID.randomUUID().toString();

    // Read the content of the message from message body
    String messageContentStr = sendMessageRequest.getMessageBody();

    Long messageContentSize = getStringSizeInBytes(messageContentStr);

    // Add a new message attribute as a flag
    MessageAttributeValue messageAttributeValue = new MessageAttributeValue();
    messageAttributeValue.setDataType("Number");
    messageAttributeValue.setStringValue(messageContentSize.toString());
    sendMessageRequest.addMessageAttributesEntry(SQSExtendedClientConstants.RESERVED_ATTRIBUTE_NAME,
            messageAttributeValue);/* w w w.j  a  v a2  s.  co m*/

    // Store the message content in S3.
    storeTextInS3(s3Key, messageContentStr, messageContentSize);
    LOG.info("S3 object created, Bucket name: " + clientConfiguration.getS3BucketName() + ", Object key: "
            + s3Key + ".");

    // Convert S3 pointer (bucket name, key, etc) to JSON string
    MessageS3Pointer s3Pointer = new MessageS3Pointer(clientConfiguration.getS3BucketName(), s3Key);

    String s3PointerStr = getJSONFromS3Pointer(s3Pointer);

    // Storing S3 pointer in the message body.
    sendMessageRequest.setMessageBody(s3PointerStr);

    return sendMessageRequest;
}

From source file:com.clicktravel.infrastructure.messaging.aws.sqs.SendMessageRequestArgumentMatcher.java

License:Apache License

@Override
public boolean matches(final Object argument) {
    if (argument instanceof SendMessageRequest) {
        final SendMessageRequest request = (SendMessageRequest) argument;

        if (!message.equals(request.getMessageBody())) {
            return false;
        }//from  w  w w .  j  a va2 s.c  om

        if (!queueUrl.equals(request.getQueueUrl())) {
            return false;
        }

        return true;
    }

    return false;
}

From source file:com.clicktravel.infrastructure.messaging.aws.sqs.SqsQueueResource.java

License:Apache License

private void doSendRequest(final SendMessageRequest sendMessageRequest) throws AmazonClientException {
    amazonSqsClient.sendMessage(sendMessageRequest);
    logger.trace("Successfully sent message: Payload=" + sendMessageRequest.getMessageBody()
            + "] to SQS queue: [" + queueName + "]");
}

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

License:Apache License

@Override
public SendMessageResult sendMessage(SendMessageRequest sendMessageRequest)
        throws AmazonServiceException, AmazonClientException {
    Message message = new Message();
    message.setBody(sendMessageRequest.getMessageBody());
    message.setMD5OfBody("6a1559560f67c5e7a7d5d838bf0272ee");
    message.setMessageId("f6fb6f99-5eb2-4be4-9b15-144774141458");
    message.setReceiptHandle(/* ww w . j a v a 2  s .  c om*/
            "0NNAq8PwvXsyZkR6yu4nQ07FGxNmOBWi5zC9+4QMqJZ0DJ3gVOmjI2Gh/oFnb0IeJqy5Zc8kH4JX7GVpfjcEDjaAPSeOkXQZRcaBqt"
                    + "4lOtyfj0kcclVV/zS7aenhfhX5Ixfgz/rHhsJwtCPPvTAdgQFGYrqaHly+etJiawiNPVc=");

    synchronized (messages) {
        messages.add(message);
    }

    SendMessageResult result = new SendMessageResult();
    result.setMessageId("f6fb6f99-5eb2-4be4-9b15-144774141458");
    result.setMD5OfMessageBody("6a1559560f67c5e7a7d5d838bf0272ee");
    return result;
}

From source file:org.apache.usergrid.persistence.queue.impl.SNSQueueManagerImpl.java

License:Apache License

@Override
public <T extends Serializable> void sendMessageToLocalRegion(final T body) throws IOException {

    if (sqsAsync == null) {
        logger.error("SQS client is null, perhaps it failed to initialize successfully");
        return;//from  w  w  w. j a  v  a  2s .c o m
    }
    final String stringBody = toString(body);

    String url = getReadQueue().getUrl();

    if (logger.isTraceEnabled()) {
        logger.trace("Publishing Message...{} to url: {}", stringBody, url);
    }

    SendMessageRequest request = new SendMessageRequest(url, stringBody);

    sqsAsync.sendMessageAsync(request, new AsyncHandler<SendMessageRequest, SendMessageResult>() {

        @Override
        public void onError(final Exception e) {

            logger.error("Error sending message... {}", e);
        }

        @Override
        public void onSuccess(final SendMessageRequest request, final SendMessageResult sendMessageResult) {
            if (logger.isTraceEnabled()) {
                logger.trace("Successfully send... messageBody=[{}],  url=[{}]", request.getMessageBody(),
                        request.getQueueUrl());
            }
        }
    });
}

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

License:Open Source License

public SendMessageResult sendMessage(final SendMessageRequest request)
        throws AmazonServiceException, AmazonClientException {
    if (request == null) {
        throw new AmazonClientException("Null SendMessageRequest");
    }//from   w w w . j  av  a 2s . c o m
    final String queueUrl = request.getQueueUrl();
    checkURLForException(queueUrl);
    checkStringForExceptionMarker(request.getMessageBody());
    // Ignoring the following exception: InvalidMessageContentsException (thrown for character set conditions?)
    if (!allQueues.containsKey(queueUrl)) {
        throw new AmazonServiceException("Queue Not Found: " + queueUrl);
    }
    final Long seq = incrementer.getAndIncrement();
    final Message msg = new Message().withBody(StringUtils.defaultString(request.getMessageBody()))
            .withMD5OfBody(makeMD5(request.getMessageBody())).withMessageId(MESSAGE_ID_PREFIX + seq);
    allQueues.get(queueUrl).add(msg);
    return new SendMessageResult().withMD5OfMessageBody(msg.getMD5OfBody()).withMessageId(msg.getMessageId());
}