From c8b9c618d5afa1d5fbd4d492a11921792cd57fbf Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Thu, 2 Sep 2010 23:39:01 +0000 Subject: [PATCH] INT-1411 added convertSendAndReceive methods that accept MessagePostProcessors for the requests to AsyncMessagingTemplate and AsyncMessagingOperations --- .../core/AsyncMessagingOperations.java | 6 + .../core/AsyncMessagingTemplate.java | 129 +++++++++++------- 2 files changed, 84 insertions(+), 51 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/core/AsyncMessagingOperations.java b/spring-integration-core/src/main/java/org/springframework/integration/core/AsyncMessagingOperations.java index 04ba16bf54..ee8217ff02 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/core/AsyncMessagingOperations.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/core/AsyncMessagingOperations.java @@ -51,4 +51,10 @@ public interface AsyncMessagingOperations { Future asyncConvertSendAndReceive(String channelName, Object request); + Future asyncConvertSendAndReceive(Object request, MessagePostProcessor requestPostProcessor); + + Future asyncConvertSendAndReceive(MessageChannel channel, Object request, MessagePostProcessor requestPostProcessor); + + Future asyncConvertSendAndReceive(String channelName, Object request, MessagePostProcessor requestPostProcessor); + } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/core/AsyncMessagingTemplate.java b/spring-integration-core/src/main/java/org/springframework/integration/core/AsyncMessagingTemplate.java index ec066ad5ae..608024019f 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/core/AsyncMessagingTemplate.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/core/AsyncMessagingTemplate.java @@ -42,57 +42,6 @@ public class AsyncMessagingTemplate extends MessagingTemplate implements AsyncMe (AsyncTaskExecutor) executor : new TaskExecutorAdapter(executor); } - public Future> asyncSendAndReceive(final Message requestMessage) { - return this.executor.submit(new Callable>() { - public Message call() throws Exception { - return sendAndReceive(requestMessage); - } - }); - } - - public Future> asyncSendAndReceive(final MessageChannel channel, final Message requestMessage) { - return this.executor.submit(new Callable>() { - public Message call() throws Exception { - return sendAndReceive(channel, requestMessage); - } - }); - } - - public Future> asyncSendAndReceive(final String channelName, final Message requestMessage) { - return this.executor.submit(new Callable>() { - public Message call() throws Exception { - return sendAndReceive(channelName, requestMessage); - } - }); - } - - @SuppressWarnings("unchecked") - public Future asyncConvertSendAndReceive(final Object request) { - return this.executor.submit(new Callable() { - public R call() throws Exception { - return (R) convertSendAndReceive(request); - } - }); - } - - @SuppressWarnings("unchecked") - public Future asyncConvertSendAndReceive(final MessageChannel channel, final Object request) { - return this.executor.submit(new Callable() { - public R call() throws Exception { - return (R) convertSendAndReceive(channel, request); - } - }); - } - - @SuppressWarnings("unchecked") - public Future asyncConvertSendAndReceive(final String channelName, final Object request) { - return this.executor.submit(new Callable() { - public R call() throws Exception { - return (R) convertSendAndReceive(channelName, request); - } - }); - } - public

Future> asyncReceive() { return this.executor.submit(new Callable>() { public Message

call() throws Exception { @@ -144,4 +93,82 @@ public class AsyncMessagingTemplate extends MessagingTemplate implements AsyncMe }); } + public Future> asyncSendAndReceive(final Message requestMessage) { + return this.executor.submit(new Callable>() { + public Message call() throws Exception { + return sendAndReceive(requestMessage); + } + }); + } + + public Future> asyncSendAndReceive(final MessageChannel channel, final Message requestMessage) { + return this.executor.submit(new Callable>() { + public Message call() throws Exception { + return sendAndReceive(channel, requestMessage); + } + }); + } + + public Future> asyncSendAndReceive(final String channelName, final Message requestMessage) { + return this.executor.submit(new Callable>() { + public Message call() throws Exception { + return sendAndReceive(channelName, requestMessage); + } + }); + } + + @SuppressWarnings("unchecked") + public Future asyncConvertSendAndReceive(final Object request) { + return this.executor.submit(new Callable() { + public R call() throws Exception { + return (R) convertSendAndReceive(request); + } + }); + } + + @SuppressWarnings("unchecked") + public Future asyncConvertSendAndReceive(final MessageChannel channel, final Object request) { + return this.executor.submit(new Callable() { + public R call() throws Exception { + return (R) convertSendAndReceive(channel, request); + } + }); + } + + @SuppressWarnings("unchecked") + public Future asyncConvertSendAndReceive(final String channelName, final Object request) { + return this.executor.submit(new Callable() { + public R call() throws Exception { + return (R) convertSendAndReceive(channelName, request); + } + }); + } + + @SuppressWarnings("unchecked") + public Future asyncConvertSendAndReceive(final Object request, final MessagePostProcessor requestPostProcessor) { + return this.executor.submit(new Callable() { + public R call() throws Exception { + return (R) convertSendAndReceive(request, requestPostProcessor); + } + }); + } + + @SuppressWarnings("unchecked") + public Future asyncConvertSendAndReceive(final MessageChannel channel, final Object request, final MessagePostProcessor requestPostProcessor) { + return this.executor.submit(new Callable() { + public R call() throws Exception { + return (R) convertSendAndReceive(channel, request, requestPostProcessor); + } + }); + } + + @SuppressWarnings("unchecked") + public Future asyncConvertSendAndReceive(final String channelName, final Object request, final MessagePostProcessor requestPostProcessor) { + return this.executor.submit(new Callable() { + public R call() throws Exception { + return (R) convertSendAndReceive(channelName, request, requestPostProcessor); + } + }); + } + }