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

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

Introduction

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

Prototype

public void removeHeader(String headerName) 

Source Link

Document

Remove the value for the given header name.

Usage

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

static void removeAnyTraceHeaders(MessageHeaderAccessor accessor, List<String> keysToRemove) {
    for (String keyToRemove : keysToRemove) {
        accessor.removeHeader(keyToRemove);
        if (accessor instanceof NativeMessageHeaderAccessor) {
            NativeMessageHeaderAccessor nativeAccessor = (NativeMessageHeaderAccessor) accessor;
            nativeAccessor.removeNativeHeader(keyToRemove);
        } else {/*from   w  ww  . j a  v  a 2  s.c o  m*/
            Object nativeHeaders = accessor.getHeader(NativeMessageHeaderAccessor.NATIVE_HEADERS);
            if (nativeHeaders instanceof Map) {
                ((Map) nativeHeaders).remove(keyToRemove);
            }
        }
    }
}

From source file:org.springframework.messaging.core.GenericMessagingTemplate.java

protected final void doSend(MessageChannel channel, Message<?> message, long timeout) {
    Assert.notNull(channel, "MessageChannel is required");

    Message<?> messageToSend = message;
    MessageHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, MessageHeaderAccessor.class);
    if (accessor != null && accessor.isMutable()) {
        accessor.removeHeader(this.sendTimeoutHeader);
        accessor.removeHeader(this.receiveTimeoutHeader);
        accessor.setImmutable();/* w ww. ja va 2 s .  c  o  m*/
    } else if (message.getHeaders().containsKey(this.sendTimeoutHeader)
            || message.getHeaders().containsKey(this.receiveTimeoutHeader)) {
        messageToSend = MessageBuilder.fromMessage(message).setHeader(this.sendTimeoutHeader, null)
                .setHeader(this.receiveTimeoutHeader, null).build();
    }

    boolean sent = (timeout >= 0 ? channel.send(messageToSend, timeout) : channel.send(messageToSend));

    if (!sent) {
        throw new MessageDeliveryException(message,
                "Failed to send message to channel '" + channel + "' within timeout: " + timeout);
    }
}