List of usage examples for com.amazonaws.services.sqs.model SendMessageRequest getMessageAttributes
public java.util.Map<String, MessageAttributeValue> getMessageAttributes()
Each message attribute consists of a Name
, Type
, and Value
.
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);//from w w w .j a va2s . c o 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:smartthings.brave.sqs.TracingAmazonSQSClient.java
License:Apache License
@Override public SendMessageResult sendMessage(SendMessageRequest sendMessageRequest) { Span oneWay = withEndpoint(tracing.tracer().nextSpan()).kind(Span.Kind.CLIENT).start(); injector.inject(oneWay.context(), sendMessageRequest.getMessageAttributes()); parser.request(sendMessageRequest, oneWay); SendMessageResult result = delegate.sendMessage(sendMessageRequest); // flush after remote call so we don't start one way spans on a request failure oneWay.flush();// w w w .ja v a 2 s . c o m return result; }