/** * <p> * Amazon SQS supports the following logical data types: <code>String</code>, <code>Number</code>, and * <code>Binary</code>. For the <code>Number</code> data type, you must use <code>StringValue</code>. * </p> * <p> * You can also append custom labels. For more information, see <a * href="http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html" * >Amazon SQS Message Attributes</a> in the <i>Amazon Simple Queue Service Developer Guide</i>. * </p> * * @param dataType * Amazon SQS supports the following logical data types: <code>String</code>, <code>Number</code>, and * <code>Binary</code>. For the <code>Number</code> data type, you must use <code>StringValue</code>.</p> * <p> * You can also append custom labels. For more information, see <a href= * "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html" * >Amazon SQS Message Attributes</a> in the <i>Amazon Simple Queue Service Developer Guide</i>. * @return Returns a reference to this object so that method calls can be chained together. */ public MessageAttributeValue withDataType(String dataType) { setDataType(dataType); return this; }
mav.setDataType("String"); mav.setStringValue(context.getProperty(descriptor).evaluateAttributeExpressions(flowFile).getValue()); messageAttributes.put(descriptor.getName(), mav);
messageAttributeValue.setDataType(StringStaxUnmarshaller.getInstance().unmarshall(context)); continue;
/** * <p> * Amazon SQS supports the following logical data types: <code>String</code>, <code>Number</code>, and * <code>Binary</code>. For the <code>Number</code> data type, you must use <code>StringValue</code>. * </p> * <p> * You can also append custom labels. For more information, see <a * href="http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html" * >Amazon SQS Message Attributes</a> in the <i>Amazon Simple Queue Service Developer Guide</i>. * </p> * * @param dataType * Amazon SQS supports the following logical data types: <code>String</code>, <code>Number</code>, and * <code>Binary</code>. For the <code>Number</code> data type, you must use <code>StringValue</code>.</p> * <p> * You can also append custom labels. For more information, see <a href= * "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html" * >Amazon SQS Message Attributes</a> in the <i>Amazon Simple Queue Service Developer Guide</i>. * @return Returns a reference to this object so that method calls can be chained together. */ public MessageAttributeValue withDataType(String dataType) { setDataType(dataType); return this; }
/** * Convenience method for adding a single string attribute. */ private void addStringAttribute(Map<String, MessageAttributeValue> messageAttributes, String key, String value) { MessageAttributeValue messageAttributeValue = new MessageAttributeValue(); messageAttributeValue.setDataType(SQSMessagingClientConstants.STRING); messageAttributeValue.setStringValue(value); messageAttributes.put(key, messageAttributeValue); }
messageAttributeValue.setDataType(StringStaxUnmarshaller.getInstance() .unmarshall(context)); continue;
MessageAttributeValue messageAttributeValue = new MessageAttributeValue(); messageAttributeValue.setDataType(propertyObject.getType()); messageAttributeValue.setStringValue(propertyObject.getStringMessageAttributeValue());
public static String sendMessage(String relativeQueueUrl, String message, Map<String,CQSMessageAttribute> messageAttributes) throws Exception { long ts1 = System.currentTimeMillis(); String receiptHandle = null; if (useInlineApiCalls) { receiptHandle = CQSAPI.sendMessage(cnsInternal.getUserId(), relativeQueueUrl, message, null, messageAttributes); } else { String absoluteQueueUrl = Util.getAbsoluteQueueUrlForRelativeUrl(relativeQueueUrl); SendMessageRequest sendMessageRequest = new SendMessageRequest(absoluteQueueUrl, message); if (messageAttributes != null) { for (String messageAttributeName : messageAttributes.keySet()) { MessageAttributeValue value = new MessageAttributeValue(); value.setDataType(messageAttributes.get(messageAttributeName).getDataType()); value.setStringValue(messageAttributes.get(messageAttributeName).getStringValue()); sendMessageRequest.addMessageAttributesEntry(messageAttributeName, value); } } SendMessageResult sendMessageResult = sqs.sendMessage(sendMessageRequest); receiptHandle = sendMessageResult.getMessageId(); } long ts2 = System.currentTimeMillis(); CMBControllerServlet.valueAccumulator.addToCounter(AccumulatorName.CNSCQSTime, ts2 - ts1); logger.debug("event=send_message message_id=" + receiptHandle); return receiptHandle; }
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); // 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; }
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); // 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; }
for (String messageAttributeName : messageAttributes.keySet()) { MessageAttributeValue value = new MessageAttributeValue(); value.setDataType(messageAttributes.get(messageAttributeName).getDataType()); value.setStringValue(messageAttributes.get(messageAttributeName).getStringValue()); sendMessageRequest.addMessageAttributesEntry(messageAttributeName, value);
for (String messageAttributeName : messageAttributes.keySet()) { MessageAttributeValue value = new MessageAttributeValue(); value.setDataType(messageAttributes.get(messageAttributeName).getDataType()); value.setStringValue(messageAttributes.get(messageAttributeName).getStringValue()); sendMessageRequest.addMessageAttributesEntry(messageAttributeName, value);
mav.setDataType("String"); mav.setStringValue(context.getProperty(descriptor).evaluateAttributeExpressions(flowFile).getValue()); messageAttributes.put(descriptor.getName(), mav);
messageAttributeValue.setDataType(StringStaxUnmarshaller.getInstance().unmarshall(context)); continue;
messageAttributeValue.setDataType(StringStaxUnmarshaller.getInstance() .unmarshall(context)); continue;