|
|
|
@ -37,12 +37,12 @@ public abstract class AbstractMessagingTemplate<D> extends AbstractMessageSendin |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Message<?> receive() { |
|
|
|
public Message<?> receive() { |
|
|
|
return this.receive(getRequiredDefaultDestination()); |
|
|
|
return receive(getRequiredDefaultDestination()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Message<?> receive(D destination) { |
|
|
|
public Message<?> receive(D destination) { |
|
|
|
return this.doReceive(destination); |
|
|
|
return doReceive(destination); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected abstract Message<?> doReceive(D destination); |
|
|
|
protected abstract Message<?> doReceive(D destination); |
|
|
|
@ -50,13 +50,13 @@ public abstract class AbstractMessagingTemplate<D> extends AbstractMessageSendin |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public <T> T receiveAndConvert(Class<T> targetClass) { |
|
|
|
public <T> T receiveAndConvert(Class<T> targetClass) { |
|
|
|
return this.receiveAndConvert(getRequiredDefaultDestination(), targetClass); |
|
|
|
return receiveAndConvert(getRequiredDefaultDestination(), targetClass); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public <T> T receiveAndConvert(D destination, Class<T> targetClass) { |
|
|
|
public <T> T receiveAndConvert(D destination, Class<T> targetClass) { |
|
|
|
Message<?> message = this.doReceive(destination); |
|
|
|
Message<?> message = doReceive(destination); |
|
|
|
if (message != null) { |
|
|
|
if (message != null) { |
|
|
|
return (T) getMessageConverter().fromMessage(message, targetClass); |
|
|
|
return (T) getMessageConverter().fromMessage(message, targetClass); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -67,12 +67,12 @@ public abstract class AbstractMessagingTemplate<D> extends AbstractMessageSendin |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Message<?> sendAndReceive(Message<?> requestMessage) { |
|
|
|
public Message<?> sendAndReceive(Message<?> requestMessage) { |
|
|
|
return this.sendAndReceive(getRequiredDefaultDestination(), requestMessage); |
|
|
|
return sendAndReceive(getRequiredDefaultDestination(), requestMessage); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Message<?> sendAndReceive(D destination, Message<?> requestMessage) { |
|
|
|
public Message<?> sendAndReceive(D destination, Message<?> requestMessage) { |
|
|
|
return this.doSendAndReceive(destination, requestMessage); |
|
|
|
return doSendAndReceive(destination, requestMessage); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected abstract Message<?> doSendAndReceive(D destination, Message<?> requestMessage); |
|
|
|
protected abstract Message<?> doSendAndReceive(D destination, Message<?> requestMessage); |
|
|
|
@ -80,34 +80,27 @@ public abstract class AbstractMessagingTemplate<D> extends AbstractMessageSendin |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public <T> T convertSendAndReceive(Object request, Class<T> targetClass) { |
|
|
|
public <T> T convertSendAndReceive(Object request, Class<T> targetClass) { |
|
|
|
return this.convertSendAndReceive(getRequiredDefaultDestination(), request, targetClass); |
|
|
|
return convertSendAndReceive(getRequiredDefaultDestination(), request, targetClass); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public <T> T convertSendAndReceive(D destination, Object request, Class<T> targetClass) { |
|
|
|
public <T> T convertSendAndReceive(D destination, Object request, Class<T> targetClass) { |
|
|
|
Map<String, Object> headers = null; |
|
|
|
return convertSendAndReceive(destination, request, null, targetClass); |
|
|
|
return this.convertSendAndReceive(destination, request, headers, targetClass); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public <T> T convertSendAndReceive(D destination, Object request, Map<String, Object> headers, |
|
|
|
public <T> T convertSendAndReceive(D destination, Object request, Map<String, Object> headers, Class<T> targetClass) { |
|
|
|
Class<T> targetClass) { |
|
|
|
return convertSendAndReceive(destination, request, headers, targetClass, null); |
|
|
|
|
|
|
|
|
|
|
|
MessagePostProcessor postProcessor = null; |
|
|
|
|
|
|
|
return this.convertSendAndReceive(destination, request, headers, targetClass, postProcessor); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public <T> T convertSendAndReceive(Object request, Class<T> targetClass, MessagePostProcessor postProcessor) { |
|
|
|
public <T> T convertSendAndReceive(Object request, Class<T> targetClass, MessagePostProcessor postProcessor) { |
|
|
|
return this.convertSendAndReceive(getRequiredDefaultDestination(), request, targetClass, postProcessor); |
|
|
|
return convertSendAndReceive(getRequiredDefaultDestination(), request, targetClass, postProcessor); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public <T> T convertSendAndReceive(D destination, Object request, Class<T> targetClass, |
|
|
|
public <T> T convertSendAndReceive(D destination, Object request, Class<T> targetClass, MessagePostProcessor postProcessor) { |
|
|
|
MessagePostProcessor postProcessor) { |
|
|
|
return convertSendAndReceive(destination, request, null, targetClass, postProcessor); |
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> headers = null; |
|
|
|
|
|
|
|
return this.convertSendAndReceive(destination, request, headers, targetClass, postProcessor); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
@ -115,22 +108,22 @@ public abstract class AbstractMessagingTemplate<D> extends AbstractMessageSendin |
|
|
|
public <T> T convertSendAndReceive(D destination, Object request, Map<String, Object> headers, |
|
|
|
public <T> T convertSendAndReceive(D destination, Object request, Map<String, Object> headers, |
|
|
|
Class<T> targetClass, MessagePostProcessor postProcessor) { |
|
|
|
Class<T> targetClass, MessagePostProcessor postProcessor) { |
|
|
|
|
|
|
|
|
|
|
|
MessageHeaders messageHeaders = (headers != null) ? new MessageHeaders(headers) : null; |
|
|
|
MessageHeaders messageHeaders = (headers != null ? new MessageHeaders(headers) : null); |
|
|
|
Message<?> requestMessage = getMessageConverter().toMessage(request, messageHeaders); |
|
|
|
Message<?> requestMessage = getMessageConverter().toMessage(request, messageHeaders); |
|
|
|
|
|
|
|
|
|
|
|
if (requestMessage == null) { |
|
|
|
if (requestMessage == null) { |
|
|
|
String payloadType = (request != null) ? request.getClass().getName() : null; |
|
|
|
String payloadType = (request != null ? request.getClass().getName() : null); |
|
|
|
throw new MessageConversionException("Unable to convert payload type '" |
|
|
|
Object contentType = (messageHeaders != null ? messageHeaders.get(MessageHeaders.CONTENT_TYPE) : null); |
|
|
|
+ payloadType + "', Content-Type=" + messageHeaders.get(MessageHeaders.CONTENT_TYPE) |
|
|
|
throw new MessageConversionException("Unable to convert payload with type '" + payloadType + |
|
|
|
+ ", converter=" + getMessageConverter(), null); |
|
|
|
"', contentType='" + contentType + "', converter=[" + getMessageConverter() + "]"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (postProcessor != null) { |
|
|
|
if (postProcessor != null) { |
|
|
|
requestMessage = postProcessor.postProcessMessage(requestMessage); |
|
|
|
requestMessage = postProcessor.postProcessMessage(requestMessage); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Message<?> replyMessage = this.sendAndReceive(destination, requestMessage); |
|
|
|
Message<?> replyMessage = sendAndReceive(destination, requestMessage); |
|
|
|
return (replyMessage != null) ? (T) getMessageConverter().fromMessage(replyMessage, targetClass) : null; |
|
|
|
return (replyMessage != null ? (T) getMessageConverter().fromMessage(replyMessage, targetClass) : null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|