Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6BFCD9198 for ; Mon, 16 Jul 2012 16:56:30 +0000 (UTC) Received: (qmail 11273 invoked by uid 500); 16 Jul 2012 16:56:30 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 11240 invoked by uid 500); 16 Jul 2012 16:56:30 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 11230 invoked by uid 99); 16 Jul 2012 16:56:30 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jul 2012 16:56:30 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jul 2012 16:56:28 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id A73DD23888CD; Mon, 16 Jul 2012 16:56:09 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1362128 - in /camel/branches/camel-2.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf: CxfEndpoint.java converter/CxfPayloadConverter.java Date: Mon, 16 Jul 2012 16:56:09 -0000 To: commits@camel.apache.org From: dkulp@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120716165609.A73DD23888CD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dkulp Date: Mon Jul 16 16:56:09 2012 New Revision: 1362128 URL: http://svn.apache.org/viewvc?rev=1362128&view=rev Log: Merged revisions 1362123 via git cherry-pick from https://svn.apache.org/repos/asf/camel/trunk ........ r1362123 | dkulp | 2012-07-16 12:53:52 -0400 (Mon, 16 Jul 2012) | 2 lines [CAMEL-5449] Try converting to Source first ........ Modified: camel/branches/camel-2.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java 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/CxfEndpoint.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java?rev=1362128&r1=1362127&r2=1362128&view=diff ============================================================================== --- camel/branches/camel-2.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java (original) +++ camel/branches/camel-2.10.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java Mon Jul 16 16:56:09 2012 @@ -29,6 +29,7 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stax.StAXSource; +import javax.xml.transform.stream.StreamSource; import javax.xml.ws.WebServiceProvider; import javax.xml.ws.handler.Handler; @@ -88,6 +89,7 @@ import org.apache.cxf.service.factory.Re import org.apache.cxf.service.model.BindingOperationInfo; import org.apache.cxf.service.model.MessagePartInfo; import org.apache.cxf.staxutils.StaxSource; +import org.apache.cxf.staxutils.StaxUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -916,6 +918,19 @@ public class CxfEndpoint extends Default } } return r.getLocalName(); + } else if (source instanceof StreamSource) { + //flip to stax so we can get the name + XMLStreamReader reader = StaxUtils.createXMLStreamReader(source); + StaxSource src2 = new StaxSource(reader); + sources.set(i, src2); + if (reader.getEventType() == XMLStreamReader.START_DOCUMENT) { + try { + reader.nextTag(); + } catch (XMLStreamException e) { + //ignore + } + } + return reader.getLocalName(); } return null; } 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=1362128&r1=1362127&r2=1362128&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 Mon Jul 16 16:56:09 2012 @@ -20,6 +20,8 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import javax.xml.transform.Source; + import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -65,6 +67,14 @@ public final class CxfPayloadConverter { } return new CxfPayload(headers, body); } + + @Converter + public static CxfPayload sourceToCxfPayload(Source src, Exchange exchange) { + List headers = new ArrayList(); + List body = new ArrayList(); + body.add(src); + return new CxfPayload(headers, body, null); + } @Converter public static NodeList cxfPayloadToNodeList(CxfPayload payload, Exchange exchange) { @@ -87,6 +97,13 @@ public final class CxfPayloadConverter { // use fallback type converter, so we can probably convert into // CxfPayloads from other types if (type.isAssignableFrom(CxfPayload.class)) { + if (!value.getClass().isArray()) { + TypeConverter tc = registry.lookup(Source.class, value.getClass()); + if (tc != null) { + Source src = tc.convertTo(Source.class, exchange, value); + return (T) sourceToCxfPayload(src, exchange); + } + } TypeConverter tc = registry.lookup(NodeList.class, value.getClass()); if (tc != null) { NodeList nodeList = tc.convertTo(NodeList.class, exchange, value);