CAMEL-10679 for requested PR 2.18.x
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/58c4ae09 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/58c4ae09 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/58c4ae09 Branch: refs/heads/camel-2.18.x Commit: 58c4ae096c2067718af634ddd750c15d69bd6fce Parents: 76444ac Author: marcusmesserkewill <marcus.mes...@kewill.com> Authored: Mon Jan 9 15:38:42 2017 +0100 Committer: marcusmesserkewill <marcus.mes...@kewill.com> Committed: Mon Jan 9 15:38:42 2017 +0100 ---------------------------------------------------------------------- .../ws/SpringWebserviceConfiguration.java | 17 +++------ .../spring/ws/SpringWebserviceProducer.java | 38 +++++++++++--------- .../spring/ws/SoapResponseAttachmentTest.java | 8 ++--- 3 files changed, 30 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/58c4ae09/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java index ebaec3d..5e5be6f 100644 --- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java +++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java @@ -74,7 +74,7 @@ public class SpringWebserviceConfiguration { private boolean allowResponseHeaderOverride; @UriParam(label = "producer") private boolean allowResponseAttachmentOverride; - + /* Consumer configuration */ @UriParam(label = "consumer") private EndpointMappingKey endpointMappingKey; @@ -385,9 +385,6 @@ public class SpringWebserviceConfiguration { this.messageIdStrategy = messageIdStrategy; } - /** - * @return boolean - true, will override header with spring-ws response message header - */ public boolean isAllowResponseHeaderOverride() { return allowResponseHeaderOverride; } @@ -397,26 +394,22 @@ public class SpringWebserviceConfiguration { * If the invoked service appends or rewrites the soap header this option when set to true, allows the modified * soap header to be overwritten in in/out message headers * - * @param allowResponseHeaderOverride - * - true, will override header with spring-ws response message header + * @param allowResponseHeaderOverride - true, will override header with spring-ws response message header */ public void setAllowResponseHeaderOverride(boolean allowResponseHeaderOverride) { this.allowResponseHeaderOverride = allowResponseHeaderOverride; } - /** - * @return boolean - true, will override attachments with spring-ws response message attachments - */ + public boolean isAllowResponseAttachmentOverride() { return allowResponseAttachmentOverride; } /** - * Option to override soap response attachments in in/out exchange with attachments info the actual service layer. + * Option to override soap response attachments in in/out exchange with attachments from the actual service layer. * If the invoked service appends or rewrites the soap attachments this option when set to true, allows the modified * soap attachments to be overwritten in in/out message attachments * - * @param allowResponseAttachmentOverride - * - true, will override attachments with spring-ws response message attachments + * @param allowResponseAttachmentOverride - true, will override attachments with spring-ws response message attachments */ public void setAllowResponseAttachmentOverride(boolean allowResponseAttachmentOverride) { this.allowResponseAttachmentOverride = allowResponseAttachmentOverride; http://git-wip-us.apache.org/repos/asf/camel/blob/58c4ae09/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceProducer.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceProducer.java index b1a4a16..3092c93 100644 --- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceProducer.java +++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceProducer.java @@ -100,29 +100,33 @@ public class SpringWebserviceProducer extends DefaultProducer { SoapMessage soapMessage = (SoapMessage) responseMessage; if (ExchangeHelper.isOutCapable(exchange)) { exchange.getOut().copyFromWithNewBody(exchange.getIn(), soapMessage.getPayloadSource()); - processHeaderAndAttachments(exchange.getOut(), soapMessage); + populateHeaderAndAttachmentsFromResponse(exchange.getOut(), soapMessage); } else { exchange.getIn().setBody(soapMessage.getPayloadSource()); - processHeaderAndAttachments(exchange.getIn(), soapMessage); + populateHeaderAndAttachmentsFromResponse(exchange.getIn(), soapMessage); } } }); } + /** * Populates soap message headers and attachments from soap response - * @param inOrOut {@link Message} - * @param soapMessage {@link SoapMessage} + * + * @param inOrOut + * {@link Message} + * @param soapMessage + * {@link SoapMessage} */ - private void processHeaderAndAttachments(Message inOrOut, SoapMessage soapMessage) { - if (soapMessage.getSoapHeader() != null && getEndpoint().getConfiguration().isAllowResponseHeaderOverride()) { - populateMessageHeaderFromResponse(inOrOut, soapMessage.getSoapHeader()); - } - if (soapMessage.getAttachments() != null && getEndpoint().getConfiguration().isAllowResponseAttachmentOverride()) { - populateMessageAttachmentsFromResponse(inOrOut, soapMessage.getAttachments()); - } + private void populateHeaderAndAttachmentsFromResponse(Message inOrOut, SoapMessage soapMessage) { + if (soapMessage.getSoapHeader() != null && getEndpoint().getConfiguration().isAllowResponseHeaderOverride()) { + populateMessageHeaderFromResponse(inOrOut, soapMessage.getSoapHeader()); + } + if (soapMessage.getAttachments() != null && getEndpoint().getConfiguration().isAllowResponseAttachmentOverride()) { + populateMessageAttachmentsFromResponse(inOrOut, soapMessage.getAttachments()); + } } - + /** * Populates message headers from soapHeader response * @@ -155,12 +159,12 @@ public class SpringWebserviceProducer extends DefaultProducer { * @param soapMessage {@link SoapMessage} */ private void populateMessageAttachmentsFromResponse(Message inOrOut, Iterator<Attachment> attachments) { - while (attachments.hasNext()) { - Attachment attachment = attachments.next(); - inOrOut.getAttachments().put(attachment.getContentId(), attachment.getDataHandler()); - } + while (attachments.hasNext()) { + Attachment attachment = attachments.next(); + inOrOut.getAttachments().put(attachment.getContentId(), attachment.getDataHandler()); + } } - + private void prepareMessageSenders(SpringWebserviceConfiguration configuration) { // Skip this whole thing if none of the relevant config options are set. if (!(configuration.getTimeout() > -1) && configuration.getSslContextParameters() == null) { http://git-wip-us.apache.org/repos/asf/camel/blob/58c4ae09/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/SoapResponseAttachmentTest.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/SoapResponseAttachmentTest.java b/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/SoapResponseAttachmentTest.java index 6ec1ca8..168de75 100644 --- a/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/SoapResponseAttachmentTest.java +++ b/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/SoapResponseAttachmentTest.java @@ -15,19 +15,19 @@ * limitations under the License. */ package org.apache.camel.component.spring.ws; - -import static org.junit.Assert.assertNotNull; - import javax.activation.DataHandler; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; + import org.junit.Test; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; +import static org.junit.Assert.assertNotNull; + @ContextConfiguration public class SoapResponseAttachmentTest extends AbstractJUnit4SpringContextTests { @@ -46,7 +46,7 @@ public class SoapResponseAttachmentTest extends AbstractJUnit4SpringContextTests * @throws Exception */ @Test() - public void consumeStockQuoteWebserviceWithSoapHeader() throws Exception { + public void consumeStockQuoteWebserviceWithSoapResponseAttachment() throws Exception { Exchange result = template.request("direct:stockQuoteWebservice", new Processor() { @Override