You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dk...@apache.org on 2012/07/17 21:51:08 UTC
svn commit: r1362626 -
/camel/branches/camel-2.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
Author: dkulp
Date: Tue Jul 17 19:51:08 2012
New Revision: 1362626
URL: http://svn.apache.org/viewvc?rev=1362626&view=rev
Log:
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.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java
Modified: camel/branches/camel-2.10.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.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java?rev=1362626&r1=1362625&r2=1362626&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java (original)
+++ camel/branches/camel-2.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java Tue Jul 17 19:51:08 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));