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 2013/09/18 11:20:48 UTC

[4/6] git commit: CAMEL-6764: camel-jms - Add workaround for AMQ to get JMSXUserID

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/f63a7698
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f63a7698
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f63a7698

Branch: refs/heads/camel-2.12.x
Commit: f63a7698a736b6be1657b7257323cc8fd360a876
Parents: e6326d9
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Sep 18 11:19:16 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Sep 18 11:19:41 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/f63a7698/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 b34479e..9cb393a 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/f63a7698/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