From 614ffaf8257b4206792625f270b126a39bd13aef Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 2 Sep 2008 22:24:37 +0000 Subject: [PATCH] Added removeHeader() method to MessageBuilder. --- .../integration/message/MessageBuilder.java | 10 +++++++++ .../message/MessageBuilderTests.java | 21 +++++++++++++++++++ 2 files changed, 31 insertions(+) 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 a4192b3ed1..50cab9aad8 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 @@ -96,6 +96,16 @@ public final class MessageBuilder { return this; } + /** + * Remove the value for the given header name. + */ + public MessageBuilder removeHeader(String headerName) { + if (StringUtils.hasLength(headerName)) { + this.headers.remove(headerName); + } + return this; + } + /** * Copy the name-value pairs from the provided Map. This operation will * overwrite any existing values. Use {{@link #copyHeadersIfAbsent(Map)} 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 4821246628..0ded280a78 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 @@ -17,6 +17,7 @@ package org.springframework.integration.message; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import java.util.Date; @@ -116,4 +117,24 @@ public class MessageBuilderTests { assertEquals(past, expiredMessage.getHeaders().getExpirationDate()); } + @Test + public void testRemove() { + Message message1 = MessageBuilder.fromPayload(1) + .setHeader("foo", "bar").build(); + Message message2 = MessageBuilder.fromMessage(message1) + .removeHeader("foo") + .build(); + assertFalse(message2.getHeaders().containsKey("foo")); + } + + @Test + public void testSettingToNullRemoves() { + Message message1 = MessageBuilder.fromPayload(1) + .setHeader("foo", "bar").build(); + Message message2 = MessageBuilder.fromMessage(message1) + .setHeader("foo", null) + .build(); + assertFalse(message2.getHeaders().containsKey("foo")); + } + }