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 2ce61d00f3..727cb2c930 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 @@ -75,7 +75,7 @@ public final class MessageBuilder { * null, the header will be removed. */ public MessageBuilder setHeader(String headerName, Object headerValue) { - if (StringUtils.hasLength(headerName)) { + if (StringUtils.hasLength(headerName) && !(this.isReadOnly(headerName))) { if (headerValue == null) { this.headers.remove(headerName); } @@ -119,9 +119,7 @@ public final class MessageBuilder { public MessageBuilder copyHeaders(Map headersToCopy) { Set keys = headersToCopy.keySet(); for (String key : keys) { - if (this.isEligibleForCopying(key)) { - this.setHeader(key, headersToCopy.get(key)); - } + this.setHeader(key, headersToCopy.get(key)); } return this; } @@ -133,9 +131,7 @@ public final class MessageBuilder { public MessageBuilder copyHeadersIfAbsent(Map headersToCopy) { Set keys = headersToCopy.keySet(); for (String key : keys) { - if (this.isEligibleForCopying(key)) { - this.setHeaderIfAbsent(key, headersToCopy.get(key)); - } + this.setHeaderIfAbsent(key, headersToCopy.get(key)); } return this; } @@ -181,8 +177,8 @@ public final class MessageBuilder { return new GenericMessage(this.payload, this.headers); } - private boolean isEligibleForCopying(String key) { - return !(key.equals(MessageHeaders.ID) || key.equals(MessageHeaders.TIMESTAMP)); + private boolean isReadOnly(String key) { + return (key.equals(MessageHeaders.ID) || key.equals(MessageHeaders.TIMESTAMP)); } } diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageHeaders.java b/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageHeaders.java index 9570d66f0a..a0f5a4fc1a 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageHeaders.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageHeaders.java @@ -32,21 +32,23 @@ import java.util.UUID; */ public final class MessageHeaders implements Map, Serializable { - public static final String ID = "internal.header.id"; + private static final String PREFIX = "spring.integration."; - public static final String TIMESTAMP = "internal.header.timestamp"; + public static final String ID = PREFIX + "id"; - public static final String CORRELATION_ID = "internal.header.correlationId"; + public static final String TIMESTAMP = PREFIX + "timestamp"; - public static final String RETURN_ADDRESS = "internal.header.returnAddress"; + public static final String CORRELATION_ID = PREFIX + "correlationId"; - public static final String EXPIRATION_DATE = "internal.header.exprirationDate"; + public static final String RETURN_ADDRESS = PREFIX + "returnAddress"; - public static final String PRIORITY = "internal.header.priority"; + public static final String EXPIRATION_DATE = PREFIX + "expirationDate"; - public static final String SEQUENCE_NUMBER = "internal.header.sequenceNumber"; + public static final String PRIORITY = PREFIX + "priority"; - public static final String SEQUENCE_SIZE = "internal.header.sequenceSize"; + public static final String SEQUENCE_NUMBER = PREFIX + "sequenceNumber"; + + public static final String SEQUENCE_SIZE = PREFIX + "sequenceSize"; private final Map headers;