CAMEL-6764: camel-jms - Add workaround for AMQ to get JMSXUserID
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/79be9327 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/79be9327 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/79be9327 Branch: refs/heads/camel-2.11.x Commit: 79be932746730b38c0732470873e705c2b77f2da Parents: a84da60 Author: Claus Ibsen <davscl...@apache.org> Authored: Wed Sep 18 11:19:16 2013 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Wed Sep 18 11:20:11 2013 +0200 ---------------------------------------------------------------------- .../apache/camel/component/jms/JmsBinding.java | 3 ++- .../camel/component/jms/JmsMessageHelper.java | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/79be9327/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java ---------------------------------------------------------------------- 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 ed666df..22fa523 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 @@ -170,6 +170,7 @@ public class JmsBinding { // this works around a bug in the ActiveMQ property handling map.put("JMSXGroupID", jmsMessage.getStringProperty("JMSXGroupID")); + map.put("JMSXUserID", jmsMessage.getStringProperty("JMSXUserID")); } catch (JMSException e) { throw new RuntimeCamelException(e); } @@ -183,7 +184,7 @@ public class JmsBinding { while (names.hasMoreElements()) { String name = names.nextElement().toString(); try { - Object value = jmsMessage.getObjectProperty(name); + Object value = JmsMessageHelper.getProperty(jmsMessage, name); if (headerFilterStrategy != null && headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) { continue; http://git-wip-us.apache.org/repos/asf/camel/blob/79be9327/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java ---------------------------------------------------------------------- diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java index 89c60dc..8b8f15b 100644 --- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java +++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java @@ -70,7 +70,7 @@ public final class JmsMessageHelper { if (name.equals(key)) { answer = key; } else { - map.put(key, jmsMessage.getObjectProperty(key)); + map.put(key, getProperty(jmsMessage, key)); } } @@ -103,6 +103,22 @@ public final class JmsMessageHelper { } /** + * Gets a JMS property + * + * @param jmsMessage the JMS message + * @param name name of the property to get + * @return the property value, or <tt>null</tt> if does not exists + * @throws JMSException can be thrown + */ + public static Object getProperty(Message jmsMessage, String name) throws JMSException { + Object value = jmsMessage.getObjectProperty(name); + if (value == null) { + value = jmsMessage.getStringProperty(name); + } + return value; + } + + /** * Sets the property on the given JMS message. * * @param jmsMessage the JMS message