Sorry, it’s my mistake. I will commit a quick fix for it shortly. -- Willem Jiang
Red Hat, Inc. Web: http://www.redhat.com Blog: http://willemjiang.blogspot.com (English) http://jnn.iteye.com (Chinese) Twitter: willemjiang Weibo: 姜宁willem On September 28, 2014 at 5:51:50 AM, Babak Vahdat (babak.vah...@swissonline.ch) wrote: > Hi Willem, > > I guess the naming of the setter method is wrong (doesn’t adhere the Java > bean style) which’s why we do currently fail to invoke it through our > IntrospectionSupport utility when it’s given through an URI option: > https://github.com/apache/camel/commit/53792cc1cf4c45f3fae6d8cc84a3b15fb12cc05a#diff-154901a934ad9ebad992c3fa1e8bbcbaR409 > > > This is exactly why this setter doesn’t get invoked at all although you set > it as an URI option below > https://github.com/apache/camel/commit/53792cc1cf4c45f3fae6d8cc84a3b15fb12cc05a#diff-cca41fa34076a43d0940e4366508432dR67 > > > Also the ticket is marked as fixed but I didn't find this option being > enlisted > http://camel.apache.org/cxfrs.html > > Babak > > Willem.Jiang wrote > > I can add an option to cxfrs endpoint to avoid sending the payload in > > DELETE method. In this way, we could keep old behaviour of CxfProducer > > unchanged by default. > > > > Any thoughts? > > > > > > -- > > Willem Jiang > > > > Red Hat, Inc. > > Web: http://www.redhat.com > > Blog: http://willemjiang.blogspot.com (English) > > http://jnn.iteye.com (Chinese) > > Twitter: willemjiang > > Weibo: 姜宁willem > > > > > > > > On September 24, 2014 at 9:47:58 PM, Sergey Beryozkin ( > > > sberyozkin@ > > > ) wrote: > >> Hi Dan, Willem > >> On 24/09/14 14:37, Daniel Kulp wrote: > >> > > >> > That’s likely a different issue. Nt sure the parameter should be added > >> as part of the > >> body in this case as part of the consumer. I’d defer that to Sergey, but > >> certainly the CxfProducer > >> needs to be able to send a DELETE with a payload. > >> > > >> It is indeed the case of the client proxy unintentionally picking up a > >> payload and using it in DELETE, so indeed it is about the optional > >> payload exclusion as opposed to completely blocking the client to avoid > >> sending payloads with DELETE > >> > >> Willem, IMHO this should be optional > >> > >> Thanks, Sergey > >> > >> > Dan > >> > > >> > > >> > > >> > On Sep 24, 2014, at 9:24 AM, Willem Jiang wrote: > >> > > >> >> Actually, this patch is try to avoid sending the message body with the > >> DELETE method > >> if camel proxy the request just like this > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> As camel-cxfrs consumer put the invocation parameters into the camel > >> message body, > >> the proxy just add the message body 124 like this > >> >> > >> >> 2014-09-24 21:00:19,378 [qtp841166421-29] INFO LoggingInInterceptor - > >> Inbound > >> Message > >> >> ---------------------------- > >> >> ID: 11 > >> >> Address: > >> http://localhost:1101/CxfRsRouterTest/route/customerservice/customers/124/ > >> > >> >> Http-Method: DELETE > >> >> Content-Type: > >> >> Headers: {accept-encoding=[gzip,deflate], connection=[keep-alive], > >> Content-Type=[null], > >> Host=[localhost:1101], User-Agent=[Apache-HttpClient/4.3.3 (java 1.5)]} > >> >> -------------------------------------- > >> >> 2014-09-24 21:00:19,380 [qtp841166421-29] INFO body - > >> Exchange[ExchangePattern: > >> InOut, BodyType: org.apache.cxf.message.MessageContentsList, Body: 124] > >> >> 2014-09-24 21:00:19,385 [qtp841166421-29] INFO LoggingOutInterceptor - > >> Outbound > >> Message > >> >> --------------------------- > >> >> ID: 12 > >> >> Address: > >> http://localhost:1102/CxfRsRouterTest/rest/customerservice/customers/124/ > >> >> Http-Method: DELETE > >> >> Content-Type: application/xml > >> >> Headers: {Host=[localhost:1101], > >> org.apache.cxf.request.method=[DELETE], > >> accept-encoding=[gzip,deflate], connection=[keep-alive], > >> org.apache.cxf.message.Message.PATH_INFO=[/customerservice/customers/124/], > >> > >> breadcrumbId=[ID-localhost-51196-1411563616702-4-3], Accept=[*/*], > >> org.apache.cxf.request.uri=[/CxfRsRouterTest/route/customerservice/customers/124/], > >> > >> User-Agent=[Apache-HttpClient/4.3.3 (java 1.5)], > >> Content-Type=[application/xml]} > >> >> Payload: 124 > >> >> > >> >> If we remove the message body in the application level (in the camel > >> route), the camel > >> route could be more complex as it need to know the underlay http request > >> method. > >> >> > >> >> That is the reason that I create this JIRA to apply the best practise > >> here. > >> >> > >> >> > >> >> > >> >> -- > >> >> Willem Jiang > >> >> > >> >> Red Hat, Inc. > >> >> Web: http://www.redhat.com > >> >> Blog: http://willemjiang.blogspot.com (English) > >> >> http://jnn.iteye.com (Chinese) > >> >> Twitter: willemjiang > >> >> Weibo: 姜宁willem > >> >> > >> >> > >> >> > >> >> On September 24, 2014 at 7:49:26 PM, Daniel Kulp ( > > > dkulp@ > > > ) wrote: > >> >>> > >> >>> 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, > > > ningjiang@ > > > 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 > >> >>>> Authored: Wed Sep 24 13:41:41 2014 +0800 > >> >>>> Committer: Willem Jiang > >> >>>> 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 @@ > >> >>>> > >> >>>> > >> >>>> > >> >>>> + > >> >>>> > >> >>>> > >> >>>> True > >> >>>> > >> >>> > >> >>> -- > >> >>> Daniel Kulp > >> >>> > > > dkulp@ > > > - http://dankulp.com/blog > >> >>> Talend Community Coder - http://coders.talend.com > >> > > >> > >> > > > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Re-2-3-git-commit-CAMEL-7856-camel-cxf-producer-HttpAPI-should-not-send-the-message-body-when-using-d-tp5756960p5757113.html > > Sent from the Camel Development mailing list archive at Nabble.com. >