You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ge...@apache.org on 2010/03/12 09:10:19 UTC

svn commit: r922172 - in /servicemix/components/engines/servicemix-camel/trunk/src: main/java/org/apache/servicemix/camel/JbiBinding.java test/java/org/apache/servicemix/camel/JbiBindingTest.java

Author: gertv
Date: Fri Mar 12 08:10:19 2010
New Revision: 922172

URL: http://svn.apache.org/viewvc?rev=922172&view=rev
Log:
SMXCOMP-975: servicemix-camel - Should preserve properties key case when copying from Camel to JBI

Modified:
    servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiBinding.java
    servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiBindingTest.java

Modified: servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiBinding.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiBinding.java?rev=922172&r1=922171&r2=922172&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiBinding.java (original)
+++ servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiBinding.java Fri Mar 12 08:10:19 2010
@@ -18,6 +18,7 @@ package org.apache.servicemix.camel;
 
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.Map;
 import java.util.concurrent.Callable;
 
 import javax.jbi.messaging.InOptionalOut;
@@ -239,8 +240,9 @@ public class JbiBinding {
             normalizedMessage.setSecuritySubject(getSecuritySubject(message));
         }
         
-        for (String key : message.getHeaders().keySet()) {
-            Object value = message.getHeader(key);
+        for (Map.Entry<String, Object> entry : message.getHeaders().entrySet()) {
+            String key = entry.getKey();
+            Object value = entry.getValue();
             if (value != null && !strategies.applyFilterToCamelHeaders(key, value, message.getExchange())) {
                 normalizedMessage.setProperty(key, value);
             }
@@ -256,8 +258,8 @@ public class JbiBinding {
         copyHeadersFromCamelToJbi(exchange, messageExchange);
         
         NormalizedMessage in = messageExchange.getMessage("in");
-        for (String key : exchange.getIn().getHeaders().keySet()) {
-            in.setProperty(key, exchange.getIn().getHeader(key));
+        for (Map.Entry<String, Object> entry : exchange.getIn().getHeaders().entrySet()) {
+            in.setProperty(entry.getKey(), entry.getValue());
         }        
         
         if (isOutCapable(messageExchange)) {

Modified: servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiBindingTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiBindingTest.java?rev=922172&r1=922171&r2=922172&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiBindingTest.java (original)
+++ servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiBindingTest.java Fri Mar 12 08:10:19 2010
@@ -175,7 +175,39 @@ public class JbiBindingTest extends Test
         assertEquals("Should only have copied one property (ignore non-serializable properties)", 
                      1, to.getPropertyNames().size());
     }
-    
+
+    public void testCopyCamelMessageToJbiPreserveKeyCase() throws Exception {
+        NormalizedMessage to = new MockNormalizedMessage();
+
+        Message from = new DefaultMessage();
+        from.setBody(CONTENT);
+        from.setHeader("Key 1", "Key 1's value");
+        from.setHeader("KEY 2", "KEY 2's value");
+        from.setHeader("keY 3", "keY 3's value");
+
+        binding.copyFromCamelToJbi(from, to);
+
+        assertEquals("Key 1's value", to.getProperty("Key 1"));
+        assertEquals("KEY 2's value", to.getProperty("KEY 2"));
+        assertEquals("keY 3's value", to.getProperty("keY 3"));
+    }
+
+    public void testCopyCamelExchangeToJbiPreserveKeyCase() throws Exception {
+        MessageExchange to = new MockMessageExchange();
+        to.setMessage(to.createMessage(), "in");
+
+        Exchange from = binding.createExchange(to);
+        from.getIn().setHeader("Key 1", "Key 1's value");
+        from.getIn().setHeader("KEY 2", "KEY 2's value");
+        from.getIn().setHeader("keY 3", "keY 3's value");
+
+        binding.copyFromCamelToJbi(from, to);
+
+        assertEquals("Key 1's value", to.getMessage("in").getProperty("Key 1"));
+        assertEquals("KEY 2's value", to.getMessage("in").getProperty("KEY 2"));
+        assertEquals("keY 3's value", to.getMessage("in").getProperty("keY 3"));
+    }
+
     public void testCopyFromCamelToJbiWithSecuritySubject() throws Exception {
         Exchange from = new DefaultExchange(new DefaultCamelContext());
         from.getIn().setHeader(JbiBinding.SECURITY_SUBJECT, SUBJECT);