You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Claus Ibsen <cl...@gmail.com> on 2017/10/12 13:40:24 UTC

Re: camel git commit: CAMEL-11892 - breadcrumbId class cast failure if other than SAAJ used as WebServiceMessage impl

Hi Onder

I wonder if this is correct, does spring-ws have any mandatory
dependency on the servlet API?
With this commit there is suddenly a hardcoded dependency on http
servlet, maybe this is wrong.


On Thu, Oct 12, 2017 at 3:36 PM,  <on...@apache.org> wrote:
> Repository: camel
> Updated Branches:
>   refs/heads/master 9241cd211 -> ece63d7c9
>
>
> CAMEL-11892 - breadcrumbId class cast failure if other than SAAJ used as WebServiceMessage impl
>
>
> Project: http://git-wip-us.apache.org/repos/asf/camel/repo
> Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ece63d7c
> Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ece63d7c
> Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ece63d7c
>
> Branch: refs/heads/master
> Commit: ece63d7c9292fc16eb469f3713b905045ab33149
> Parents: 9241cd2
> Author: onders86 <on...@gmail.com>
> Authored: Thu Oct 12 10:19:33 2017 +0300
> Committer: onders86 <on...@gmail.com>
> Committed: Thu Oct 12 16:36:28 2017 +0300
>
> ----------------------------------------------------------------------
>  components/camel-spring-ws/pom.xml              |  6 ++++++
>  .../spring/ws/SpringWebserviceConsumer.java     | 20 +++++++++++++++++++-
>  2 files changed, 25 insertions(+), 1 deletion(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/camel/blob/ece63d7c/components/camel-spring-ws/pom.xml
> ----------------------------------------------------------------------
> diff --git a/components/camel-spring-ws/pom.xml b/components/camel-spring-ws/pom.xml
> index 19220a1..c04f104 100644
> --- a/components/camel-spring-ws/pom.xml
> +++ b/components/camel-spring-ws/pom.xml
> @@ -52,6 +52,12 @@
>        <groupId>org.apache.camel</groupId>
>        <artifactId>camel-spring</artifactId>
>      </dependency>
> +    <dependency>
> +      <groupId>javax.servlet</groupId>
> +      <artifactId>javax.servlet-api</artifactId>
> +      <version>${javax.servlet-api-version}</version>
> +      <scope>provided</scope>
> +    </dependency>
>
>      <!-- spring -->
>      <dependency>
>
> http://git-wip-us.apache.org/repos/asf/camel/blob/ece63d7c/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
> ----------------------------------------------------------------------
> diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
> index 5c9b72f..f2ba406 100644
> --- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
> +++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConsumer.java
> @@ -18,6 +18,8 @@ package org.apache.camel.component.spring.ws;
>
>  import java.util.Iterator;
>  import java.util.Map;
> +
> +import javax.servlet.http.HttpServletRequest;
>  import javax.xml.namespace.QName;
>  import javax.xml.soap.MimeHeaders;
>  import javax.xml.soap.SOAPMessage;
> @@ -82,7 +84,15 @@ public class SpringWebserviceConsumer extends DefaultConsumer implements Message
>      }
>
>      private void populateExchangeWithBreadcrumbFromMessageContext(MessageContext messageContext, Exchange exchange) {
> -        SaajSoapMessage saajSoap = (SaajSoapMessage) messageContext.getRequest();
> +        if (messageContext.getRequest() instanceof SaajSoapMessage) {
> +            SaajSoapMessage saajSoap = (SaajSoapMessage) messageContext.getRequest();
> +            populateExchangeWithBreadcrumbFromSaajMessage(exchange, saajSoap);
> +        } else {
> +            populateExchangeWithBreadcrumbFromMessageContext(exchange, messageContext);
> +        }
> +    }
> +
> +    private void populateExchangeWithBreadcrumbFromSaajMessage(Exchange exchange, SaajSoapMessage saajSoap) {
>          SOAPMessage soapMessageRequest = null;
>          if (saajSoap != null) {
>              soapMessageRequest = saajSoap.getSaajMessage();
> @@ -102,6 +112,14 @@ public class SpringWebserviceConsumer extends DefaultConsumer implements Message
>          }
>      }
>
> +    private void populateExchangeWithBreadcrumbFromMessageContext(Exchange exchange, MessageContext messageContext) {
> +        if (messageContext != null) {
> +            HttpServletRequest obj = (HttpServletRequest) messageContext.getProperty("transport.http.servletRequest");
> +            String breadcrumbId = (String) obj.getHeader(Exchange.BREADCRUMB_ID);
> +            exchange.getIn().setHeader(Exchange.BREADCRUMB_ID, breadcrumbId);
> +        }
> +    }
> +
>      private void populateExchangeFromMessageContext(MessageContext messageContext, Exchange exchange) {
>          populateExchangeWithPropertiesFromMessageContext(messageContext, exchange);
>
>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Re: camel git commit: CAMEL-11892 - breadcrumbId class cast failure if other than SAAJ used as WebServiceMessage impl

Posted by Onder SEZGIN <on...@gmail.com>.
Hi Claus,
It has come out due to private method
`populateExchangeWithBreadcrumbFromMessageContext`
used in SpringWebserviceConsumer.

I would not prefer depending on servlet API, has not got around with better
option to resolve http transport headers. other option would perhaps be
depending axiom. i did not like that too.


On Thu, Oct 12, 2017 at 4:40 PM, Claus Ibsen <cl...@gmail.com> wrote:

> Hi Onder
>
> I wonder if this is correct, does spring-ws have any mandatory
> dependency on the servlet API?
> With this commit there is suddenly a hardcoded dependency on http
> servlet, maybe this is wrong.
>
>
> On Thu, Oct 12, 2017 at 3:36 PM,  <on...@apache.org> wrote:
> > Repository: camel
> > Updated Branches:
> >   refs/heads/master 9241cd211 -> ece63d7c9
> >
> >
> > CAMEL-11892 - breadcrumbId class cast failure if other than SAAJ used as
> WebServiceMessage impl
> >
> >
> > Project: http://git-wip-us.apache.org/repos/asf/camel/repo
> > Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ece63d7c
> > Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ece63d7c
> > Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ece63d7c
> >
> > Branch: refs/heads/master
> > Commit: ece63d7c9292fc16eb469f3713b905045ab33149
> > Parents: 9241cd2
> > Author: onders86 <on...@gmail.com>
> > Authored: Thu Oct 12 10:19:33 2017 +0300
> > Committer: onders86 <on...@gmail.com>
> > Committed: Thu Oct 12 16:36:28 2017 +0300
> >
> > ----------------------------------------------------------------------
> >  components/camel-spring-ws/pom.xml              |  6 ++++++
> >  .../spring/ws/SpringWebserviceConsumer.java     | 20
> +++++++++++++++++++-
> >  2 files changed, 25 insertions(+), 1 deletion(-)
> > ----------------------------------------------------------------------
> >
> >
> > http://git-wip-us.apache.org/repos/asf/camel/blob/ece63d7c/
> components/camel-spring-ws/pom.xml
> > ----------------------------------------------------------------------
> > diff --git a/components/camel-spring-ws/pom.xml
> b/components/camel-spring-ws/pom.xml
> > index 19220a1..c04f104 100644
> > --- a/components/camel-spring-ws/pom.xml
> > +++ b/components/camel-spring-ws/pom.xml
> > @@ -52,6 +52,12 @@
> >        <groupId>org.apache.camel</groupId>
> >        <artifactId>camel-spring</artifactId>
> >      </dependency>
> > +    <dependency>
> > +      <groupId>javax.servlet</groupId>
> > +      <artifactId>javax.servlet-api</artifactId>
> > +      <version>${javax.servlet-api-version}</version>
> > +      <scope>provided</scope>
> > +    </dependency>
> >
> >      <!-- spring -->
> >      <dependency>
> >
> > http://git-wip-us.apache.org/repos/asf/camel/blob/ece63d7c/
> components/camel-spring-ws/src/main/java/org/apache/
> camel/component/spring/ws/SpringWebserviceConsumer.java
> > ----------------------------------------------------------------------
> > diff --git a/components/camel-spring-ws/src/main/java/org/apache/
> camel/component/spring/ws/SpringWebserviceConsumer.java
> b/components/camel-spring-ws/src/main/java/org/apache/
> camel/component/spring/ws/SpringWebserviceConsumer.java
> > index 5c9b72f..f2ba406 100644
> > --- a/components/camel-spring-ws/src/main/java/org/apache/
> camel/component/spring/ws/SpringWebserviceConsumer.java
> > +++ b/components/camel-spring-ws/src/main/java/org/apache/
> camel/component/spring/ws/SpringWebserviceConsumer.java
> > @@ -18,6 +18,8 @@ package org.apache.camel.component.spring.ws;
> >
> >  import java.util.Iterator;
> >  import java.util.Map;
> > +
> > +import javax.servlet.http.HttpServletRequest;
> >  import javax.xml.namespace.QName;
> >  import javax.xml.soap.MimeHeaders;
> >  import javax.xml.soap.SOAPMessage;
> > @@ -82,7 +84,15 @@ public class SpringWebserviceConsumer extends
> DefaultConsumer implements Message
> >      }
> >
> >      private void populateExchangeWithBreadcrumbFromMessageContext(MessageContext
> messageContext, Exchange exchange) {
> > -        SaajSoapMessage saajSoap = (SaajSoapMessage)
> messageContext.getRequest();
> > +        if (messageContext.getRequest() instanceof SaajSoapMessage) {
> > +            SaajSoapMessage saajSoap = (SaajSoapMessage)
> messageContext.getRequest();
> > +            populateExchangeWithBreadcrumbFromSaajMessage(exchange,
> saajSoap);
> > +        } else {
> > +            populateExchangeWithBreadcrumbFromMessageContext(exchange,
> messageContext);
> > +        }
> > +    }
> > +
> > +    private void populateExchangeWithBreadcrumbFromSaajMessage(Exchange
> exchange, SaajSoapMessage saajSoap) {
> >          SOAPMessage soapMessageRequest = null;
> >          if (saajSoap != null) {
> >              soapMessageRequest = saajSoap.getSaajMessage();
> > @@ -102,6 +112,14 @@ public class SpringWebserviceConsumer extends
> DefaultConsumer implements Message
> >          }
> >      }
> >
> > +    private void populateExchangeWithBreadcrumbFromMessageContext(Exchange
> exchange, MessageContext messageContext) {
> > +        if (messageContext != null) {
> > +            HttpServletRequest obj = (HttpServletRequest)
> messageContext.getProperty("transport.http.servletRequest");
> > +            String breadcrumbId = (String) obj.getHeader(Exchange.
> BREADCRUMB_ID);
> > +            exchange.getIn().setHeader(Exchange.BREADCRUMB_ID,
> breadcrumbId);
> > +        }
> > +    }
> > +
> >      private void populateExchangeFromMessageContext(MessageContext
> messageContext, Exchange exchange) {
> >          populateExchangeWithPropertiesFromMessageContext(messageContext,
> exchange);
> >
> >
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>