Hi Christian

Please try always to add unit test when you commit a change in any of
the components. Its really important that we improve testing coverage.
This is not a trivial change and it could potential affect something.


On Mon, Jan 24, 2011 at 2:55 PM,  <cschnei...@apache.org> wrote:
> Author: cschneider
> Date: Mon Jan 24 13:55:22 2011
> New Revision: 1062776
>
> URL: http://svn.apache.org/viewvc?rev=1062776&view=rev
> Log:
> CAMEL-3581 Forward http response code from CXF to Camel
>
> Modified:
>    
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java
>    
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
>
> Modified: 
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java
> URL: 
> http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java?rev=1062776&r1=1062775&r2=1062776&view=diff
> ==============================================================================
> --- 
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java
>  (original)
> +++ 
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelDestination.java
>  Mon Jan 24 13:55:22 2011
> @@ -51,6 +51,8 @@ import org.apache.cxf.wsdl.EndpointRefer
>
>  /**
>  * @version $Revision$
> + *
> + * Forwards messages from Camel to CXF and the CXF response back to Camel
>  */
>  public class CamelDestination extends AbstractDestination implements 
> Configurable {
>     protected static final String BASE_BEAN_NAME_SUFFIX = 
> ".camel-destination";
> @@ -243,6 +245,9 @@ public class CamelDestination extends Ab
>                                             
> camelExchange.getOut().getHeaders(), camelExchange);
>     }
>
> +    /**
> +     * Receives a response from CXF and forwards it to the camel route the 
> request came in from
> +     */
>     private class CamelOutputStream extends CachedOutputStream {
>         private Message outMessage;
>
>
> Modified: 
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
> URL: 
> http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java?rev=1062776&r1=1062775&r2=1062776&view=diff
> ==============================================================================
> --- 
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
>  (original)
> +++ 
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
>  Mon Jan 24 13:55:22 2011
> @@ -85,9 +85,9 @@ public final class CxfHeaderHelper {
>             return;
>         }
>
> +        // Copy the CXF protocol headers to the camel headers
>         Map<String, List<String>> cxfHeaders =
>             CastUtils.cast((Map)message.get(Message.PROTOCOL_HEADERS));
> -
>         if (cxfHeaders != null) {
>             for (Map.Entry<String, List<String>> entry : 
> cxfHeaders.entrySet()) {
>                 if (!strategy.applyFilterToExternalHeaders(entry.getKey(), 
> entry.getValue(), exchange)) {
> @@ -116,6 +116,13 @@ public final class CxfHeaderHelper {
>         if (value != null && !strategy.applyFilterToExternalHeaders(key, 
> value, exchange)) {
>             headers.put(key, value);
>         }
> +
> +        // propagate response code
> +        key = Message.RESPONSE_CODE;
> +        value = message.get(key);
> +        if (value != null && !strategy.applyFilterToExternalHeaders(key, 
> value, exchange)) {
> +            headers.put(Exchange.HTTP_RESPONSE_CODE, value);
> +        }
>     }
>
>  }
>
>
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cib...@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to