1
2
3
4
5
6
7
8
9
10
11 package org.mule.service.processor;
12
13 import org.mule.api.MessagingException;
14 import org.mule.api.processor.InterceptingMessageProcessor;
15 import org.mule.api.source.MessageSource;
16 import org.mule.routing.requestreply.AbstractAsyncRequestReplyRequester;
17 import org.mule.service.ServiceAsyncReplyCompositeMessageSource;
18
19 public class ServiceAsyncRequestReplyRequestor extends AbstractAsyncRequestReplyRequester implements InterceptingMessageProcessor
20 {
21
22 protected void postLatchAwait(String asyncReplyCorrelationId) throws MessagingException
23 {
24 if (replyMessageSource instanceof ServiceAsyncReplyCompositeMessageSource)
25 {
26 ((ServiceAsyncReplyCompositeMessageSource) replyMessageSource).expireAggregation(asyncReplyCorrelationId);
27 }
28 }
29
30 @Override
31 protected void verifyReplyMessageSource(MessageSource messageSource)
32 {
33 if (!(messageSource instanceof ServiceAsyncReplyCompositeMessageSource))
34 {
35 throw new IllegalArgumentException(
36 "ServiceAsyncReplyCompositeMessageSource async reply MessageSource must be used with ServiceAsyncRequestReplyRequestor");
37 }
38 }
39 }