CxfPayload to Node conversion is not working properly ------------------------------------------------------
Key: CAMEL-4143 URL: https://issues.apache.org/jira/browse/CAMEL-4143 Project: Camel Issue Type: Bug Components: camel-cxf Affects Versions: 2.8.0 Reporter: Alexey Venderov Priority: Minor We are using {{camel-cxf}} component and building it from the sources. Also we have slightly modified {{CxfPayloadConverterTest.testCxfPayloadToNode}} test, added some additional checks. Here are the changes that were made to the test: {code:borderStyle=solid} Index: CxfPayloadConverterTest.java =================================================================== --- CxfPayloadConverterTest.java (revision 6644) +++ CxfPayloadConverterTest.java (revision 6686) @@ -49,6 +49,7 @@ DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); document = documentBuilder.parse(file); document.getDocumentElement().normalize(); @@ -118,5 +119,13 @@ exchange.getIn().setBody(payload); node = exchange.getIn().getBody(Node.class); assertNotNull(node); + 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()); } } {code} Since there is no explicit converter from {{CxfPayload}} to {{Node}} the fallback converter from {{CxfPayloadConverter}} is used for this conversion. Fallback converter from {{CxfPayloadConverter}} under the hood uses converters from {{XmlConverter}}. There are two suitable converters in {{XmlConverter}} class which are randomly selected. Some times {{public Element toDOMElement(Node node)}} converter is used and some times {{public Document toDOMDocument(final Node node)}} converter is used. If {{public Document toDOMDocument(final Node node)}} converter is used then test fails with {{ClassCastException}}. To avoid this, explicit converter from {{CxfPayload}} to {{Node}} should be added. Patch that adds {{CxfPayload}} to {{Node}} converter is provided. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira