Author: wtam
Date: Mon May  2 15:35:54 2011
New Revision: 1098630

URL: http://svn.apache.org/viewvc?rev=1098630&view=rev
Log:
Commit fix for [CAMEL-3927] on behalf of Aki Yoshida

Added:
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerPayloadProviderTest.java
   (with props)
Modified:
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerProviderTest.java

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java?rev=1098630&r1=1098629&r2=1098630&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
 Mon May  2 15:35:54 2011
@@ -29,9 +29,11 @@ import java.util.TreeMap;
 import javax.activation.DataHandler;
 import javax.security.auth.Subject;
 import javax.xml.namespace.QName;
+import javax.xml.transform.Source;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.ws.Holder;
 
+import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -648,8 +650,13 @@ public class DefaultCxfBinding implement
                 part = ((Holder)part).value;
             }
                         
-            if (part instanceof DOMSource) {
-                Element element = getFirstElement(((DOMSource)part).getNode());
+            if (part instanceof Source) {
+                Element element;
+                if (part instanceof DOMSource) {
+                    element = getFirstElement(((DOMSource)part).getNode());
+                } else {
+                    element = getFirstElement((Source)part);
+                }
 
                 if (element != null) {
                     answer.add(element);
@@ -659,7 +666,6 @@ public class DefaultCxfBinding implement
                     LOG.trace("Extract body element {}",
                               element == null ? "null" : 
XMLUtils.toString(element));
                 }
-                
             } else if (part instanceof Element) {
                 answer.add((Element)part);
             } else {
@@ -694,6 +700,15 @@ public class DefaultCxfBinding implement
         return DOMUtils.getFirstElement(node);
     }
     
+    private static Element getFirstElement(Source source) {
+        try {
+            return 
((Document)XMLUtils.fromSource(source)).getDocumentElement();
+        } catch (Exception e) {
+            // ignore
+        }
+        return null;
+    }
+    
     public void copyJaxWsContext(org.apache.cxf.message.Exchange cxfExchange, 
Map<String, Object> context) {
         if (cxfExchange.getOutMessage() != null) {
             org.apache.cxf.message.Message outMessage = 
cxfExchange.getOutMessage();

Added: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerPayloadProviderTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerPayloadProviderTest.java?rev=1098630&view=auto
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerPayloadProviderTest.java
 (added)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerPayloadProviderTest.java
 Mon May  2 15:35:54 2011
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cxf;
+
+public class CxfConsumerPayloadProviderTest extends CxfConsumerProviderTest {
+
+    @Override
+    protected String getFromEndpointUri() {
+        return super.getFromEndpointUri() + "&dataFormat=PAYLOAD";
+    }
+
+}

Propchange: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerPayloadProviderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerPayloadProviderTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerProviderTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerProviderTest.java?rev=1098630&r1=1098629&r2=1098630&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerProviderTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerProviderTest.java
 Mon May  2 15:35:54 2011
@@ -17,7 +17,6 @@
 
 package org.apache.camel.component.cxf;
 
-import java.util.List;
 
 import org.w3c.dom.Node;
 
@@ -27,9 +26,6 @@ import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.converter.jaxp.XmlConverter;
 import org.apache.camel.test.junit4.CamelTestSupport;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.frontend.ClientFactoryBean;
-import org.apache.cxf.frontend.ClientProxyFactoryBean;
 import org.junit.Test;
 
 public class CxfConsumerProviderTest extends CamelTestSupport {
@@ -52,7 +48,7 @@ public class CxfConsumerProviderTest ext
         return new RouteBuilder() {
             public void configure() {
                 errorHandler(noErrorHandler());
-                from(SIMPLE_ENDPOINT_URI).process(new Processor() {
+                from(getFromEndpointUri()).process(new Processor() {
                     public void process(final Exchange exchange) {
                         Message in = exchange.getIn();
                         // Get the parameter list
@@ -87,5 +83,9 @@ public class CxfConsumerProviderTest ext
         assertTrue("Get a wrong response ", 
response.endsWith(RESPONSE_MESSAGE_END));
     }
 
+    
+    protected String getFromEndpointUri() {
+        return SIMPLE_ENDPOINT_URI;
+    }
 
 }


Reply via email to