JGroups consumer now keeps original JGroups Message in the header.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1c971c76 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1c971c76 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1c971c76 Branch: refs/heads/master Commit: 1c971c761bf1f3f65ff6e31131455f9249ab44a5 Parents: 553165e Author: Henryk Konsek <[email protected]> Authored: Mon Dec 30 22:34:45 2013 +0100 Committer: Henryk Konsek <[email protected]> Committed: Mon Dec 30 22:34:45 2013 +0100 ---------------------------------------------------------------------- .../camel/component/jgroups/JGroupsEndpoint.java | 3 +++ .../camel/component/jgroups/JGroupsConsumerTest.java | 15 +++++++++++++++ 2 files changed, 18 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/1c971c76/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java index ce7a131..23af26c 100644 --- a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java +++ b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java @@ -29,6 +29,8 @@ import org.jgroups.View; public class JGroupsEndpoint extends DefaultEndpoint { + public static final String HEADER_JGROUPS_ORIGINAL_MESSAGE = "JGROUPS_ORIGINAL_MESSAGE"; + public static final String HEADER_JGROUPS_SRC = "JGROUPS_SRC"; public static final String HEADER_JGROUPS_DEST = "JGROUPS_DEST"; @@ -72,6 +74,7 @@ public class JGroupsEndpoint extends DefaultEndpoint { public Exchange createExchange(Message message) { Exchange exchange = createExchange(); + exchange.getIn().setHeader(HEADER_JGROUPS_ORIGINAL_MESSAGE, message); exchange.getIn().setHeader(HEADER_JGROUPS_SRC, message.getSrc()); exchange.getIn().setHeader(HEADER_JGROUPS_DEST, message.getDest()); exchange.getIn().setBody(message.getObject()); http://git-wip-us.apache.org/repos/asf/camel/blob/1c971c76/components/camel-jgroups/src/test/java/org/apache/camel/component/jgroups/JGroupsConsumerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-jgroups/src/test/java/org/apache/camel/component/jgroups/JGroupsConsumerTest.java b/components/camel-jgroups/src/test/java/org/apache/camel/component/jgroups/JGroupsConsumerTest.java index 45e23a6..900ccf5 100644 --- a/components/camel-jgroups/src/test/java/org/apache/camel/component/jgroups/JGroupsConsumerTest.java +++ b/components/camel-jgroups/src/test/java/org/apache/camel/component/jgroups/JGroupsConsumerTest.java @@ -24,6 +24,8 @@ import org.jgroups.JChannel; import org.jgroups.Message; import org.junit.Test; +import static org.apache.camel.component.jgroups.JGroupsEndpoint.HEADER_JGROUPS_ORIGINAL_MESSAGE; + public class JGroupsConsumerTest extends CamelTestSupport { // Fixtures @@ -77,4 +79,17 @@ public class JGroupsConsumerTest extends CamelTestSupport { mockEndpoint.assertIsSatisfied(); } + @Test + public void shouldKeepOriginalMessage() throws Exception { + // Given + mockEndpoint.setExpectedMessageCount(1); + mockEndpoint.message(0).header(HEADER_JGROUPS_ORIGINAL_MESSAGE).isInstanceOf(Message.class); + + // When + channel.send(new Message(null, null, message)); + + // Then + mockEndpoint.assertIsSatisfied(); + } + }
