Example usage for org.springframework.messaging.support MessageHeaderAccessor getMutableAccessor

List of usage examples for org.springframework.messaging.support MessageHeaderAccessor getMutableAccessor

Introduction

In this page you can find the example usage for org.springframework.messaging.support MessageHeaderAccessor getMutableAccessor.

Prototype

public static MessageHeaderAccessor getMutableAccessor(Message<?> message) 

Source Link

Document

Return a mutable MessageHeaderAccessor for the given message attempting to match the type of accessor used to create the message headers, or otherwise wrapping the message with a MessageHeaderAccessor instance.

Usage

From source file:org.springframework.cloud.sleuth.instrument.messaging.TracingChannelInterceptor.java

private Message<?> outputMessage(Message<?> originalMessage, Message<?> retrievedMessage,
        MessageHeaderAccessor additionalHeaders) {
    MessageHeaderAccessor headers = MessageHeaderAccessor.getMutableAccessor(originalMessage);
    if (originalMessage.getPayload() instanceof MessagingException) {
        headers.copyHeaders(MessageHeaderPropagation.propagationHeaders(additionalHeaders.getMessageHeaders(),
                this.tracing.propagation().keys()));
        return new ErrorMessage((MessagingException) originalMessage.getPayload(),
                isWebSockets(headers) ? headers.getMessageHeaders()
                        : new MessageHeaders(headers.getMessageHeaders()));
    }/*from   w  w w  . ja  v a  2s  .c o  m*/
    headers.copyHeaders(additionalHeaders.getMessageHeaders());
    return new GenericMessage<>(retrievedMessage.getPayload(),
            isWebSockets(headers) ? headers.getMessageHeaders()
                    : new MessageHeaders(headers.getMessageHeaders()));
}

From source file:org.springframework.cloud.sleuth.instrument.messaging.TracingChannelInterceptor.java

private MessageHeaderAccessor mutableHeaderAccessor(Message<?> message) {
    MessageHeaderAccessor headers = MessageHeaderAccessor.getMutableAccessor(message);
    headers.setLeaveMutable(true);/* w w  w .java  2  s.  c  om*/
    return headers;
}

From source file:org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.java

@Override
public void handleMessage(Message<?> message) throws MessagingException {
    String destination = getDestination(message);
    if (destination == null) {
        return;/*from  w ww .  j a v a 2s. co  m*/
    }
    String lookupDestination = getLookupDestination(destination);
    if (lookupDestination == null) {
        return;
    }
    MessageHeaderAccessor headerAccessor = MessageHeaderAccessor.getMutableAccessor(message);
    headerAccessor.setHeader(DestinationPatternsMessageCondition.LOOKUP_DESTINATION_HEADER, lookupDestination);
    headerAccessor.setLeaveMutable(true);
    message = MessageBuilder.createMessage(message.getPayload(), headerAccessor.getMessageHeaders());

    if (logger.isDebugEnabled()) {
        logger.debug("Searching methods to handle " + headerAccessor.getShortLogMessage(message.getPayload())
                + ", lookupDestination='" + lookupDestination + "'");
    }

    handleMessageInternal(message, lookupDestination);
    headerAccessor.setImmutable();
}