You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/02/11 07:13:10 UTC

svn commit: r743243 - in /camel/branches/camel-1.x/components/camel-cxf: ./ src/main/java/org/apache/camel/component/cxf/ src/main/java/org/apache/camel/component/cxf/util/ src/test/java/org/apache/camel/component/cxf/

Author: ningjiang
Date: Wed Feb 11 06:13:10 2009
New Revision: 743243

URL: http://svn.apache.org/viewvc?rev=743243&view=rev
Log:
CAMEL-1330 added a unit test for testing the response code, also fixed this issue in Camel 1.x branch

Modified:
    camel/branches/camel-1.x/components/camel-cxf/pom.xml
    camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
    camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
    camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java

Modified: camel/branches/camel-1.x/components/camel-cxf/pom.xml
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/pom.xml?rev=743243&r1=743242&r2=743243&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-cxf/pom.xml (original)
+++ camel/branches/camel-1.x/components/camel-cxf/pom.xml Wed Feb 11 06:13:10 2009
@@ -73,6 +73,12 @@
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+    
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-http</artifactId>
+      <scope>test</scope>
+    </dependency>
 
     <dependency>
       <groupId>commons-logging</groupId>

Modified: camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java?rev=743243&r1=743242&r2=743243&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java (original)
+++ camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java Wed Feb 11 06:13:10 2009
@@ -165,7 +165,11 @@
         if (context != null) {
             MessageContext messageContext = new WrappedMessageContext(context, null, Scope.HANDLER);
             response.put(Client.RESPONSE_CONTEXT, messageContext);
-
+            //put the ResponseCode in the response context
+            Object value = context.get(Message.RESPONSE_CODE);
+            if (value != null) {
+                response.put(Message.RESPONSE_CODE, value);
+            }
         }
     }
 

Modified: camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java?rev=743243&r1=743242&r2=743243&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java (original)
+++ camel/branches/camel-1.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java Wed Feb 11 06:13:10 2009
@@ -105,16 +105,17 @@
 
         // propagate request context
         key = Client.REQUEST_CONTEXT;
-        value = message.get(key);
+        value = message.get(key);        
         if (value != null && !strategy.applyFilterToExternalHeaders(key, value)) {
             headers.put(key, value);
         }
 
         // propagate response context
         key = Client.RESPONSE_CONTEXT;
-        value = message.get(key);
+        value = message.get(key);        
         if (value != null && !strategy.applyFilterToExternalHeaders(key, value)) {
             headers.put(key, value);
-        }
+        }      
+        
     }
 }

Modified: camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java?rev=743243&r1=743242&r2=743243&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java (original)
+++ camel/branches/camel-1.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java Wed Feb 11 06:13:10 2009
@@ -21,6 +21,8 @@
 import javax.xml.ws.Service;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.component.http.HttpOperationFailedException;
 import org.apache.camel.spring.SpringCamelContext;
 import org.apache.cxf.jaxws.EndpointImpl;
 import org.apache.hello_world_soap_http.Greeter;
@@ -36,6 +38,12 @@
                                                 "SOAPService");
     private final QName routerPortName = new QName("http://apache.org/hello_world_soap_http",
                                                 "RouterPort");
+    
+    private final String testDocLitFaultBody = 
+        "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+        + "<soap:Body><testDocLitFault xmlns=\"http://apache.org/hello_world_soap_http/types\">"
+        + "<faultType>NoSuchCodeLitFault</faultType></testDocLitFault>"
+        + "</soap:Body></soap:Envelope>";
 
     @Override
     protected void setUp() throws Exception {
@@ -86,7 +94,16 @@
             // expect the fault here
             assertNotNull("The fault info should not be null", fault.getFaultInfo());
         }
-
+    }
+    
+    public void testRoutingSOAPFault() throws Exception {
+        try {
+            template.sendBody("http://localhost:9003/CamelContext/RouterPort", testDocLitFaultBody);
+            fail("Should get an exception here.");
+        } catch (RuntimeCamelException exception) {
+            assertTrue("It should get the response error", exception.getCause() instanceof HttpOperationFailedException);
+            assertEquals("Get a wrong response code", ((HttpOperationFailedException)exception.getCause()).getStatusCode(), 500);
+        }
     }
     
     @Override