Example usage for org.springframework.messaging.support NativeMessageHeaderAccessor getFirstNativeHeader

List of usage examples for org.springframework.messaging.support NativeMessageHeaderAccessor getFirstNativeHeader

Introduction

In this page you can find the example usage for org.springframework.messaging.support NativeMessageHeaderAccessor getFirstNativeHeader.

Prototype

@Nullable
public String getFirstNativeHeader(String headerName) 

Source Link

Document

Return the first value for the specified native header, or null if none.

Usage

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

private String doGet(MessageHeaderAccessor accessor, String key) {
    if (accessor instanceof NativeMessageHeaderAccessor) {
        NativeMessageHeaderAccessor nativeAccessor = (NativeMessageHeaderAccessor) accessor;
        String result = nativeAccessor.getFirstNativeHeader(key);
        if (result != null) {
            return result;
        }// w  ww .  ja v a 2  s . c o m
    } else {
        Object nativeHeaders = accessor.getHeader(NativeMessageHeaderAccessor.NATIVE_HEADERS);
        if (nativeHeaders instanceof Map) {
            Object result = ((Map) nativeHeaders).get(key);
            if (result instanceof List && !((List) result).isEmpty()) {
                return String.valueOf(((List) result).get(0));
            }
        }
    }
    Object result = accessor.getHeader(key);
    if (result != null) {
        if (result instanceof byte[]) {
            return new String((byte[]) result, StandardCharsets.UTF_8);
        }
        return result.toString();
    }
    return null;
}