/** * Extract the payload of the current message. Since we deferred the resolution * of the payload, a custom converter may still return a full message for it. In * this case, its payload is returned. * @return the payload of the message */ private Object unwrapPayload() throws JMSException { Object payload = extractPayload(this.message); if (payload instanceof org.springframework.messaging.Message) { return ((org.springframework.messaging.Message) payload).getPayload(); } return payload; }
/** * Set the {@link JmsHeaderMapper} implementation to use to map the standard * JMS headers. By default, a {@link SimpleJmsHeaderMapper} is used. * @see SimpleJmsHeaderMapper */ public void setHeaderMapper(JmsHeaderMapper headerMapper) { Assert.notNull(headerMapper, "HeaderMapper must not be null"); this.messagingMessageConverter.setHeaderMapper(headerMapper); }
private final MessagingMessageConverterAdapter messagingMessageConverter = new MessagingMessageConverterAdapter();
/** * Build a JMS message to be sent as response based on the given result object. * @param session the JMS Session to operate on * @param result the content of the message, as returned from the listener method * @return the JMS {@code Message} (never {@code null}) * @throws JMSException if thrown by JMS API methods * @see #setMessageConverter */ protected Message buildMessage(Session session, Object result) throws JMSException { Object content = preProcessResponse(result instanceof JmsResponse ? ((JmsResponse<?>) result).getResponse() : result); MessageConverter converter = getMessageConverter(); if (converter != null) { if (content instanceof org.springframework.messaging.Message) { return this.messagingMessageConverter.toMessage(content, session); } else { return converter.toMessage(content, session); } } if (!(content instanceof Message)) { throw new MessageConversionException( "No MessageConverter specified - cannot handle message [" + content + "]"); } return (Message) content; }
/** * Extract the payload of the current message. Since we deferred the resolution * of the payload, a custom converter may still return a full message for it. In * this case, its payload is returned. * @return the payload of the message */ private Object unwrapPayload() throws JMSException { Object payload = extractPayload(this.message); if (payload instanceof org.springframework.messaging.Message) { return ((org.springframework.messaging.Message) payload).getPayload(); } return payload; }
/** * Extract the payload of the current message. Since we deferred the resolution * of the payload, a custom converter may still return a full message for it. In * this case, its payload is returned. * @return the payload of the message */ private Object unwrapPayload() throws JMSException { Object payload = extractPayload(this.message); if (payload instanceof org.springframework.messaging.Message) { return ((org.springframework.messaging.Message) payload).getPayload(); } return payload; }
/** * Set the {@link JmsHeaderMapper} implementation to use to map the standard * JMS headers. By default, a {@link SimpleJmsHeaderMapper} is used. * @see SimpleJmsHeaderMapper */ public void setHeaderMapper(JmsHeaderMapper headerMapper) { Assert.notNull(headerMapper, "HeaderMapper must not be null"); this.messagingMessageConverter.setHeaderMapper(headerMapper); }
/** * Set the {@link JmsHeaderMapper} implementation to use to map the standard * JMS headers. By default, a {@link SimpleJmsHeaderMapper} is used. * @see SimpleJmsHeaderMapper */ public void setHeaderMapper(JmsHeaderMapper headerMapper) { Assert.notNull(headerMapper, "HeaderMapper must not be null"); this.messagingMessageConverter.setHeaderMapper(headerMapper); }
/** * Build a JMS message to be sent as response based on the given result object. * @param session the JMS Session to operate on * @param result the content of the message, as returned from the listener method * @return the JMS {@code Message} (never {@code null}) * @throws JMSException if thrown by JMS API methods * @see #setMessageConverter */ protected Message buildMessage(Session session, Object result) throws JMSException { Object content = preProcessResponse(result instanceof JmsResponse ? ((JmsResponse<?>) result).getResponse() : result); MessageConverter converter = getMessageConverter(); if (converter != null) { if (content instanceof org.springframework.messaging.Message) { return this.messagingMessageConverter.toMessage(content, session); } else { return converter.toMessage(content, session); } } if (!(content instanceof Message)) { throw new MessageConversionException( "No MessageConverter specified - cannot handle message [" + content + "]"); } return (Message) content; }