List of usage examples for com.amazonaws.services.sqs.model SendMessageRequest addMessageAttributesEntry
public SendMessageRequest addMessageAttributesEntry(String key, MessageAttributeValue value)
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"); } }