List of usage examples for com.amazonaws.services.sqs.model SendMessageRequest getMessageBody
public String getMessageBody()
The message to send.
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()); }