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

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

Introduction

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

Prototype

public SendMessageRequest addMessageAttributesEntry(String key, MessageAttributeValue value) 

Source Link

Usage

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);/*  ww w  .ja va 2 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:net.smartcosmos.plugin.service.aws.queue.AwsQueueService.java

License:Apache License

@Override
public String send(final IQueueRequest queueRequest) {
    Preconditions.checkNotNull(queueRequest.getMessageBody(), "messageBody must not be null");
    Preconditions.checkNotNull(queueRequest.getQueueName(), "queueName must not be null");

    if (onlineFlag) {
        final Region region = assignRegion(sqsAsyncClient);

        String targetQueueName = fetchQueueName(queueRequest);

        String queueUrl = sqsAsyncClient.getQueueUrl(new GetQueueUrlRequest(targetQueueName)).getQueueUrl();
        LOG.debug("Queue URL for queue named {} in region {}: {}", queueRequest.getQueueName(),
                region.getName(), queueUrl);

        SendMessageRequest request = new SendMessageRequest(queueUrl, queueRequest.getMessageBody());

        if (null != queueRequest.getMessageAttributes()) {
            for (Map.Entry<String, String> entry : queueRequest.getMessageAttributes().entrySet()) {
                if (entry.getValue() != null && entry.getValue().length() > 0) {
                    if (entry.getKey().equals(Field.LAST_MODIFIED_TIMESTAMP_FIELD)
                            || entry.getKey().equals(Field.FILE_CONTENT_LENGTH)) {
                        request.addMessageAttributesEntry(entry.getKey(), new MessageAttributeValue()
                                .withDataType("Number").withStringValue(entry.getValue()));
                    } else {
                        request.addMessageAttributesEntry(entry.getKey(), new MessageAttributeValue()
                                .withDataType("String").withStringValue(entry.getValue()));
                    }//from www. ja v a  2s. c  om
                }
            }
        }

        if (queueRequest.getMoniker() != null && queueRequest.getMoniker().length() > 0) {
            request.addMessageAttributesEntry(Field.MONIKER_FIELD, new MessageAttributeValue()
                    .withDataType("String").withStringValue(queueRequest.getMoniker()));
        }

        final String enqueueUrn = "urn:uuid:" + UUID.randomUUID().toString();

        request.addMessageAttributesEntry(Field.QUEUE_URN_FIELD,
                new MessageAttributeValue().withDataType("String.URN").withStringValue(enqueueUrn));

        request.addMessageAttributesEntry(Field.ENTITY_REFERENCE_TYPE,
                new MessageAttributeValue().withDataType("String.EntityReferenceType")
                        .withStringValue(queueRequest.getEntityReferenceType().toString()));

        request.addMessageAttributesEntry(Field.REFERENCE_URN_FIELD, new MessageAttributeValue()
                .withDataType("String.ReferenceUrn").withStringValue(queueRequest.getReferenceUrn()));

        AwsQueueAsyncHandler asyncHandler = new AwsQueueAsyncHandler(queueRequest, region, enqueueUrn);
        sqsAsyncClient.sendMessageAsync(request, asyncHandler);
        return enqueueUrn;

    } else {
        throw new AmazonClientException("AWS Queue Service is not online");
    }
}