You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2012/12/06 07:46:14 UTC

svn commit: r1417747 [2/2] - in /camel/trunk/components/camel-spring-ws/src: main/java/org/apache/camel/component/spring/ws/ main/java/org/apache/camel/component/spring/ws/bean/ main/java/org/apache/camel/component/spring/ws/filter/impl/ main/java/org/...

Added: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ConsumerWSASameChannelParamsToTests.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ConsumerWSASameChannelParamsToTests.java?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ConsumerWSASameChannelParamsToTests.java (added)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ConsumerWSASameChannelParamsToTests.java Thu Dec  6 06:46:10 2012
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spring.ws.addressing;
+
+import java.net.URISyntaxException;
+
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.ws.soap.addressing.client.ActionCallback;
+import org.springframework.ws.soap.addressing.core.MessageAddressingProperties;
+
+public class ConsumerWSASameChannelParamsToTests extends AbstractConsumerTests {
+
+    public ActionCallback channelIn(String actionUri) throws URISyntaxException {
+        // same channel
+        return to(actionUri);
+    }
+
+    @Override
+    MessageAddressingProperties channelOut() {
+        return sameChannelParams();
+    }
+
+    @Override
+    protected AbstractXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext(new String[] {"org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsTOTests-context.xml"});
+    }
+
+}

Added: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ProducerParamsBasicTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ProducerParamsBasicTest.java?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ProducerParamsBasicTest.java (added)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ProducerParamsBasicTest.java Thu Dec  6 06:46:10 2012
@@ -0,0 +1,179 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spring.ws.addressing;
+
+import java.net.URI;
+
+import org.apache.camel.Produce;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.spring.ws.utils.OutputChannelReceiver;
+import org.apache.camel.component.spring.ws.utils.TestUtil;
+import org.apache.camel.test.junit4.CamelSpringTestSupport;
+import org.fest.assertions.Assertions;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.ws.soap.SoapMessage;
+import org.springframework.ws.soap.addressing.core.MessageAddressingProperties;
+
+public class ProducerParamsBasicTest extends CamelSpringTestSupport {
+
+    private static URI anonymousUri;
+
+    private final String xmlBody = "<GetQuote xmlns=\"http://www.webserviceX.NET/\"><symbol>GOOG</symbol></GetQuote>";
+
+    private OutputChannelReceiver sender;
+
+    @Produce
+    private ProducerTemplate template;
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        sender = getMandatoryBean(OutputChannelReceiver.class, "senderReceiver");
+        sender.clear();
+    }
+
+    @BeforeClass
+    public static void setUpConstants() throws Exception {
+        anonymousUri = new URI("http://www.w3.org/2005/08/addressing/anonymous");
+    }
+
+    @Test
+    public void testDefaultReplyTo() throws Exception {
+        template.requestBody("direct:defaultOk", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(anonymousUri);
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(anonymousUri);
+
+    }
+
+    @Test
+    public void testDefaulFaultTo() throws Exception {
+        template.requestBody("direct:defaultFault", xmlBody);
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(anonymousUri);
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(anonymousUri);
+
+    }
+
+    @Test
+    public void testReplyTo() throws Exception {
+        template.requestBody("direct:replyTo", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(new URI("mailto://replyTo@chocolatejar.eu"));
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(new URI("http://fault.to"));
+
+    }
+
+    @Test
+    public void testFaultTo() throws Exception {
+        template.requestBody("direct:faultTo", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(anonymousUri);
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(new URI("http://fault.to"));
+
+    }
+
+    @Test
+    public void testFaultFollowsReply() throws Exception {
+        template.requestBody("direct:omittedFaultTo", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(new URI("http://reply.to"));
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(new URI("http://reply.to"));
+
+    }
+
+    @Test
+    public void testReplyDoesntFollowFault() throws Exception {
+        template.requestBody("direct:omittedReplyTo", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(anonymousUri);
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(new URI("http://fault.to"));
+
+    }
+
+    @Test
+    public void testEmptyReplyAndFaultAndActionMustBePresent() throws Exception {
+        template.requestBody("direct:empty", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getAction()).isEqualTo(new URI("http://turnOnWSA.com"));
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(anonymousUri);
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(anonymousUri);
+
+    }
+
+    @Test
+    public void testNoAction() throws Exception {
+        template.requestBody("direct:noAction", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // WSA is not supported, if there is no ws action
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNull();
+    }
+
+    @Override
+    protected AbstractXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext(new String[] {"org/apache/camel/component/spring/ws/addresing/ProducerParamsBasicTest-context.xml"});
+    }
+}

Added: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ProducerParamsPrecedenceTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ProducerParamsPrecedenceTest.java?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ProducerParamsPrecedenceTest.java (added)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/addressing/ProducerParamsPrecedenceTest.java Thu Dec  6 06:46:10 2012
@@ -0,0 +1,161 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spring.ws.addressing;
+
+import java.net.URI;
+
+import org.apache.camel.Produce;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.spring.ws.utils.OutputChannelReceiver;
+import org.apache.camel.component.spring.ws.utils.TestUtil;
+import org.apache.camel.test.junit4.CamelSpringTestSupport;
+import org.fest.assertions.Assertions;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.ws.soap.SoapMessage;
+import org.springframework.ws.soap.addressing.core.MessageAddressingProperties;
+
+public class ProducerParamsPrecedenceTest extends CamelSpringTestSupport {
+
+    private static URI anonymousUri;
+
+    private final String xmlBody = "<GetQuote xmlns=\"http://www.webserviceX.NET/\"><symbol>GOOG</symbol></GetQuote>";
+
+    private OutputChannelReceiver sender;
+
+    @Produce
+    private ProducerTemplate template;
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        sender = getMandatoryBean(OutputChannelReceiver.class, "senderReceiver");
+        sender.clear();
+    }
+
+    @BeforeClass
+    public static void setUpConstants() throws Exception {
+        anonymousUri = new URI("http://www.w3.org/2005/08/addressing/anonymous");
+    }
+
+    // TODO AZ
+    @Test
+    @Ignore
+    public void testWsAddressingAction() throws Exception {
+        Object result = template.requestBody("direct:wsAddressingAction", xmlBody);
+        assertNotNull(result);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo()).isNull();
+        Assertions.assertThat(wsaProperties.getFaultTo()).isNull();
+
+    }
+
+    // TODO AZ
+    @Test
+    @Ignore
+    public void testWsAddressingActionPrecendence() throws Exception {
+        Object result = template.requestBody("direct:precedenceWsAddressingAction", xmlBody);
+        assertNotNull(result);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo()).isNull();
+        Assertions.assertThat(wsaProperties.getFaultTo()).isNull();
+
+    }
+
+    @Test
+    public void testReplyTo() throws Exception {
+        template.requestBody("direct:replyTo", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(new URI("http://reply.to"));
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(new URI("http://fault.to"));
+
+    }
+
+    @Test
+    public void testReplyToPrecedence() throws Exception {
+        template.requestBody("direct:precedenceReplyTo", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(new URI("http://replyPrecedence.to"));
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(new URI("http://faultPrecedence.to"));
+
+    }
+
+    @Test
+    public void testFaultTo() throws Exception {
+        template.requestBody("direct:faultTo", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(new URI("http://fault.to"));
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(anonymousUri);
+
+    }
+
+    @Test
+    public void testFaultToPrecedence() throws Exception {
+        template.requestBody("direct:precedenceFaultTo", xmlBody);
+
+        assertNotNull(sender.getMessageContext());
+
+        // check default actions
+        Assertions.assertThat(sender.getMessageContext()).isNotNull();
+        MessageAddressingProperties wsaProperties = TestUtil.getWSAProperties((SoapMessage)sender.getMessageContext().getRequest());
+        Assertions.assertThat(wsaProperties).isNotNull();
+        Assertions.assertThat(wsaProperties.getFaultTo().getAddress()).isEqualTo(new URI("http://faultPrecedence.to"));
+        // /we set in sample data all precendence fields for simplier tests
+        // otherwise it woudl be here annonymous
+        Assertions.assertThat(wsaProperties.getReplyTo().getAddress()).isEqualTo(new URI("http://replyPrecedence.to"));
+
+    }
+
+    @Override
+    protected AbstractXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext(new String[] {"org/apache/camel/component/spring/ws/addresing/ProducerParamsPrecedenceTest-context.xml"});
+    }
+}

Modified: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilterTest.java?rev=1417747&r1=1417746&r2=1417747&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilterTest.java (original)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilterTest.java Thu Dec  6 06:46:10 2012
@@ -86,6 +86,10 @@ public class BasicMessageFilterTest exte
     public void removeCamelInternalHeaderAttributes() throws Exception {
         exchange.getOut().getHeaders().put(SpringWebserviceConstants.SPRING_WS_SOAP_ACTION, "mustBeRemoved");
         exchange.getOut().getHeaders().put(SpringWebserviceConstants.SPRING_WS_ADDRESSING_ACTION, "mustBeRemoved");
+        exchange.getOut().getHeaders().put(SpringWebserviceConstants.SPRING_WS_ADDRESSING_PRODUCER_FAULT_TO, "mustBeRemoved");
+        exchange.getOut().getHeaders().put(SpringWebserviceConstants.SPRING_WS_ADDRESSING_PRODUCER_REPLY_TO, "mustBeRemoved");
+        exchange.getOut().getHeaders().put(SpringWebserviceConstants.SPRING_WS_ADDRESSING_CONSUMER_FAULT_ACTION, "mustBeRemoved");
+        exchange.getOut().getHeaders().put(SpringWebserviceConstants.SPRING_WS_ADDRESSING_CONSUMER_OUTPUT_ACTION, "mustBeRemoved");
         exchange.getOut().getHeaders().put(SpringWebserviceConstants.SPRING_WS_ENDPOINT_URI, "mustBeRemoved");
 
         exchange.getOut().getHeaders().put("breadcrumbId", "mustBeRemoved");

Copied: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/FaultResponseProcessor.java (from r1417746, camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConstants.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/FaultResponseProcessor.java?p2=camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/FaultResponseProcessor.java&p1=camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConstants.java&r1=1417746&r2=1417747&rev=1417747&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConstants.java (original)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/FaultResponseProcessor.java Thu Dec  6 06:46:10 2012
@@ -14,15 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.spring.ws;
+package org.apache.camel.component.spring.ws.processor;
 
-public final class SpringWebserviceConstants {
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
 
-    /* Producer constants */
-    public static final String SPRING_WS_ENDPOINT_URI = "CamelSpringWebserviceEndpointUri";
-    public static final String SPRING_WS_SOAP_ACTION = "CamelSpringWebserviceSoapAction";
-    public static final String SPRING_WS_ADDRESSING_ACTION = "CamelSpringWebserviceAddressingAction";
+/**
+ * Generates static fault response
+ */
+public class FaultResponseProcessor implements Processor {
 
-    private SpringWebserviceConstants() {
+    public void process(Exchange exchange) throws Exception {
+        exchange.setException(new RuntimeException("Sample Error"));
     }
+
 }

Added: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/OkResponseProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/OkResponseProcessor.java?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/OkResponseProcessor.java (added)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/OkResponseProcessor.java Thu Dec  6 06:46:10 2012
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spring.ws.processor;
+
+import java.io.InputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.Document;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+/**
+ * Generates static response on StockQuote webservice requests
+ */
+public class OkResponseProcessor implements Processor {
+
+    private static final Logger LOG = LoggerFactory.getLogger(OkResponseProcessor.class);
+
+    public void process(Exchange exchange) throws Exception {
+        LOG.info("Crafting standard response in StockQuoteResponseProcessor");
+        InputStream is = getClass().getResourceAsStream("/stockquote-response.xml");
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        DocumentBuilder db = dbf.newDocumentBuilder();
+        Document doc = db.parse(is);
+        exchange.getOut().copyFrom(exchange.getIn());
+        exchange.getOut().setBody(doc);
+    }
+
+}

Added: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/PrecedenceProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/PrecedenceProcessor.java?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/PrecedenceProcessor.java (added)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/processor/PrecedenceProcessor.java Thu Dec  6 06:46:10 2012
@@ -0,0 +1,54 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spring.ws.processor;
+
+import java.io.InputStream;
+import java.net.URI;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.Document;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.component.spring.ws.SpringWebserviceConstants;
+
+/**
+ * Generates static fault response
+ */
+public class PrecedenceProcessor implements Processor {
+
+    public void process(Exchange exchange) throws Exception {
+        // same sample data
+        InputStream is = getClass().getResourceAsStream("/stockquote-response.xml");
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        DocumentBuilder db = dbf.newDocumentBuilder();
+        Document doc = db.parse(is);
+
+        exchange.getIn().setHeader(SpringWebserviceConstants.SPRING_WS_ADDRESSING_ACTION, new URI("http://actionPrecedence.com"));
+        exchange.getIn().setHeader(SpringWebserviceConstants.SPRING_WS_ADDRESSING_PRODUCER_REPLY_TO, new URI("http://replyPrecedence.to"));
+        exchange.getIn().setHeader(SpringWebserviceConstants.SPRING_WS_ADDRESSING_PRODUCER_FAULT_TO, new URI("http://faultPrecedence.to"));
+
+        exchange.getIn().setHeader(SpringWebserviceConstants.SPRING_WS_ADDRESSING_CONSUMER_OUTPUT_ACTION, new URI("http://outputHeader.com"));
+        exchange.getIn().setHeader(SpringWebserviceConstants.SPRING_WS_ADDRESSING_CONSUMER_FAULT_ACTION, new URI("http://faultHeader.com"));
+
+        exchange.getOut().copyFrom(exchange.getIn());
+        exchange.getOut().setBody(doc);
+    }
+
+}

Copied: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/utils/OutputChannelReceiver.java (from r1417746, camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConstants.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/utils/OutputChannelReceiver.java?p2=camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/utils/OutputChannelReceiver.java&p1=camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConstants.java&r1=1417746&r2=1417747&rev=1417747&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConstants.java (original)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/utils/OutputChannelReceiver.java Thu Dec  6 06:46:10 2012
@@ -14,15 +14,29 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.spring.ws;
+package org.apache.camel.component.spring.ws.utils;
 
-public final class SpringWebserviceConstants {
+import org.springframework.ws.context.MessageContext;
+import org.springframework.ws.transport.WebServiceMessageReceiver;
 
-    /* Producer constants */
-    public static final String SPRING_WS_ENDPOINT_URI = "CamelSpringWebserviceEndpointUri";
-    public static final String SPRING_WS_SOAP_ACTION = "CamelSpringWebserviceSoapAction";
-    public static final String SPRING_WS_ADDRESSING_ACTION = "CamelSpringWebserviceAddressingAction";
+/**
+ * Used for test to extract the message that was sent
+ */
+public class OutputChannelReceiver implements WebServiceMessageReceiver {
+
+    private MessageContext messageContext;
+
+    @Override
+    public void receive(MessageContext messageContext) throws Exception {
+        this.messageContext = messageContext;
+    }
 
-    private SpringWebserviceConstants() {
+    public MessageContext getMessageContext() {
+        return messageContext;
     }
+
+    public void clear() {
+        this.messageContext = null;
+    }
+
 }

Added: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/utils/TestUtil.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/utils/TestUtil.java?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/utils/TestUtil.java (added)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/utils/TestUtil.java Thu Dec  6 06:46:10 2012
@@ -0,0 +1,86 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.spring.ws.utils;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+
+import org.junit.Assert;
+import org.springframework.util.StringUtils;
+import org.springframework.ws.client.core.SourceExtractor;
+import org.springframework.ws.soap.SoapHeader;
+import org.springframework.ws.soap.SoapHeaderElement;
+import org.springframework.ws.soap.SoapMessage;
+import org.springframework.ws.soap.addressing.core.MessageAddressingProperties;
+import org.springframework.ws.soap.addressing.version.Addressing10;
+import org.springframework.ws.soap.addressing.version.Addressing200408;
+import org.springframework.ws.soap.addressing.version.AddressingVersion;
+
+public final class TestUtil {
+
+    public static final SourceExtractor<Object> NOOP_SOURCE_EXTRACTOR = new SourceExtractor<Object>() {
+        public Object extractData(Source source) throws IOException, TransformerException {
+            return null;
+        }
+    };
+
+    private TestUtil() {
+    }
+
+    /**
+     * Compare the to string ignoring new lines symbol. Handy if you need to
+     * compare some text coming from 2 different OS.
+     */
+    public static void assertEqualsIgnoreNewLinesSymbol(String expected, String actual) {
+        Assert.assertEquals(StringUtils.deleteAny(expected, "\n\r"), StringUtils.deleteAny(actual, "\n\r"));
+
+    }
+
+    /**
+     * Retrieve a WS-Addressing properties from the soapMessage
+     * 
+     * @param messageContext
+     * @return
+     */
+    public static MessageAddressingProperties getWSAProperties(SoapMessage soapMessage) {
+        AddressingVersion[] versions = new AddressingVersion[] {new Addressing200408(), new Addressing10()};
+
+        for (AddressingVersion version : versions) {
+            if (supports(version, soapMessage)) {
+                MessageAddressingProperties requestMap = version.getMessageAddressingProperties(soapMessage);
+                return requestMap;
+            }
+        }
+        return null;
+    }
+
+    private static boolean supports(AddressingVersion version, SoapMessage request) {
+        SoapHeader header = request.getSoapHeader();
+        if (header != null) {
+            for (Iterator<SoapHeaderElement> iterator = header.examineAllHeaderElements(); iterator.hasNext();) {
+                SoapHeaderElement headerElement = iterator.next();
+                if (version.understands(headerElement)) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+}

Modified: camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/ConsumerEndpointMappingResponseHandlingRouteTest-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/ConsumerEndpointMappingResponseHandlingRouteTest-context.xml?rev=1417747&r1=1417746&r2=1417747&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/ConsumerEndpointMappingResponseHandlingRouteTest-context.xml (original)
+++ camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/ConsumerEndpointMappingResponseHandlingRouteTest-context.xml Thu Dec  6 06:46:10 2012
@@ -24,6 +24,7 @@
     <!-- ============================== -->
     <!-- Camel routes -->
     <!-- ============================== -->
+    
     <camelContext xmlns="http://camel.apache.org/schema/spring">
         <route>
             <from uri="spring-ws:rootqname:{http://www.webserviceX.NET/}GetQuote?endpointMapping=#endpointMapping"/>
@@ -41,13 +42,31 @@
             <from uri="spring-ws:xpathresult:GRABME?expression=//GetQuote&amp;endpointMapping=#endpointMapping"/>
             <to uri="responseProcessor"/>
         </route>
+        <route>
+            <from uri="spring-ws:action:http://www.webserviceX.NET/GetQuote?endpointMapping=#wsaEndpointMapping"/>
+            <to uri="wsaResponseProcessor"/>
+        </route>
+        <route>
+		    <from uri="spring-ws:to:http://url.to?endpointMapping=#wsaEndpointMapping"/>
+            <to uri="wsaResponseProcessor"/>
+        </route>
     </camelContext>
 
     <bean id="endpointMapping"
           class="org.apache.camel.component.spring.ws.bean.CamelEndpointMapping"/>
+          
+    <bean id="wsaEndpointMapping"
+		class="org.apache.camel.component.spring.ws.bean.WSACamelEndpointMapping">
+		 <property name="messageSender">
+            <bean class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender"/>
+        </property>
+	</bean>
 
     <bean id="responseProcessor"
           class="org.apache.camel.component.spring.ws.StockQuoteResponseProcessor"/>
+          
+    <bean id="wsaResponseProcessor"
+          class="org.apache.camel.component.spring.ws.processor.OkResponseProcessor"/>
 
     <!-- ============================== -->
     <!-- Supporting Spring-WS beans -->

Modified: camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/DefaultMessageFilter-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/DefaultMessageFilter-context.xml?rev=1417747&r1=1417746&r2=1417747&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/DefaultMessageFilter-context.xml (original)
+++ camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/DefaultMessageFilter-context.xml Thu Dec  6 06:46:10 2012
@@ -1,14 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	You under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
-	language governing permissions and limitations under the License. -->
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="

Modified: camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/MessageFilter-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/MessageFilter-context.xml?rev=1417747&r1=1417746&r2=1417747&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/MessageFilter-context.xml (original)
+++ camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/MessageFilter-context.xml Thu Dec  6 06:46:10 2012
@@ -1,14 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	You under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
-	language governing permissions and limitations under the License. -->
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="

Added: camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAEndpointMappingRouteTest-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAEndpointMappingRouteTest-context.xml?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAEndpointMappingRouteTest-context.xml (added)
+++ camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAEndpointMappingRouteTest-context.xml Thu Dec  6 06:46:10 2012
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+	<!-- ============================== -->
+	<!-- Camel routes -->
+	<!-- ============================== -->
+	<camelContext xmlns="http://camel.apache.org/schema/spring">
+		
+		<route>
+			<from
+				uri="spring-ws:soapaction:http://www.stockquotes.edu/soapHttpHeaderAction?endpointMapping=#endpointMapping" />
+			<to uri="mock:testSoapAction" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://www.stockquotes.edu/soapHttpHeaderAction?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testSoapActionSkipped1" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://www.stockquotes.edu/soapHttpHeaderAction?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testSoapActionSkipped2" />
+		</route>
+		
+		
+		<route>
+			<from
+				uri="spring-ws:action:http://www.stockquotes.edu/myUniqueAction?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testAction" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://myUniqueToUrl?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testTo" />
+		</route>
+
+
+		<route>
+			<from
+				uri="spring-ws:to:http://url1.to?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testToMoreSpecificSkipped" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://url1.to:http://action1?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testToMoreSpecific" />
+		</route>
+
+		<route>
+			<from
+				uri="spring-ws:action:http://action2?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testActionMoreSpecificSkipped" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://action2:http://url2.to?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testActionMoreSpecific" />
+		</route>
+		
+		
+		
+		<route>
+			<from
+				uri="spring-ws:to:http://url3.to:http://toAndAction?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testToAndAction" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://actionAndTo:http://url4.to?endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testActionAndTo" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://www.stockquotes.edu/WSAddresingActionReply?outputAction=http://myOuputAction&amp;faultAction=http://myFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testOutputAndFault" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://urlOutputAndFault2.to?outputAction=http://myOuputAction2&amp;faultAction=http://myFaultAction2&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="mock:testOutputAndFault2" />
+		</route>
+	</camelContext>
+
+	<bean id="endpointMapping"
+		class="org.apache.camel.component.spring.ws.bean.CamelEndpointMapping" >
+	</bean>
+
+	<bean id="wsaEndpointMapping"
+		class="org.apache.camel.component.spring.ws.bean.WSACamelEndpointMapping">
+		<property name="messageSender">
+			<bean
+				class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender" />
+		</property>
+	</bean>
+	
+	<!-- ============================== -->
+	<!-- Supporting Spring-WS beans -->
+	<!-- ============================== -->
+	<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
+		<property name="defaultUri" value="http://localhost" />
+		<property name="messageSender">
+			<bean
+				class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender" />
+		</property>
+	</bean>
+
+</beans>
\ No newline at end of file

Added: camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsActionTests-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsActionTests-context.xml?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsActionTests-context.xml (added)
+++ camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsActionTests-context.xml Thu Dec  6 06:46:10 2012
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+	<!-- ============================== -->
+	<!-- Camel routes -->
+	<!-- ============================== -->
+
+	<camelContext xmlns="http://camel.apache.org/schema/spring">
+
+		<route>
+			<from
+				uri="spring-ws:action:http://default-ok.com/?endpointMapping=#wsaEndpointMapping" />
+			<to uri="okResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://default-fault.com/?endpointMapping=#wsaEndpointMapping" />
+			<to uri="causeFault" />
+		</route>
+
+
+		<route>
+			<from
+				uri="spring-ws:action:http://uri-ok.com?outputAction=http://customURIOutputAction&amp;faultAction=http://customURIFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="okResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://uri-fault.com?outputAction=http://customURIOutputAction&amp;faultAction=http://customURIFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="causeFault" />
+		</route>
+
+
+		<route>
+			<from
+				uri="spring-ws:action:http://override-ok.com?outputAction=http://do-not-use.com&amp;faultAction=http://do-not-use.com&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="overrideOkResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://override-fault.com?endpointMapping=#wsaEndpointMapping" />
+			<to uri="overrideOkResponse" />
+			<to uri="causeFault" />
+		</route>
+
+
+
+		<route>
+			<from
+				uri="spring-ws:action:http://headerOnly-ok.com?endpointMapping=#wsaEndpointMapping" />
+			<to uri="overrideOkResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://headerOnly-fault.com?endpointMapping=#wsaEndpointMapping" />
+			<to uri="overrideOkResponse" />
+			<to uri="causeFault" />
+		</route>
+
+
+
+
+
+		<route>
+			<from
+				uri="spring-ws:action:http://uriOutputOnly-ok.com/?outputAction=http://customURIOutputAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="okResponse" />
+		</route>
+		<route>
+			<from
+					uri="spring-ws:action:http://uriOutputOnly-fault.com/?outputAction=http://customURIOutputAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="causeFault" />
+		</route>
+		
+		
+		<route>
+			<from
+				uri="spring-ws:action:http://uriFaultOnly-ok.com/?faultAction=http://customURIFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="okResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:action:http://uriFaultOnly-fault.com/?faultAction=http://customURIFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="causeFault" />
+		</route>
+		
+
+	</camelContext>
+
+
+	<!-- ============================== -->
+	<!-- The Sample Data : the Valid and Invalid one -->
+	<!-- ============================== -->
+	<bean id="okResponse"
+		class="org.apache.camel.component.spring.ws.processor.OkResponseProcessor">
+	</bean>
+	<bean id="causeFault"
+		class="org.apache.camel.component.spring.ws.processor.FaultResponseProcessor">
+	</bean>
+	<bean id="overrideOkResponse"
+		class="org.apache.camel.component.spring.ws.processor.PrecedenceProcessor">
+	</bean>
+
+
+
+	<!-- ============================== -->
+	<!-- The Separate Channel's Reply Sender -->
+	<!-- ============================== -->
+
+	<bean id="replyReceiver"
+		class="org.apache.camel.component.spring.ws.utils.OutputChannelReceiver"
+		scope="singleton" />
+
+	<bean id="wsaEndpointMapping"
+		class="org.apache.camel.component.spring.ws.bean.WSACamelEndpointMapping">
+		<property name="messageSender">
+			<bean
+				class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender2">
+				<property name="webServiceMessageReceiver" ref="replyReceiver" />
+			</bean>
+		</property>
+	</bean>
+
+
+	<!-- ============================== -->
+	<!-- The Same Channel's Response Sender -->
+	<!-- ============================== -->
+	<bean id="responseReceiver"
+		class="org.apache.camel.component.spring.ws.utils.OutputChannelReceiver"
+		scope="singleton" />
+
+	<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
+		<property name="defaultUri" value="http://localhost" />
+		<property name="messageSender">
+			<bean
+				class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender2">
+				<property name="decorator" ref="responseReceiver" />
+			</bean>
+		</property>
+	</bean>
+
+</beans>
\ No newline at end of file

Added: camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsTOTests-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsTOTests-context.xml?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsTOTests-context.xml (added)
+++ camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ConsumerWSAParamsTOTests-context.xml Thu Dec  6 06:46:10 2012
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+	<!-- ============================== -->
+	<!-- Camel routes -->
+	<!-- ============================== -->
+
+	<camelContext xmlns="http://camel.apache.org/schema/spring">
+
+		<route>
+			<from
+				uri="spring-ws:to:http://default-ok.com/?endpointMapping=#wsaEndpointMapping" />
+			<to uri="okResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://default-fault.com/?endpointMapping=#wsaEndpointMapping" />
+			<to uri="causeFault" />
+		</route>
+
+
+		<route>
+			<from
+				uri="spring-ws:to:http://uri-ok.com?outputAction=http://customURIOutputAction&amp;faultAction=http://customURIFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="okResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://uri-fault.com?outputAction=http://customURIOutputAction&amp;faultAction=http://customURIFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="causeFault" />
+		</route>
+
+
+		<route>
+			<from
+				uri="spring-ws:to:http://override-ok.com?outputAction=http://do-not-use.com&amp;faultAction=http://do-not-use.com&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="overrideOkResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://override-fault.com?endpointMapping=#wsaEndpointMapping" />
+			<to uri="overrideOkResponse" />
+			<to uri="causeFault" />
+		</route>
+
+
+
+		<route>
+			<from
+				uri="spring-ws:to:http://headerOnly-ok.com?endpointMapping=#wsaEndpointMapping" />
+			<to uri="overrideOkResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://headerOnly-fault.com?endpointMapping=#wsaEndpointMapping" />
+			<to uri="overrideOkResponse" />
+			<to uri="causeFault" />
+		</route>
+
+
+
+
+
+		<route>
+			<from
+				uri="spring-ws:to:http://uriOutputOnly-ok.com/?outputAction=http://customURIOutputAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="okResponse" />
+		</route>
+		<route>
+			<from
+					uri="spring-ws:to:http://uriOutputOnly-fault.com/?outputAction=http://customURIOutputAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="causeFault" />
+		</route>
+		
+		
+		<route>
+			<from
+				uri="spring-ws:to:http://uriFaultOnly-ok.com/?faultAction=http://customURIFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="okResponse" />
+		</route>
+		<route>
+			<from
+				uri="spring-ws:to:http://uriFaultOnly-fault.com/?faultAction=http://customURIFaultAction&amp;endpointMapping=#wsaEndpointMapping" />
+			<to uri="causeFault" />
+		</route>
+		
+
+	</camelContext>
+
+
+	<!-- ============================== -->
+	<!-- The Sample Data : the Valid and Invalid one -->
+	<!-- ============================== -->
+	<bean id="okResponse"
+		class="org.apache.camel.component.spring.ws.processor.OkResponseProcessor">
+	</bean>
+	<bean id="causeFault"
+		class="org.apache.camel.component.spring.ws.processor.FaultResponseProcessor">
+	</bean>
+	<bean id="overrideOkResponse"
+		class="org.apache.camel.component.spring.ws.processor.PrecedenceProcessor">
+	</bean>
+
+
+
+	<!-- ============================== -->
+	<!-- The Separate Channel's Reply Sender -->
+	<!-- ============================== -->
+
+	<bean id="replyReceiver"
+		class="org.apache.camel.component.spring.ws.utils.OutputChannelReceiver"
+		scope="singleton" />
+
+	<bean id="wsaEndpointMapping"
+		class="org.apache.camel.component.spring.ws.bean.WSACamelEndpointMapping">
+		<property name="messageSender">
+			<bean
+				class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender2">
+				<property name="webServiceMessageReceiver" ref="replyReceiver" />
+			</bean>
+		</property>
+	</bean>
+
+
+	<!-- ============================== -->
+	<!-- The Same Channel's Response Sender -->
+	<!-- ============================== -->
+	<bean id="responseReceiver"
+		class="org.apache.camel.component.spring.ws.utils.OutputChannelReceiver"
+		scope="singleton" />
+
+	<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
+		<property name="defaultUri" value="http://localhost" />
+		<property name="messageSender">
+			<bean
+				class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender2">
+				<property name="decorator" ref="responseReceiver" />
+			</bean>
+		</property>
+	</bean>
+
+</beans>
\ No newline at end of file

Added: camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ProducerParamsBasicTest-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ProducerParamsBasicTest-context.xml?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ProducerParamsBasicTest-context.xml (added)
+++ camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ProducerParamsBasicTest-context.xml Thu Dec  6 06:46:10 2012
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+	<!-- ============================== -->
+	<!-- Camel routes -->
+	<!-- ============================== -->
+
+	<camelContext xmlns="http://camel.apache.org/schema/spring">
+		<route>
+			<from uri="direct:noAction" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+		
+		<route>
+			<from uri="direct:defaultOk" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://wsaAction.com&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>		
+		<route>
+			<from uri="direct:defaultFault" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://wsaAction.com&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+		<route>
+			<from uri="direct:replyTo" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://wsaAction.com&amp;webServiceTemplate=#webServiceTemplate&amp;replyTo=mailto://replyTo@chocolatejar.eu&amp;endpointMapping=#endpointMapping&amp;faultTo=http://fault.to" />
+		</route>
+		<route>
+			<from uri="direct:faultTo" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://wsaAction.com&amp;webServiceTemplate=#webServiceTemplate&amp;faultTo=http://fault.to&amp;endpointMapping=#endpointMapping" />
+		</route>
+		
+		
+		<route>
+			<from uri="direct:omittedFaultTo" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://turnOnWSA.com&amp;replyTo=http://reply.to&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+		<route>
+			<from uri="direct:omittedReplyTo" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://turnOnWSA.com&amp;faultTo=http://fault.to&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+		
+		
+		<route>
+			<from uri="direct:empty" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://turnOnWSA.com&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+
+	</camelContext>
+
+	<bean id="endpointMapping"
+		class="org.apache.camel.component.spring.ws.bean.CamelEndpointMapping">
+	</bean>
+
+	<bean id="wsaResponseProcessor"
+		class="org.apache.camel.component.spring.ws.processor.OkResponseProcessor">
+	</bean>
+	
+
+
+	<!-- ============================== -->
+	<!-- Supporting Spring-WS beans -->
+	<!-- ============================== -->
+	<bean id="senderReceiver" class="org.apache.camel.component.spring.ws.utils.OutputChannelReceiver"
+		scope="singleton" />
+
+	<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
+		<property name="defaultUri" value="http://localhost" />
+		<property name="messageSender">
+			<bean
+				class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender2">
+				<property name="webServiceMessageReceiver" ref="senderReceiver" />
+			</bean>
+		</property>
+	</bean>
+
+</beans>
\ No newline at end of file

Added: camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ProducerParamsPrecedenceTest-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ProducerParamsPrecedenceTest-context.xml?rev=1417747&view=auto
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ProducerParamsPrecedenceTest-context.xml (added)
+++ camel/trunk/components/camel-spring-ws/src/test/resources/org/apache/camel/component/spring/ws/addresing/ProducerParamsPrecedenceTest-context.xml Thu Dec  6 06:46:10 2012
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+	<!-- ============================== -->
+	<!-- Camel routes -->
+	<!-- ============================== -->
+
+	<camelContext xmlns="http://camel.apache.org/schema/spring">
+		
+		<!-- TODO -->
+		<route>
+			<from uri="direct:wsAddressingAction" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://wsaAction.com&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+		<route>
+			<from uri="direct:precedenceWsAddressingAction" />
+			<to uri="wsaPrecedenceResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://doNotUse.com&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+
+
+		<route>
+			<from uri="direct:replyTo" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://turnOnWSA.com&amp;replyTo=http://reply.to&amp;faultTo=http://fault.to&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+		<route>
+			<from uri="direct:precedenceReplyTo" />
+			<to uri="wsaPrecedenceResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://turnOnWSA.com&amp;replyTo=http://doNotUse.to&amp;faultTo=http://fault.to&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+
+
+
+		<route>
+			<from uri="direct:faultTo" />
+			<to uri="wsaResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://turnOnWSA.com&amp;faultTo=http://fault.to&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+		<route>
+			<from uri="direct:precedenceFaultTo" />
+			<to uri="wsaPrecedenceResponseProcessor" />
+			<to
+				uri="spring-ws:http://google.com?wsAddressingAction=http://turnOnWSA.com&amp;faultTo=http://doNotUse.to&amp;webServiceTemplate=#webServiceTemplate&amp;endpointMapping=#endpointMapping" />
+		</route>
+
+	</camelContext>
+
+
+	<bean id="endpointMapping"
+		class="org.apache.camel.component.spring.ws.bean.CamelEndpointMapping">
+	</bean>
+
+	<bean id="wsaResponseProcessor"
+		class="org.apache.camel.component.spring.ws.processor.OkResponseProcessor">
+	</bean>
+	
+	<bean id="wsaPrecedenceResponseProcessor"
+		class="org.apache.camel.component.spring.ws.processor.PrecedenceProcessor">
+	</bean>
+
+
+	<!-- ============================== -->
+	<!-- Supporting Spring-WS beans -->
+	<!-- ============================== -->
+	<bean id="senderReceiver" class="org.apache.camel.component.spring.ws.utils.OutputChannelReceiver"
+		scope="singleton" />
+
+	<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
+		<property name="defaultUri" value="http://localhost" />
+		<property name="messageSender">
+			<bean
+				class="net.javacrumbs.springws.test.helper.InMemoryWebServiceMessageSender2">
+				<property name="webServiceMessageReceiver" ref="senderReceiver" />
+			</bean>
+		</property>
+	</bean>
+
+</beans>
\ No newline at end of file