Author: dkulp Date: Tue Jul 17 19:55:26 2012 New Revision: 1362629 URL: http://svn.apache.org/viewvc?rev=1362629&view=rev Log: Merged revisions 1362626 via git cherry-pick from https://svn.apache.org/repos/asf/camel/branches/camel-2.10.x
........ r1362626 | dkulp | 2012-07-17 15:51:08 -0400 (Tue, 17 Jul 2012) | 10 lines Merged revisions 1362624 via git cherry-pick from https://svn.apache.org/repos/asf/camel/trunk ........ r1362624 | dkulp | 2012-07-17 15:49:52 -0400 (Tue, 17 Jul 2012) | 2 lines Optimized "to document" for cxf payload ........ ........ Modified: camel/branches/camel-2.9.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java Modified: camel/branches/camel-2.9.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java?rev=1362629&r1=1362628&r2=1362629&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java (original) +++ camel/branches/camel-2.9.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java Tue Jul 17 19:55:26 2012 @@ -20,6 +20,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import javax.xml.stream.XMLStreamException; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMSource; @@ -34,6 +35,7 @@ import org.apache.camel.FallbackConverte import org.apache.camel.TypeConverter; import org.apache.camel.component.cxf.CxfPayload; import org.apache.camel.spi.TypeConverterRegistry; +import org.apache.cxf.staxutils.StaxUtils; @Converter public final class CxfPayloadConverter { @@ -144,6 +146,17 @@ public final class CxfPayloadConverter { CxfPayload<?> payload = (CxfPayload<?>) value; if (payload.getBodySources().size() == 1) { + if (type.isAssignableFrom(Document.class)) { + Source s = payload.getBodySources().get(0); + Document d; + try { + d = StaxUtils.read(s); + } catch (XMLStreamException e) { + throw new RuntimeException(e); + } + payload.getBodySources().set(0, new DOMSource(d.getDocumentElement())); + return type.cast(d); + } TypeConverter tc = registry.lookup(type, Source.class); if (tc != null) { T t = tc.convertTo(type, payload.getBodySources().get(0));