/** * Copy the name-value pairs from the provided Map. This operation will overwrite any * existing values. Use { {@link #copyHeadersIfAbsent(Map)} to avoid overwriting * values. Note that the 'id' and 'timestamp' header values will never be overwritten. */ public MessageBuilder<T> copyHeaders(@Nullable Map<String, ?> headersToCopy) { this.headerAccessor.copyHeaders(headersToCopy); return this; }
@Test public void copyHeadersFromNullMap() { MessageHeaderAccessor headers = new MessageHeaderAccessor(); headers.copyHeaders(null); headers.copyHeadersIfAbsent(null); assertEquals(1, headers.getMessageHeaders().size()); assertEquals(Collections.singleton("id"), headers.getMessageHeaders().keySet()); }
@Test public void copyHeaders() { Map<String, Object> map1 = new HashMap<>(); map1.put("foo", "bar"); GenericMessage<String> message = new GenericMessage<>("payload", map1); MessageHeaderAccessor accessor = new MessageHeaderAccessor(message); Map<String, Object> map2 = new HashMap<>(); map2.put("foo", "BAR"); map2.put("bar", "baz"); accessor.copyHeaders(map2); MessageHeaders actual = accessor.getMessageHeaders(); assertEquals(3, actual.size()); assertEquals("BAR", actual.get("foo")); assertEquals("baz", actual.get("bar")); }
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())); } headers.copyHeaders(additionalHeaders.getMessageHeaders()); return new GenericMessage<>(retrievedMessage.getPayload(), isWebSockets(headers) ? headers.getMessageHeaders() : new MessageHeaders(headers.getMessageHeaders())); }
/** * Copy the name-value pairs from the provided Map. This operation will overwrite any * existing values. Use { {@link #copyHeadersIfAbsent(Map)} to avoid overwriting * values. Note that the 'id' and 'timestamp' header values will never be overwritten. */ public MessageBuilder<T> copyHeaders(@Nullable Map<String, ?> headersToCopy) { this.headerAccessor.copyHeaders(headersToCopy); return this; }
/** * Copy the name-value pairs from the provided Map. This operation will overwrite any * existing values. Use { {@link #copyHeadersIfAbsent(Map)} to avoid overwriting * values. Note that the 'id' and 'timestamp' header values will never be overwritten. */ public MessageBuilder<T> copyHeaders(@Nullable Map<String, ?> headersToCopy) { this.headerAccessor.copyHeaders(headersToCopy); return this; }
/** * Copy the name-value pairs from the provided Map. This operation will overwrite any * existing values. Use { {@link #copyHeadersIfAbsent(Map)} to avoid overwriting * values. Note that the 'id' and 'timestamp' header values will never be overwritten. */ public MessageBuilder<T> copyHeaders(@Nullable Map<String, ?> headersToCopy) { this.headerAccessor.copyHeaders(headersToCopy); return this; }
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())); } headers.copyHeaders(additionalHeaders.getMessageHeaders()); return new GenericMessage<>(retrievedMessage.getPayload(), isWebSockets(headers) ? headers.getMessageHeaders() : new MessageHeaders(headers.getMessageHeaders())); }