You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2018/10/16 07:30:05 UTC
[camel] branch camel-2.21.x updated: CAMEL-12882: Camel Jms headers
missing if producer endpoint has transferExchange=true
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-2.21.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.21.x by this push:
new 46155f3 CAMEL-12882: Camel Jms headers missing if producer endpoint has transferExchange=true
46155f3 is described below
commit 46155f33dc202a63f232664c35731c24f6af1c5e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Oct 16 08:09:59 2018 +0200
CAMEL-12882: Camel Jms headers missing if producer endpoint has transferExchange=true
---
.../src/main/java/org/apache/camel/component/jms/JmsBinding.java | 3 +++
.../java/org/apache/camel/component/jms/JmsTransferExchangeTest.java | 3 +++
2 files changed, 6 insertions(+)
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java
index c9c781a..731010a 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java
@@ -147,6 +147,9 @@ public class JmsBinding {
if (payload instanceof DefaultExchangeHolder) {
DefaultExchangeHolder holder = (DefaultExchangeHolder) payload;
DefaultExchangeHolder.unmarshal(exchange, holder);
+ // enrich with JMS headers also as otherwise they will get lost when use the transferExchange option.
+ Map<String, Object> jmsHeaders = extractHeadersFromJms(message, exchange);
+ exchange.getIn().getHeaders().putAll(jmsHeaders);
return exchange.getIn().getBody();
} else {
return objectMessage.getObject();
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeTest.java
index 1aa1572..a2cea48 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeTest.java
@@ -40,6 +40,7 @@ public class JmsTransferExchangeTest extends CamelTestSupport {
public void testBodyOnly() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Hello World");
+ mock.expectedHeaderReceived("JMSDestination", "queue://foo");
template.sendBody("direct:start", "Hello World");
@@ -51,6 +52,7 @@ public class JmsTransferExchangeTest extends CamelTestSupport {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Hello World");
mock.expectedHeaderReceived("foo", "cheese");
+ mock.expectedHeaderReceived("JMSDestination", "queue://foo");
template.sendBodyAndHeader("direct:start", "Hello World", "foo", "cheese");
@@ -63,6 +65,7 @@ public class JmsTransferExchangeTest extends CamelTestSupport {
mock.expectedBodiesReceived("Hello World");
mock.expectedHeaderReceived("foo", "cheese");
mock.expectedPropertyReceived("bar", 123);
+ mock.expectedHeaderReceived("JMSDestination", "queue://foo");
template.send("direct:start", new Processor() {
public void process(Exchange exchange) throws Exception {