diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageBuilder.java b/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageBuilder.java index e510eff07c..40521b3f54 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageBuilder.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageBuilder.java @@ -81,11 +81,7 @@ public final class MessageBuilder { return this; } - public MessageBuilder copyHeadersFromMessage(Message message) { - return this.copyHeaders(message.getHeaders()); - } - - public MessageBuilder copyHeaders(MessageHeaders headersToCopy) { + public MessageBuilder copyHeaders(Map headersToCopy) { Set keys = headersToCopy.keySet(); for (String key : keys) { if (key.equals(MessageHeaders.TIMESTAMP)) { @@ -96,19 +92,13 @@ public final class MessageBuilder { return this; } - public MessageBuilder copyHeadersFromMessageIfAbsent(Message message) { - return this.copyHeadersIfAbsent(message.getHeaders()); - } - - public MessageBuilder copyHeadersIfAbsent(MessageHeaders headersToCopy) { + public MessageBuilder copyHeadersIfAbsent(Map headersToCopy) { Set keys = headersToCopy.keySet(); for (String key : keys) { if (key.equals(MessageHeaders.TIMESTAMP)) { continue; } - if (this.headers.get(key) == null) { - this.setHeaderIfAbsent(key, headersToCopy.get(key)); - } + this.setHeaderIfAbsent(key, headersToCopy.get(key)); } return this; } diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/AnnotationMethodTransformerAdapter.java b/org.springframework.integration/src/main/java/org/springframework/integration/transformer/AnnotationMethodTransformerAdapter.java index 69ac532502..5685f4edcc 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/AnnotationMethodTransformerAdapter.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/transformer/AnnotationMethodTransformerAdapter.java @@ -98,7 +98,7 @@ public class AnnotationMethodTransformerAdapter extends AbstractMethodInvokingAd return builder.build(); } else { - return MessageBuilder.fromPayload(result).copyHeadersFromMessage(message).build(); + return MessageBuilder.fromPayload(result).copyHeaders(message.getHeaders()).build(); } } catch (Exception e) { diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/PayloadTransformerAdapter.java b/org.springframework.integration/src/main/java/org/springframework/integration/transformer/PayloadTransformerAdapter.java index 2c4ccd3281..cda984aafc 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/PayloadTransformerAdapter.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/transformer/PayloadTransformerAdapter.java @@ -30,7 +30,7 @@ public class PayloadTransformerAdapter extends AbstractMethodInvokingAdapter imp public Message transform(Message message) { try { Object result = this.invokeMethod(message.getPayload()); - return MessageBuilder.fromPayload(result).copyHeadersFromMessage(message).build(); + return MessageBuilder.fromPayload(result).copyHeaders(message.getHeaders()).build(); } catch (Exception e) { throw new MessagingException(message, "failed to transform message payload", e); } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/message/MessageBuilderTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/message/MessageBuilderTests.java index 52286a55d2..a549950563 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/message/MessageBuilderTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/message/MessageBuilderTests.java @@ -50,7 +50,7 @@ public class MessageBuilderTests { .setHeader("bar", "2") .build(); Message message2 = MessageBuilder.fromPayload("test2") - .copyHeadersFromMessage(message1) + .copyHeaders(message1.getHeaders()) .setHeader("foo", "42") .setHeaderIfAbsent("bar", "99") .build();