Java Examples for com.amazonaws.handlers.AsyncHandler
The following java examples will help you to understand the usage of com.amazonaws.handlers.AsyncHandler. These source code samples are taken from different open source projects.
Example 1
| Project: aws-sdk-java-master File: QueueBuffer.java View source code |
/**
* asynchronously enqueues a message to SQS.
*
* @return a Future object that will be notified when the operation is completed; never null
*/
public Future<SendMessageResult> sendMessage(SendMessageRequest request, AsyncHandler<SendMessageRequest, SendMessageResult> handler) {
QueueBufferCallback<SendMessageRequest, SendMessageResult> callback = null;
if (handler != null) {
callback = new QueueBufferCallback<SendMessageRequest, SendMessageResult>(handler, request);
}
QueueBufferFuture<SendMessageRequest, SendMessageResult> future = sendBuffer.sendMessage(request, callback);
future.setBuffer(this);
return future;
}Example 2
| Project: OpenTripPlanner-master File: SQSTaskStatisticsStore.java View source code |
public void store(TaskStatistics ts) {
try {
String json = objectMapper.writeValueAsString(ts);
SendMessageRequest req = new SendMessageRequest();
req.setMessageBody(json);
req.setQueueUrl(queueUrl);
sqs.sendMessageAsync(req, new AsyncHandler<SendMessageRequest, SendMessageResult>() {
@Override
public void onError(Exception e) {
LOG.error("Error saving stats to SQS", e);
}
@Override
public void onSuccess(SendMessageRequest request, SendMessageResult sendMessageResult) {
/* do nothing */
}
});
} catch (Exception e) {
LOG.error("Error saving stats to SQS", e);
}
}Example 3
| Project: NBS3Sync-master File: S3Receiver.java View source code |
@Override
public void run() {
try {
ReceiveMessageRequest request = new ReceiveMessageRequest();
request.withAttributeNames("SenderId");
request.setQueueUrl(queueUrl);
client.receiveMessageAsync(request, new AsyncHandler<ReceiveMessageRequest, ReceiveMessageResult>() {
@Override
public void onError(Exception e) {
logger.severe(e.getMessage());
}
@Override
public void onSuccess(ReceiveMessageRequest receiveMessageRequest, ReceiveMessageResult receiveMessageResult) {
if (receiveMessageResult.getMessages().size() > 0) {
for (Message message : receiveMessageResult.getMessages()) {
Event event = SQSUtils.convertMessageToEvent(config.getBaseDir(), message);
// Receive the message and delete it
receive(event);
deleteMessage(message.getReceiptHandle());
}
}
}
});
} catch (Exception e) {
logger.severe("Lost connection while receiving message " + e.getMessage());
}
}Example 4
| Project: ame-master File: MetricBatcher.java View source code |
protected void sendBatch(Map<String, Collection<MetricDatum>> datums) {
for (final Map.Entry<String, Collection<MetricDatum>> e : datums.entrySet()) {
for (final List<MetricDatum> batch : Lists.partition(Lists.newLinkedList(e.getValue()), BATCH_SIZE)) {
cloudWatch.putMetricDataAsync(new PutMetricDataRequest().withNamespace(e.getKey()).withMetricData(batch), new AsyncHandler<PutMetricDataRequest, Void>() {
@Override
public void onError(Exception exception) {
LOG.error("PutMetricData failed", exception);
LOG.info("Requeueing metric data.");
queuedDatums.putAll(e.getKey(), batch);
}
@Override
public void onSuccess(PutMetricDataRequest request, Void result) {
LOG.info("Successfully put " + request.getMetricData().size() + " datums for namespace " + request.getNamespace());
LOG.debug("Request", request);
}
});
}
}
}Example 5
| Project: trusted-overlord-master File: TrustedAdvisorClientTest.java View source code |
@Test
public void testGetProfileChecks() throws Exception {
// Capture the parameters when invoking the method describeTrustedAdvisorChecksAsync (first callback)
doAnswer( invocation -> {
DescribeTrustedAdvisorChecksRequest request = invocation.getArgument(0);
AsyncHandler<DescribeTrustedAdvisorChecksRequest, DescribeTrustedAdvisorChecksResult> handler = invocation.getArgument(1);
DescribeTrustedAdvisorChecksResult result = createChecks();
handler.onSuccess(request, result);
Assert.assertThat(request.getLanguage(), is(Locale.ENGLISH.getLanguage()));
return CompletableFuture.completedFuture(result);
}).when(mockClient).describeTrustedAdvisorChecksAsync(any(DescribeTrustedAdvisorChecksRequest.class), any());
// Capture the parameters when invoking the method describeTrustedAdvisorCheckResultAsync (second callback)
DescribeTrustedAdvisorCheckResultResult describeTrustedAdvisorCheckResultResult = createChecksResult();
doAnswer( invocation -> {
DescribeTrustedAdvisorCheckResultRequest request = invocation.getArgument(0);
AsyncHandler<DescribeTrustedAdvisorCheckResultRequest, DescribeTrustedAdvisorCheckResultResult> handler = invocation.getArgument(1);
handler.onSuccess(request, describeTrustedAdvisorCheckResultResult);
Assert.assertThat(request.getLanguage(), is(Locale.ENGLISH.getLanguage()));
return CompletableFuture.completedFuture(describeTrustedAdvisorCheckResultResult);
}).when(mockClient).describeTrustedAdvisorCheckResultAsync(any(DescribeTrustedAdvisorCheckResultRequest.class), any());
// Calls the method
TrustedAdvisorClient trustedClient = TrustedAdvisorClient.withClient(mockClient);
CompletableFuture<ProfileChecks> future = (CompletableFuture<ProfileChecks>) trustedClient.getProfileChecks();
Assert.assertThat(trustedClient.isAutoshutdown(), is(false));
// Waits until the future is complete
Awaitility.await().until(future::isDone);
Assert.assertThat(future.get().getErrors().isEmpty(), is(false));
Assert.assertThat(future.get().getErrors().size(), is(2));
Assert.assertThat(future.get().getErrors().get(0), is("Name 1"));
Assert.assertThat(future.get().getExceptions().isEmpty(), is(true));
Assert.assertThat(future.get().getWarnings().isEmpty(), is(false));
Assert.assertThat(future.get().getWarnings().size(), is(2));
Assert.assertThat(future.get().getWarnings().get(1), is("Name 4"));
verify(mockClient).describeTrustedAdvisorChecksAsync(any(DescribeTrustedAdvisorChecksRequest.class), any());
verify(mockClient, times(4)).describeTrustedAdvisorCheckResultAsync(any(DescribeTrustedAdvisorCheckResultRequest.class), any());
verify(mockClient, never()).shutdown();
}Example 6
| Project: spring-cloud-aws-master File: BufferingCloudWatchMetricSender.java View source code |
private void sendToCloudWatch(Collection<MetricDatum> metricData) {
PutMetricDataRequest putMetricDataRequest = new PutMetricDataRequest().withNamespace(BufferingCloudWatchMetricSender.this.namespace).withMetricData(metricData);
BufferingCloudWatchMetricSender.this.amazonCloudWatchAsync.putMetricDataAsync(putMetricDataRequest, new AsyncHandler<PutMetricDataRequest, PutMetricDataResult>() {
@Override
public void onError(Exception exception) {
LOGGER.error("Error sending metric data.", exception);
}
@Override
public void onSuccess(PutMetricDataRequest request, PutMetricDataResult result) {
LOGGER.debug("Published metric with namespace:{}", request.getNamespace());
}
});
}Example 7
| Project: aws-toolkit-eclipse-master File: MobileAnalyticsBatchClientImpl.java View source code |
/**
* Only one thread can call this method at a time
*/
private void dispatchAllEventsAsync() {
final List<Event> eventsBatch = this.eventQueue.pollAllQueuedEvents();
mobileAnalytics.putEventsAsync(new PutEventsRequest().withClientContext(clientContextString).withEvents(eventsBatch), new AsyncHandler<PutEventsRequest, PutEventsResult>() {
public void onSuccess(PutEventsRequest arg0, PutEventsResult arg1) {
markRequestDone();
}
public void onError(Exception arg0) {
restoreEventsQueue(eventsBatch);
markRequestDone();
}
private void restoreEventsQueue(List<Event> failedBatch) {
MobileAnalyticsBatchClientImpl.this.eventQueue.addToHead(failedBatch);
}
private void markRequestDone() {
MobileAnalyticsBatchClientImpl.this.isSendingPutEventsRequest.set(false);
}
});
}Example 8
| Project: spring-integration-aws-master File: KinesisMessageHandlerTests.java View source code |
@Test
@SuppressWarnings("unchecked")
public void testKinesisMessageHandler() {
Message<?> message = MessageBuilder.withPayload("message").build();
try {
this.kinesisSendChannel.send(message);
} catch (Exception e) {
assertThat(e).isInstanceOf(MessageHandlingException.class);
assertThat(e.getCause()).isInstanceOf(IllegalStateException.class);
assertThat(e.getMessage()).contains("'stream' must not be null for sending a Kinesis record");
}
this.kinesisMessageHandler.setStream("foo");
try {
this.kinesisSendChannel.send(message);
} catch (Exception e) {
assertThat(e).isInstanceOf(MessageHandlingException.class);
assertThat(e.getCause()).isInstanceOf(IllegalStateException.class);
assertThat(e.getMessage()).contains("'partitionKey' must not be null for sending a Kinesis record");
}
message = MessageBuilder.fromMessage(message).setHeader(AwsHeaders.PARTITION_KEY, "fooKey").setHeader(AwsHeaders.SEQUENCE_NUMBER, "10").build();
this.kinesisSendChannel.send(message);
ArgumentCaptor<PutRecordRequest> putRecordRequestArgumentCaptor = ArgumentCaptor.forClass(PutRecordRequest.class);
verify(this.amazonKinesis).putRecordAsync(putRecordRequestArgumentCaptor.capture(), eq((AsyncHandler<PutRecordRequest, PutRecordResult>) this.asyncHandler));
PutRecordRequest putRecordRequest = putRecordRequestArgumentCaptor.getValue();
assertThat(putRecordRequest.getStreamName()).isEqualTo("foo");
assertThat(putRecordRequest.getPartitionKey()).isEqualTo("fooKey");
assertThat(putRecordRequest.getSequenceNumberForOrdering()).isEqualTo("10");
assertThat(putRecordRequest.getExplicitHashKey()).isNull();
assertThat(putRecordRequest.getData()).isEqualTo(ByteBuffer.wrap("message".getBytes()));
message = new GenericMessage<>(new PutRecordsRequest().withStreamName("myStream").withRecords(new PutRecordsRequestEntry().withData(ByteBuffer.wrap("test".getBytes())).withPartitionKey("testKey")));
this.kinesisSendChannel.send(message);
ArgumentCaptor<PutRecordsRequest> putRecordsRequestArgumentCaptor = ArgumentCaptor.forClass(PutRecordsRequest.class);
verify(this.amazonKinesis).putRecordsAsync(putRecordsRequestArgumentCaptor.capture(), eq((AsyncHandler<PutRecordsRequest, PutRecordsResult>) this.asyncHandler));
PutRecordsRequest putRecordsRequest = putRecordsRequestArgumentCaptor.getValue();
assertThat(putRecordsRequest.getStreamName()).isEqualTo("myStream");
assertThat(putRecordsRequest.getRecords()).containsExactlyInAnyOrder(new PutRecordsRequestEntry().withData(ByteBuffer.wrap("test".getBytes())).withPartitionKey("testKey"));
}Example 9
| Project: mod-kinesis-master File: KinesisMessageProcessor.java View source code |
private void sendUsingAsyncClient(final PutRecordRequest putRecordRequest, Message<JsonObject> event) {
if (retryCounter == 3) {
sendError(event, "Failed sending message to Kinesis");
}
final Context ctx = vertx.currentContext();
kinesisAsyncClient.putRecordAsync(putRecordRequest, new AsyncHandler<PutRecordRequest, PutRecordResult>() {
public void onSuccess(PutRecordRequest request, final PutRecordResult recordResult) {
ctx.runOnContext( v -> {
logger.debug("Sent message to Kinesis: " + recordResult.toString());
sendOK(event);
});
}
public void onError(final java.lang.Exception iexc) {
ctx.runOnContext( v -> {
retryCounter++;
kinesisAsyncClient = createClient();
logger.info("Failed sending message to Kinesis, retry: " + retryCounter + " ... ", iexc);
vertx.setTimer(500, timerID -> sendUsingAsyncClient(putRecordRequest, event));
});
}
});
}Example 10
| Project: rakam-master File: AWSKinesisEventStore.java View source code |
public void store(Event event, CompletableFuture<Void> future, int tryCount) {
ByteBuf buffer = getBuffer(event);
kinesis.putRecordAsync(config.getEventStoreStreamName(), buffer.nioBuffer(), getPartitionKey(event), new AsyncHandler<PutRecordRequest, PutRecordResult>() {
@Override
public void onError(Exception e) {
if (e instanceof ResourceNotFoundException) {
try {
KinesisUtils.createAndWaitForStreamToBecomeAvailable(kinesis, config.getEventStoreStreamName(), 1);
} catch (Exception e1) {
throw new RuntimeException("Couldn't send event to Amazon Kinesis", e);
}
}
LOGGER.error(e);
if (tryCount > 0) {
store(event, future, tryCount - 1);
} else {
buffer.release();
future.completeExceptionally(new RakamException(INTERNAL_SERVER_ERROR));
}
}
@Override
public void onSuccess(PutRecordRequest request, PutRecordResult putRecordResult) {
buffer.release();
future.complete(null);
}
});
}Example 11
| Project: user-master File: SNSQueueManagerImpl.java View source code |
@Override
public <T extends Serializable> void sendMessageToAllRegions(final T body) throws IOException {
if (snsAsync == null) {
logger.error("SNS client is null, perhaps it failed to initialize successfully");
return;
}
final String stringBody = toString(body);
String topicArn = getWriteTopicArn();
if (logger.isTraceEnabled()) {
logger.trace("Publishing Message...{} to arn: {}", stringBody, topicArn);
}
PublishRequest publishRequest = new PublishRequest(topicArn, stringBody);
snsAsync.publishAsync(publishRequest, new AsyncHandler<PublishRequest, PublishResult>() {
@Override
public void onError(Exception e) {
logger.error("Error publishing message... {}", e);
}
@Override
public void onSuccess(PublishRequest request, PublishResult result) {
if (logger.isTraceEnabled()) {
logger.trace("Successfully published... messageID=[{}], arn=[{}]", result.getMessageId(), request.getTopicArn());
}
}
});
}