Example usage for com.amazonaws.services.sqs.model SendMessageBatchRequestEntry addMessageAttributesEntry

List of usage examples for com.amazonaws.services.sqs.model SendMessageBatchRequestEntry addMessageAttributesEntry

Introduction

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

Prototype

public SendMessageBatchRequestEntry addMessageAttributesEntry(String key, MessageAttributeValue value) 

Source Link

Usage

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

License:Open Source License

private SendMessageBatchRequestEntry storeMessageInS3(SendMessageBatchRequestEntry batchEntry) {

    checkMessageAttributes(batchEntry.getMessageAttributes());

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

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

    Long messageContentSize = getStringSizeInBytes(messageContentStr);

    // Add a new message attribute as a flag
    MessageAttributeValue messageAttributeValue = new MessageAttributeValue();
    messageAttributeValue.setDataType("Number");
    messageAttributeValue.setStringValue(messageContentSize.toString());
    batchEntry.addMessageAttributesEntry(SQSExtendedClientConstants.RESERVED_ATTRIBUTE_NAME,
            messageAttributeValue);//  www.  j  ava  2s. 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.
    batchEntry.setMessageBody(s3PointerStr);

    return batchEntry;
}