Preventing copy of ID or timestamp header attributes.

This commit is contained in:
Mark Fisher
2008-08-12 00:01:20 +00:00
parent 3d4f32de2d
commit c63f65f256

View File

@@ -84,10 +84,9 @@ public final class MessageBuilder<T> {
public MessageBuilder<T> copyHeaders(Map<String, Object> headersToCopy) {
Set<String> keys = headersToCopy.keySet();
for (String key : keys) {
if (key.equals(MessageHeaders.TIMESTAMP)) {
continue;
if (this.isEligibleForCopying(key)) {
this.setHeader(key, headersToCopy.get(key));
}
this.setHeader(key, headersToCopy.get(key));
}
return this;
}
@@ -95,10 +94,9 @@ public final class MessageBuilder<T> {
public MessageBuilder<T> copyHeadersIfAbsent(Map<String, Object> headersToCopy) {
Set<String> keys = headersToCopy.keySet();
for (String key : keys) {
if (key.equals(MessageHeaders.TIMESTAMP)) {
continue;
if (this.isEligibleForCopying(key)) {
this.setHeaderIfAbsent(key, headersToCopy.get(key));
}
this.setHeaderIfAbsent(key, headersToCopy.get(key));
}
return this;
}
@@ -143,4 +141,8 @@ public final class MessageBuilder<T> {
return new GenericMessage<T>(this.payload, this.headers);
}
private boolean isEligibleForCopying(String key) {
return !(key.equals(MessageHeaders.ID) || key.equals(MessageHeaders.TIMESTAMP));
}
}