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,  <ond...@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 <ondersezgin+git...@gmail.com>
> Authored: Thu Oct 12 10:19:33 2017 +0300
> Committer: onders86 <ondersezgin+git...@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

Reply via email to