Willem,

My reading of the discussion is that a DELETE MAY contain a message body, but 
the semantics are somewhat undefined.   A proxy SHOULD forward that body on.   
This commit seems to make sure it doesn’t forward it along.    Thus, I’m kind 
of against this commit.

We also had a discussion about this on the CXF list a while ago where the body 
was needed:

http://cxf.547215.n5.nabble.com/Sending-body-in-DELETE-HTTP-Requests-with-JAXRSClientFactoryBean-tt5735129.html



Dan



On Sep 24, 2014, at 1:44 AM, [email protected] wrote:

> CAMEL-7856 camel-cxf producer HttpAPI should not send the message body when 
> using DELETE method
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/camel/repo
> Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5b4abb61
> Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5b4abb61
> Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5b4abb61
> 
> Branch: refs/heads/camel-2.13.x
> Commit: 5b4abb619b808d317da99037b734e78fc4398d29
> Parents: 2b1296e
> Author: Willem Jiang <[email protected]>
> Authored: Wed Sep 24 13:41:41 2014 +0800
> Committer: Willem Jiang <[email protected]>
> Committed: Wed Sep 24 13:43:43 2014 +0800
> 
> ----------------------------------------------------------------------
> .../java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java | 4 ++--
> .../org/apache/camel/component/cxf/jaxrs/CxfRsSpringRouter.xml   | 1 +
> 2 files changed, 3 insertions(+), 2 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/camel/blob/5b4abb61/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
> ----------------------------------------------------------------------
> diff --git 
> a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
>  
> b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
> index 572e991..c580445 100644
> --- 
> a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
> +++ 
> b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
> @@ -158,8 +158,8 @@ public class CxfRsProducer extends DefaultProducer {
> 
>         // set the body
>         Object body = null;
> -        if (!"GET".equals(httpMethod)) {
> -            // need to check the request object.           
> +        if (!"GET".equals(httpMethod) && !"DELETE".equals(httpMethod)) {
> +            // need to check the request object if the http Method is not 
> GET or DELETE           
>             body = binding.bindCamelMessageBodyToRequestBody(inMessage, 
> exchange);
>             if (LOG.isTraceEnabled()) {
>                 LOG.trace("Request body = " + body);
> 
> http://git-wip-us.apache.org/repos/asf/camel/blob/5b4abb61/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringRouter.xml
> ----------------------------------------------------------------------
> diff --git 
> a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringRouter.xml
>  
> b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringRouter.xml
> index 154b572..9f51dd6 100644
> --- 
> a/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringRouter.xml
> +++ 
> b/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsSpringRouter.xml
> @@ -64,6 +64,7 @@
>   <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
>     <route>
>        <from uri="cxfrs://bean://rsServer"/>
> +       <to uri="log:body?level=INFO"/>
>        <!-- We can remove this configure as the CXFRS producer is using the 
> HttpAPI by default -->
>        <setHeader headerName="CamelCxfRsUsingHttpAPI">
>          <constant>True</constant>        
> 

-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to