You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2009/02/23 13:03:06 UTC

svn commit: r746974 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/impl/ components/camel-jms/src/main/java/org/apache/camel/component/jms/

Author: jstrachan
Date: Mon Feb 23 12:03:03 2009
New Revision: 746974

URL: http://svn.apache.org/viewvc?rev=746974&view=rev
Log:
added fix for CAMEL-1375

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
    camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java?rev=746974&r1=746973&r2=746974&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java Mon Feb 23 12:03:03 2009
@@ -187,4 +187,9 @@
      * Returns <tt>true</tt> if this message has any attachments.
      */
     boolean hasAttachments();
+
+    /**
+     * Returns the unique ID for a message exchange if this message is capable of creating one or null if not
+     */
+    String createExchangeId();
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java?rev=746974&r1=746973&r2=746974&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java Mon Feb 23 12:03:03 2009
@@ -292,7 +292,7 @@
 
     public String getExchangeId() {
         if (exchangeId == null) {
-            exchangeId = DefaultExchange.DEFAULT_ID_GENERATOR.generateId();
+            exchangeId = createExchangeId();
         }
         return exchangeId;
     }
@@ -356,4 +356,12 @@
         }
     }
 
+    protected String createExchangeId() {
+        String answer = in.createExchangeId();
+        if (answer == null) {
+            answer = DefaultExchange.DEFAULT_ID_GENERATOR.generateId();
+        }
+        return answer;
+    }
+
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java?rev=746974&r1=746973&r2=746974&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java Mon Feb 23 12:03:03 2009
@@ -172,5 +172,8 @@
     protected boolean hasPopulatedHeaders() {
         return headers != null;
     }
-    
+
+    public String createExchangeId() {
+        return null;
+    }
 }

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java?rev=746974&r1=746973&r2=746974&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java Mon Feb 23 12:03:03 2009
@@ -189,4 +189,16 @@
         return value != null ? value.toString().replaceAll("[^a-zA-Z0-9\\.\\_\\-]", "_") : "";
     }
 
+    @Override
+    public String createExchangeId() {
+        if (jmsMessage != null) {
+            try {
+                return jmsMessage.getJMSMessageID();
+            } catch (JMSException e) {
+                throw new RuntimeCamelException("Failed to get JMSMessageID property", e);
+            }
+        }
+        return super.createExchangeId();
+
+    }
 }