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

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

Introduction

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

Prototype


public java.util.Map<String, MessageAttributeValue> getMessageAttributes() 

Source Link

Document

Each message attribute consists of a Name, Type, and Value.

Usage

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;
}