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);