Author: ningjiang
Date: Fri Jun 24 06:14:30 2011
New Revision: 1139163

URL: http://svn.apache.org/viewvc?rev=1139163&view=rev
Log:
CAMEL-4143 Fixed the issue of CxfPayload to Node conversion

Modified:
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java?rev=1139163&r1=1139162&r2=1139163&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
 Fri Jun 24 06:14:30 2011
@@ -69,6 +69,15 @@ public final class CxfPayloadConverter {
     public static <T> NodeList cxfPayloadToNodeList(CxfPayload<T> payload, 
Exchange exchange) {
         return new NodeListWrapper(payload.getBody());
     }
+    
+    @Converter
+    public static <T> Node cxfPayLoadToNode(CxfPayload<T> payload, Exchange 
exchange) {
+        List<Element> payloadBodyElements = payload.getBody();
+        if (payloadBodyElements.size() > 0) {
+            return payloadBodyElements.get(0);
+        }
+        return null;
+    }
 
     @SuppressWarnings("unchecked")
     @FallbackConverter

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java?rev=1139163&r1=1139162&r2=1139163&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java
 Fri Jun 24 06:14:30 2011
@@ -48,6 +48,7 @@ public class CxfPayloadConverterTest ext
         super.setUp();
         File file = new 
File("src/test/resources/org/apache/camel/component/cxf/converter/test.xml");
         DocumentBuilderFactory documentBuilderFactory = 
DocumentBuilderFactory.newInstance();
+        documentBuilderFactory.setNamespaceAware(true);
         DocumentBuilder documentBuilder = 
documentBuilderFactory.newDocumentBuilder();
         document = documentBuilder.parse(file);
         document.getDocumentElement().normalize();
@@ -112,6 +113,15 @@ public class CxfPayloadConverterTest ext
         exchange.getIn().setBody(payload);
         node = exchange.getIn().getBody(Node.class);
         assertNotNull(node);
+        
+        // To make sure we always get the element here
+        Element root = (Element) node;
+        assertEquals("root element name", "root", root.getNodeName());
+        assertEquals("root element namespace", "http://www.test.org/foo";, 
root.getNamespaceURI());
+        Element bar = (Element) root.getElementsByTagName("bar").item(0);
+        assertEquals("child element name", "bar", bar.getNodeName());
+        assertEquals("child element namespace", "http://www.test.org/foo";,
+            bar.getNamespaceURI());
     }
 
 }


Reply via email to