All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.sqs.buffered.AmazonSQSBufferedAsyncClient Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package com.amazonaws.services.sqs.buffered;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;

import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.AmazonWebServiceRequest;
import com.amazonaws.ResponseMetadata;
import com.amazonaws.handlers.AsyncHandler;
import com.amazonaws.regions.Region;
import com.amazonaws.services.sqs.AmazonSQSAsync;
import com.amazonaws.services.sqs.model.AddPermissionRequest;
import com.amazonaws.services.sqs.model.AddPermissionResult;
import com.amazonaws.services.sqs.model.ChangeMessageVisibilityBatchRequest;
import com.amazonaws.services.sqs.model.ChangeMessageVisibilityBatchRequestEntry;
import com.amazonaws.services.sqs.model.ChangeMessageVisibilityBatchResult;
import com.amazonaws.services.sqs.model.ChangeMessageVisibilityRequest;
import com.amazonaws.services.sqs.model.ChangeMessageVisibilityResult;
import com.amazonaws.services.sqs.model.CreateQueueRequest;
import com.amazonaws.services.sqs.model.CreateQueueResult;
import com.amazonaws.services.sqs.model.DeleteMessageBatchRequest;
import com.amazonaws.services.sqs.model.DeleteMessageBatchRequestEntry;
import com.amazonaws.services.sqs.model.DeleteMessageBatchResult;
import com.amazonaws.services.sqs.model.DeleteMessageRequest;
import com.amazonaws.services.sqs.model.DeleteMessageResult;
import com.amazonaws.services.sqs.model.DeleteQueueRequest;
import com.amazonaws.services.sqs.model.DeleteQueueResult;
import com.amazonaws.services.sqs.model.GetQueueAttributesRequest;
import com.amazonaws.services.sqs.model.GetQueueAttributesResult;
import com.amazonaws.services.sqs.model.GetQueueUrlRequest;
import com.amazonaws.services.sqs.model.GetQueueUrlResult;
import com.amazonaws.services.sqs.model.ListDeadLetterSourceQueuesRequest;
import com.amazonaws.services.sqs.model.ListDeadLetterSourceQueuesResult;
import com.amazonaws.services.sqs.model.ListQueuesRequest;
import com.amazonaws.services.sqs.model.ListQueuesResult;
import com.amazonaws.services.sqs.model.PurgeQueueRequest;
import com.amazonaws.services.sqs.model.PurgeQueueResult;
import com.amazonaws.services.sqs.model.ReceiveMessageRequest;
import com.amazonaws.services.sqs.model.ReceiveMessageResult;
import com.amazonaws.services.sqs.model.RemovePermissionRequest;
import com.amazonaws.services.sqs.model.RemovePermissionResult;
import com.amazonaws.services.sqs.model.SendMessageBatchRequest;
import com.amazonaws.services.sqs.model.SendMessageBatchRequestEntry;
import com.amazonaws.services.sqs.model.SendMessageBatchResult;
import com.amazonaws.services.sqs.model.SendMessageRequest;
import com.amazonaws.services.sqs.model.SendMessageResult;
import com.amazonaws.services.sqs.model.SetQueueAttributesRequest;
import com.amazonaws.services.sqs.model.SetQueueAttributesResult;
import com.amazonaws.util.VersionInfoUtils;

/**
 * AmazonSQSBufferedAsyncClient provides client-side batching of outgoing sendMessage, deleteMessage
 * and changeMessageVisibility calls. 
* After receiving a call, rather than executing it right away, this client waits for a configurable * period of time ( default=200ms) for other calls of the same type to come in; if such calls do * come in, they are also not executed immediately, but instead are added to the batch. When the * batch becomes full or the timeout period expires, the entire batch is executed at once and the * results are returned to the callers. This method of operation leads to reduced operating costs * (since SQS charges per call and fewer calls are made) and increased overall throughput (since * more work is performed per call, and all fixed costs of making a call are amortized over a * greater amount of work). The cost of this method is increased latency for individual calls, since * calls spend some time waiting on the client side for the potential batch-mates to appear before * they are actually executed.
* This client also performs pre-fetching of messages from SQS. After the first receiveMessage call * is made, the client attempts not only to satisfy that call, but also pre-fetch extra messages to * store in a temporary buffer. Future receiveMessage calls will be satisfied from the buffer, and * only if the buffer is empty will the calling thread have to wait for the messages to be fetched. * The size of the buffer and the maximum number of threads used for prefetching are configurable.
* AmazonSQSBufferedAsyncClient is thread-safe.
*/ public class AmazonSQSBufferedAsyncClient implements AmazonSQSAsync { public static final String USER_AGENT = AmazonSQSBufferedAsyncClient.class.getSimpleName() + "/" + VersionInfoUtils.getVersion(); private final CachingMap buffers = new CachingMap(16, (float) 0.75, true); private final AmazonSQSAsync realSQS; private final QueueBufferConfig bufferConfigExemplar; public AmazonSQSBufferedAsyncClient(AmazonSQSAsync paramRealSQS) { this(paramRealSQS, new QueueBufferConfig()); } // route all future constructors to the most general one, because validation // happens here public AmazonSQSBufferedAsyncClient(AmazonSQSAsync paramRealSQS, QueueBufferConfig config) { config.validate(); realSQS = paramRealSQS; bufferConfigExemplar = config; } /* * (non-Javadoc) * @see com.amazonaws.services.sqs.AmazonSQS#setRegion(com.amazonaws.regions.Region) */ @Override public void setRegion(Region region) throws IllegalArgumentException { realSQS.setRegion(region); } public SetQueueAttributesResult setQueueAttributes(SetQueueAttributesRequest setQueueAttributesRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(setQueueAttributesRequest, USER_AGENT); return realSQS.setQueueAttributes(setQueueAttributesRequest); } public ChangeMessageVisibilityBatchResult changeMessageVisibilityBatch(ChangeMessageVisibilityBatchRequest changeMessageVisibilityBatchRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(changeMessageVisibilityBatchRequest, USER_AGENT); return realSQS.changeMessageVisibilityBatch(changeMessageVisibilityBatchRequest); } public ChangeMessageVisibilityResult changeMessageVisibility(ChangeMessageVisibilityRequest changeMessageVisibilityRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(changeMessageVisibilityRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(changeMessageVisibilityRequest.getQueueUrl()); return buffer.changeMessageVisibilitySync(changeMessageVisibilityRequest); } public SendMessageBatchResult sendMessageBatch(SendMessageBatchRequest sendMessageBatchRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(sendMessageBatchRequest, USER_AGENT); return realSQS.sendMessageBatch(sendMessageBatchRequest); } public SendMessageResult sendMessage(SendMessageRequest sendMessageRequest) throws AmazonServiceException, AmazonClientException { QueueBuffer buffer = getQBuffer(sendMessageRequest.getQueueUrl()); ResultConverter.appendUserAgent(sendMessageRequest, USER_AGENT); return buffer.sendMessageSync(sendMessageRequest); } public ReceiveMessageResult receiveMessage(ReceiveMessageRequest receiveMessageRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(receiveMessageRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(receiveMessageRequest.getQueueUrl()); return buffer.receiveMessageSync(receiveMessageRequest); } public DeleteMessageBatchResult deleteMessageBatch(DeleteMessageBatchRequest deleteMessageBatchRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(deleteMessageBatchRequest, USER_AGENT); return realSQS.deleteMessageBatch(deleteMessageBatchRequest); } public DeleteMessageResult deleteMessage(DeleteMessageRequest deleteMessageRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(deleteMessageRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(deleteMessageRequest.getQueueUrl()); return buffer.deleteMessageSync(deleteMessageRequest); } public void shutdown() { for (QueueBuffer buffer : buffers.values()) { buffer.shutdown(); } realSQS.shutdown(); } public Future changeMessageVisibilityBatchAsync(ChangeMessageVisibilityBatchRequest changeMessageVisibilityBatchRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(changeMessageVisibilityBatchRequest, USER_AGENT); return realSQS.changeMessageVisibilityBatchAsync(changeMessageVisibilityBatchRequest); } public Future changeMessageVisibilityAsync(ChangeMessageVisibilityRequest changeMessageVisibilityRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(changeMessageVisibilityRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(changeMessageVisibilityRequest.getQueueUrl()); return buffer.changeMessageVisibility(changeMessageVisibilityRequest, null); } public Future sendMessageBatchAsync(SendMessageBatchRequest sendMessageBatchRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(sendMessageBatchRequest, USER_AGENT); return realSQS.sendMessageBatchAsync(sendMessageBatchRequest); } public Future sendMessageAsync(SendMessageRequest sendMessageRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(sendMessageRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(sendMessageRequest.getQueueUrl()); return buffer.sendMessage(sendMessageRequest, null); } public Future receiveMessageAsync(ReceiveMessageRequest receiveMessageRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(receiveMessageRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(receiveMessageRequest.getQueueUrl()); return buffer.receiveMessage(receiveMessageRequest, null); } public Future deleteMessageBatchAsync(DeleteMessageBatchRequest deleteMessageBatchRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(deleteMessageBatchRequest, USER_AGENT); return realSQS.deleteMessageBatchAsync(deleteMessageBatchRequest); } public void setEndpoint(String endpoint) throws IllegalArgumentException { realSQS.setEndpoint(endpoint); } public Future setQueueAttributesAsync(SetQueueAttributesRequest setQueueAttributesRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(setQueueAttributesRequest, USER_AGENT); return realSQS.setQueueAttributesAsync(setQueueAttributesRequest); } public Future getQueueUrlAsync(GetQueueUrlRequest getQueueUrlRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(getQueueUrlRequest, USER_AGENT); return realSQS.getQueueUrlAsync(getQueueUrlRequest); } public Future removePermissionAsync(RemovePermissionRequest removePermissionRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(removePermissionRequest, USER_AGENT); return realSQS.removePermissionAsync(removePermissionRequest); } public GetQueueUrlResult getQueueUrl(GetQueueUrlRequest getQueueUrlRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(getQueueUrlRequest, USER_AGENT); return realSQS.getQueueUrl(getQueueUrlRequest); } public RemovePermissionResult removePermission(RemovePermissionRequest removePermissionRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(removePermissionRequest, USER_AGENT); return realSQS.removePermission(removePermissionRequest); } public Future getQueueAttributesAsync(GetQueueAttributesRequest getQueueAttributesRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(getQueueAttributesRequest, USER_AGENT); return realSQS.getQueueAttributesAsync(getQueueAttributesRequest); } public GetQueueAttributesResult getQueueAttributes(GetQueueAttributesRequest getQueueAttributesRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(getQueueAttributesRequest, USER_AGENT); return realSQS.getQueueAttributes(getQueueAttributesRequest); } public Future purgeQueueAsync(PurgeQueueRequest purgeQueueRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(purgeQueueRequest, USER_AGENT); return realSQS.purgeQueueAsync(purgeQueueRequest); } public PurgeQueueResult purgeQueue(PurgeQueueRequest purgeQueueRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(purgeQueueRequest, USER_AGENT); return realSQS.purgeQueue(purgeQueueRequest); } public Future deleteQueueAsync(DeleteQueueRequest deleteQueueRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(deleteQueueRequest, USER_AGENT); return realSQS.deleteQueueAsync(deleteQueueRequest); } public DeleteQueueResult deleteQueue(DeleteQueueRequest deleteQueueRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(deleteQueueRequest, USER_AGENT); return realSQS.deleteQueue(deleteQueueRequest); } public Future listQueuesAsync(ListQueuesRequest listQueuesRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(listQueuesRequest, USER_AGENT); return realSQS.listQueuesAsync(listQueuesRequest); } public ListQueuesResult listQueues(ListQueuesRequest listQueuesRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(listQueuesRequest, USER_AGENT); return realSQS.listQueues(listQueuesRequest); } public Future createQueueAsync(CreateQueueRequest createQueueRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(createQueueRequest, USER_AGENT); return realSQS.createQueueAsync(createQueueRequest); } public CreateQueueResult createQueue(CreateQueueRequest createQueueRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(createQueueRequest, USER_AGENT); return realSQS.createQueue(createQueueRequest); } public Future addPermissionAsync(AddPermissionRequest addPermissionRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(addPermissionRequest, USER_AGENT); return realSQS.addPermissionAsync(addPermissionRequest); } @Override public Future addPermissionAsync(String queueUrl, String label, List aWSAccountIds, List actions) { return addPermissionAsync(new AddPermissionRequest(queueUrl, label, aWSAccountIds, actions)); } @Override public Future addPermissionAsync(String queueUrl, String label, List aWSAccountIds, List actions, AsyncHandler asyncHandler) { return addPermissionAsync(new AddPermissionRequest(queueUrl, label, aWSAccountIds, actions), asyncHandler); } public AddPermissionResult addPermission(AddPermissionRequest addPermissionRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(addPermissionRequest, USER_AGENT); return realSQS.addPermission(addPermissionRequest); } public ListQueuesResult listQueues() throws AmazonServiceException, AmazonClientException { return realSQS.listQueues(); } public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { ResultConverter.appendUserAgent(request, USER_AGENT); return realSQS.getCachedResponseMetadata(request); } public Future deleteMessageAsync(DeleteMessageRequest deleteMessageRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(deleteMessageRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(deleteMessageRequest.getQueueUrl()); return buffer.deleteMessage(deleteMessageRequest, null); } /** * Returns (creating it if necessary) a queue buffer for a particular queue Since we are only * storing a limited number of queue buffers, it is possible that as a result of calling this * method the least recently used queue buffer will be removed from our queue buffer cache * * @return a queue buffer associated with the provided queue URL. Never null */ private synchronized QueueBuffer getQBuffer(String qUrl) { QueueBuffer toReturn = buffers.get(qUrl); if (null == toReturn) { QueueBufferConfig config = new QueueBufferConfig(bufferConfigExemplar); toReturn = new QueueBuffer(config, qUrl, realSQS); buffers.put(qUrl, toReturn); } return toReturn; } class CachingMap extends LinkedHashMap { private static final long serialVersionUID = 1; private static final int MAX_ENTRIES = 100; public CachingMap(int initial, float loadFactor, boolean accessOrder) { super(initial, loadFactor, accessOrder); } protected boolean removeEldestEntry(java.util.Map.Entry eldest) { return size() > MAX_ENTRIES; } } public Future changeMessageVisibilityAsync(ChangeMessageVisibilityRequest changeMessageVisibilityRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(changeMessageVisibilityRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(changeMessageVisibilityRequest.getQueueUrl()); return buffer.changeMessageVisibility(changeMessageVisibilityRequest, asyncHandler); } @Override public Future changeMessageVisibilityAsync(String queueUrl, String receiptHandle, Integer visibilityTimeout) { return changeMessageVisibilityAsync(new ChangeMessageVisibilityRequest( queueUrl, receiptHandle, visibilityTimeout)); } @Override public Future changeMessageVisibilityAsync(String queueUrl, String receiptHandle, Integer visibilityTimeout, AsyncHandler asyncHandler) { return changeMessageVisibilityAsync(new ChangeMessageVisibilityRequest( queueUrl, receiptHandle, visibilityTimeout), asyncHandler); } public Future sendMessageAsync(SendMessageRequest sendMessageRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(sendMessageRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(sendMessageRequest.getQueueUrl()); return buffer.sendMessage(sendMessageRequest, asyncHandler); } @Override public Future sendMessageAsync(String queueUrl, String messageBody) { return sendMessageAsync(new SendMessageRequest(queueUrl, messageBody)); } @Override public Future sendMessageAsync(String queueUrl, String messageBody, AsyncHandler asyncHandler) { return sendMessageAsync(new SendMessageRequest(queueUrl, messageBody), asyncHandler); } public Future receiveMessageAsync(ReceiveMessageRequest receiveMessageRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(receiveMessageRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(receiveMessageRequest.getQueueUrl()); return buffer.receiveMessage(receiveMessageRequest, asyncHandler); } @Override public Future receiveMessageAsync(String queueUrl) { return receiveMessageAsync(new ReceiveMessageRequest(queueUrl)); } @Override public Future receiveMessageAsync( String queueUrl, AsyncHandler asyncHandler) { return receiveMessageAsync(new ReceiveMessageRequest(queueUrl), asyncHandler); } public Future deleteMessageAsync(DeleteMessageRequest deleteMessageRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(deleteMessageRequest, USER_AGENT); QueueBuffer buffer = getQBuffer(deleteMessageRequest.getQueueUrl()); return buffer.deleteMessage(deleteMessageRequest, asyncHandler); } @Override public Future deleteMessageAsync(String queueUrl, String receiptHandle) { return deleteMessageAsync(new DeleteMessageRequest(queueUrl, receiptHandle)); } @Override public Future deleteMessageAsync(String queueUrl, String receiptHandle, AsyncHandler asyncHandler) { return deleteMessageAsync(new DeleteMessageRequest(queueUrl, receiptHandle), asyncHandler); } public Future setQueueAttributesAsync(SetQueueAttributesRequest setQueueAttributesRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.setQueueAttributesAsync(setQueueAttributesRequest, asyncHandler); } public Future setQueueAttributesAsync(String queueUrl, java.util.Map attributes) throws AmazonServiceException, AmazonClientException { return realSQS.setQueueAttributesAsync(queueUrl, attributes); } public Future setQueueAttributesAsync(String queueUrl, java.util.Map attributes, com.amazonaws.handlers.AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.setQueueAttributesAsync(queueUrl, attributes, asyncHandler); } public Future changeMessageVisibilityBatchAsync(ChangeMessageVisibilityBatchRequest changeMessageVisibilityBatchRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.changeMessageVisibilityBatchAsync(changeMessageVisibilityBatchRequest, asyncHandler); } @Override public Future changeMessageVisibilityBatchAsync( String queueUrl, List entries) { return changeMessageVisibilityBatchAsync(new ChangeMessageVisibilityBatchRequest( queueUrl, entries)); } @Override public Future changeMessageVisibilityBatchAsync( String queueUrl, List entries, AsyncHandler asyncHandler) { return changeMessageVisibilityBatchAsync(new ChangeMessageVisibilityBatchRequest( queueUrl, entries), asyncHandler); } public Future getQueueUrlAsync(GetQueueUrlRequest getQueueUrlRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.getQueueUrlAsync(getQueueUrlRequest, asyncHandler); } @Override public Future getQueueUrlAsync(String queueName) { return getQueueUrlAsync(new GetQueueUrlRequest(queueName)); } @Override public Future getQueueUrlAsync(String queueName, AsyncHandler asyncHandler) { return getQueueUrlAsync(new GetQueueUrlRequest(queueName), asyncHandler); } public Future removePermissionAsync(RemovePermissionRequest removePermissionRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.removePermissionAsync(removePermissionRequest, asyncHandler); } @Override public Future removePermissionAsync(String queueUrl, String label) { return removePermissionAsync(new RemovePermissionRequest(queueUrl, label)); } @Override public Future removePermissionAsync(String queueUrl, String label, AsyncHandler asyncHandler) { return removePermissionAsync(new RemovePermissionRequest(queueUrl, label), asyncHandler); } public Future getQueueAttributesAsync(GetQueueAttributesRequest getQueueAttributesRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.getQueueAttributesAsync(getQueueAttributesRequest, asyncHandler); } @Override public Future getQueueAttributesAsync( String queueUrl, List attributeNames) { return getQueueAttributesAsync(new GetQueueAttributesRequest(queueUrl, attributeNames)); } @Override public Future getQueueAttributesAsync( String queueUrl, List attributeNames, AsyncHandler asyncHandler) { return getQueueAttributesAsync(new GetQueueAttributesRequest(queueUrl, attributeNames), asyncHandler); } public Future sendMessageBatchAsync(SendMessageBatchRequest sendMessageBatchRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.sendMessageBatchAsync(sendMessageBatchRequest, asyncHandler); } @Override public Future sendMessageBatchAsync( String queueUrl, List entries) { return sendMessageBatchAsync(new SendMessageBatchRequest(queueUrl, entries)); } @Override public Future sendMessageBatchAsync( String queueUrl, List entries, AsyncHandler asyncHandler) { return sendMessageBatchAsync(new SendMessageBatchRequest(queueUrl, entries), asyncHandler); } public Future purgeQueueAsync(PurgeQueueRequest purgeQueueRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.purgeQueueAsync(purgeQueueRequest, asyncHandler); } public Future deleteQueueAsync(DeleteQueueRequest deleteQueueRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.deleteQueueAsync(deleteQueueRequest, asyncHandler); } @Override public Future deleteQueueAsync(String queueUrl) { return deleteQueueAsync(new DeleteQueueRequest(queueUrl)); } @Override public Future deleteQueueAsync(String queueUrl, AsyncHandler asyncHandler) { return deleteQueueAsync(new DeleteQueueRequest(queueUrl), asyncHandler); } public Future listQueuesAsync(ListQueuesRequest listQueuesRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.listQueuesAsync(listQueuesRequest, asyncHandler); } @Override public Future listQueuesAsync() { return listQueuesAsync(new ListQueuesRequest()); } @Override public Future listQueuesAsync( AsyncHandler asyncHandler) { return listQueuesAsync(new ListQueuesRequest(), asyncHandler); } @Override public Future listQueuesAsync(String queueNamePrefix) { return listQueuesAsync(new ListQueuesRequest(queueNamePrefix)); } @Override public Future listQueuesAsync(String queueNamePrefix, AsyncHandler asyncHandler) { return listQueuesAsync(new ListQueuesRequest(queueNamePrefix), asyncHandler); } public Future deleteMessageBatchAsync(DeleteMessageBatchRequest deleteMessageBatchRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.deleteMessageBatchAsync(deleteMessageBatchRequest, asyncHandler); } @Override public Future deleteMessageBatchAsync( String queueUrl, List entries) { return deleteMessageBatchAsync(new DeleteMessageBatchRequest(queueUrl, entries)); } @Override public Future deleteMessageBatchAsync( String queueUrl, List entries, AsyncHandler asyncHandler) { return deleteMessageBatchAsync(new DeleteMessageBatchRequest(queueUrl, entries), asyncHandler); } public Future createQueueAsync(CreateQueueRequest createQueueRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.createQueueAsync(createQueueRequest, asyncHandler); } @Override public Future createQueueAsync(String queueName) { return createQueueAsync(new CreateQueueRequest(queueName)); } @Override public Future createQueueAsync(String queueName, AsyncHandler asyncHandler) { return createQueueAsync(new CreateQueueRequest(queueName), asyncHandler); } public Future addPermissionAsync(AddPermissionRequest addPermissionRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.addPermissionAsync(addPermissionRequest, asyncHandler); } @Override public ListDeadLetterSourceQueuesResult listDeadLetterSourceQueues(ListDeadLetterSourceQueuesRequest listDeadLetterSourceQueuesRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(listDeadLetterSourceQueuesRequest, USER_AGENT); return realSQS.listDeadLetterSourceQueues(listDeadLetterSourceQueuesRequest); } @Override public Future listDeadLetterSourceQueuesAsync(ListDeadLetterSourceQueuesRequest listDeadLetterSourceQueuesRequest) throws AmazonServiceException, AmazonClientException { ResultConverter.appendUserAgent(listDeadLetterSourceQueuesRequest, USER_AGENT); return realSQS.listDeadLetterSourceQueuesAsync(listDeadLetterSourceQueuesRequest); } @Override public Future listDeadLetterSourceQueuesAsync(ListDeadLetterSourceQueuesRequest listDeadLetterSourceQueuesRequest, AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return realSQS.listDeadLetterSourceQueuesAsync(listDeadLetterSourceQueuesRequest, asyncHandler); } @Override public SetQueueAttributesResult setQueueAttributes(String queueUrl, Map attributes) throws AmazonServiceException, AmazonClientException { return setQueueAttributes(new SetQueueAttributesRequest(queueUrl, attributes)); } @Override public ChangeMessageVisibilityBatchResult changeMessageVisibilityBatch(String queueUrl, List entries) throws AmazonServiceException, AmazonClientException { return changeMessageVisibilityBatch(new ChangeMessageVisibilityBatchRequest(queueUrl, entries)); } @Override public ChangeMessageVisibilityResult changeMessageVisibility(String queueUrl, String receiptHandle, Integer visibilityTimeout) throws AmazonServiceException, AmazonClientException { return changeMessageVisibility(new ChangeMessageVisibilityRequest(queueUrl, receiptHandle, visibilityTimeout)); } @Override public GetQueueUrlResult getQueueUrl(String queueName) throws AmazonServiceException, AmazonClientException { return getQueueUrl(new GetQueueUrlRequest(queueName)); } @Override public RemovePermissionResult removePermission(String queueUrl, String label) throws AmazonServiceException, AmazonClientException { return removePermission(new RemovePermissionRequest(queueUrl, label)); } @Override public SendMessageBatchResult sendMessageBatch(String queueUrl, List entries) throws AmazonServiceException, AmazonClientException { return sendMessageBatch(new SendMessageBatchRequest(queueUrl, entries)); } @Override public DeleteQueueResult deleteQueue(String queueUrl) throws AmazonServiceException, AmazonClientException { return deleteQueue(new DeleteQueueRequest(queueUrl)); } @Override public SendMessageResult sendMessage(String queueUrl, String messageBody) throws AmazonServiceException, AmazonClientException { return sendMessage(new SendMessageRequest(queueUrl, messageBody)); } @Override public ReceiveMessageResult receiveMessage(String queueUrl) throws AmazonServiceException, AmazonClientException { return receiveMessage(new ReceiveMessageRequest(queueUrl)); } @Override public ListQueuesResult listQueues(String queueNamePrefix) throws AmazonServiceException, AmazonClientException { return listQueues(new ListQueuesRequest(queueNamePrefix)); } @Override public DeleteMessageBatchResult deleteMessageBatch(String queueUrl, List entries) throws AmazonServiceException, AmazonClientException { return deleteMessageBatch(new DeleteMessageBatchRequest(queueUrl, entries)); } @Override public CreateQueueResult createQueue(String queueName) throws AmazonServiceException, AmazonClientException { return createQueue(new CreateQueueRequest(queueName)); } @Override public AddPermissionResult addPermission(String queueUrl, String label, List aWSAccountIds, List actions) throws AmazonServiceException, AmazonClientException { return addPermission(new AddPermissionRequest(queueUrl, label, aWSAccountIds, actions)); } @Override public DeleteMessageResult deleteMessage(String queueUrl, String receiptHandle) throws AmazonServiceException, AmazonClientException { return deleteMessage(new DeleteMessageRequest(queueUrl, receiptHandle)); } @Override public GetQueueAttributesResult getQueueAttributes(String queueUrl, List attributeNames) { return getQueueAttributes(new GetQueueAttributesRequest(queueUrl, attributeNames)); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy