You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by Hiranya Jayathilaka <hi...@gmail.com> on 2016/05/29 18:54:44 UTC
Re: svn commit: r1746027 - in /synapse/trunk/java: ./ modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/ modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/ modules/transports/core/nhttp/s...
Hi Andreas,
How is this going to impact the release process, if we are to release with Axis2 1.7.2?
Thanks,
Hiranya
> On May 29, 2016, at 8:54 AM, veithen@apache.org wrote:
>
> Author: veithen
> Date: Sun May 29 15:54:01 2016
> New Revision: 1746027
>
> URL: http://svn.apache.org/viewvc?rev=1746027&view=rev
> Log:
> SYNAPSE-1027: Fix a performance regression caused by pass through related code. Patch provided by Auke Schrijnen. Also update the Axis2 version to 1.7.3-SNAPSHOT since the unit test depends on a fix in the Axis2 transport testkit.
>
> Added:
> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/
> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/
> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java (with props)
> Modified:
> synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java
> synapse/trunk/java/pom.xml
>
> Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java?rev=1746027&r1=1746026&r2=1746027&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java (original)
> +++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java Sun May 29 15:54:01 2016
> @@ -42,6 +42,7 @@ import org.apache.synapse.transport.pass
>
> import javax.activation.DataHandler;
> import javax.activation.DataSource;
> +import javax.xml.namespace.QName;
> import javax.xml.stream.XMLStreamException;
>
> import java.io.BufferedInputStream;
> @@ -88,10 +89,20 @@ public class RelayUtils {
> }
>
> SOAPEnvelope envelope = messageContext.getEnvelope();
> - OMElement contentEle = envelope.getBody().getFirstChildWithName(
> - RelayConstants.BINARY_CONTENT_QNAME);
>
> - if (contentEle != null) {
> + QName firstElementQName;
> + if (envelope.getSOAPBodyFirstElementNS() != null) {
> + firstElementQName = new QName(
> + envelope.getSOAPBodyFirstElementNS().getNamespaceURI(),
> + envelope.getSOAPBodyFirstElementLocalName());
> + } else if (envelope.getSOAPBodyFirstElementLocalName() != null){
> + firstElementQName = new QName(envelope.getSOAPBodyFirstElementLocalName());
> + } else {
> + firstElementQName = null;
> + }
> +
> + if (RelayConstants.BINARY_CONTENT_QNAME.equals(firstElementQName)) {
> + OMElement contentEle = envelope.getBody().getFirstElement();
> OMNode node = contentEle.getFirstOMChild();
> if (node != null && (node instanceof OMText)) {
> OMText binaryDataNode = (OMText) node;
>
> Added: synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java?rev=1746027&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java (added)
> +++ synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java Sun May 29 15:54:01 2016
> @@ -0,0 +1,102 @@
> +/*
> + * 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.synapse.transport.passthru.util;
> +
> +import static org.junit.Assert.*;
> +
> +import java.io.IOException;
> +import java.io.InputStream;
> +import java.io.StringReader;
> +import java.nio.charset.Charset;
> +
> +import javax.xml.namespace.QName;
> +import javax.xml.stream.XMLStreamException;
> +
> +import org.apache.axiom.om.OMElement;
> +import org.apache.axiom.om.OMXMLBuilderFactory;
> +import org.apache.axiom.soap.SOAPEnvelope;
> +import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.context.MessageContext;
> +import org.apache.axis2.engine.AxisConfiguration;
> +import org.apache.commons.io.input.ReaderInputStream;
> +import org.junit.Before;
> +import org.junit.Test;
> +
> +public class RelayUtilsTest {
> +
> + private static final Charset UTF8 = Charset.forName("UTF-8");
> +
> + private final String xml =
> + "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>"
> + + "<s:Body><payload><data>value</data></payload></s:Body>"
> + + "</s:Envelope>";
> +
> + private final QName payloadQName = new QName("payload");
> +
> + MessageContext msgCtx;
> +
> + @Before
> + public void setUp() throws Exception {
> + msgCtx = new MessageContext();
> +
> + AxisConfiguration configuration = new AxisConfiguration();
> + ConfigurationContext context = new ConfigurationContext(configuration);
> + msgCtx.setConfigurationContext(context);
> + }
> +
> + @Test
> + public void testSOAPBodyIsntFullyReadWhenNotUsingBinaryRelayBuilder()
> + throws IOException, XMLStreamException {
> +
> + SOAPEnvelope envelope = OMXMLBuilderFactory
> + .createSOAPModelBuilder(new StringReader(xml)).getSOAPEnvelope();
> +
> + msgCtx.setEnvelope(envelope);
> +
> + // Build message when using pass through pipe or binary relay builder
> + RelayUtils.buildMessage(msgCtx);
> +
> + // Ensure that the payload element is accessible
> + assertEquals(payloadQName, msgCtx.getEnvelope().getBody().getFirstElement().getQName());
> +
> + // Ensure that the body isn't fully build to support the use of deferred building
> + assertFalse(msgCtx.getEnvelope().getBody().isComplete());
> + }
> +
> + @Test
> + public void testBinaryRelayPayloadExpandsToOriginalPayload()
> + throws IOException, XMLStreamException {
> +
> + // Transform request soap message into a binary payload
> + BinaryRelayBuilder builder = new BinaryRelayBuilder();
> + InputStream stream = new ReaderInputStream(new StringReader(xml), UTF8);
> + OMElement element = builder.processDocument(stream, "text/xml", msgCtx);
> + msgCtx.setEnvelope((SOAPEnvelope)element);
> +
> + // Build message when using pass through pipe or binary relay builder
> + RelayUtils.buildMessage(msgCtx);
> +
> + // Ensure that the binary payload is transformed to the appropriate element
> + assertEquals(payloadQName, msgCtx.getEnvelope().getBody().getFirstElement().getQName());
> +
> + // Ensure that the body isn't fully build to support the use of deferred building
> + assertFalse(msgCtx.getEnvelope().getBody().isComplete());
> + }
> +
> +}
>
> Propchange: synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Modified: synapse/trunk/java/pom.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/pom.xml?rev=1746027&r1=1746026&r2=1746027&view=diff
> ==============================================================================
> --- synapse/trunk/java/pom.xml (original)
> +++ synapse/trunk/java/pom.xml Sun May 29 15:54:01 2016
> @@ -1035,7 +1035,7 @@
> <commons.codec.version>1.6</commons.codec.version>
>
> <!-- Axis2 and its dependencies -->
> - <axis2.version>1.7.2</axis2.version>
> + <axis2.version>1.7.3-SNAPSHOT</axis2.version>
> <axiom.version>1.2.19</axiom.version>
> <wsdl4j.version>1.6.2</wsdl4j.version>
>
>
>
--
Hiranya Jayathilaka
Mayhem Lab/RACE Lab;
Dept. of Computer Science, UCSB; http://cs.ucsb.edu
E-mail: hiranya@cs.ucsb.edu; Mobile: +1 (805) 895-7443
Blog: http://techfeast-hiranya.blogspot.com
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org
Re: svn commit: r1746027 - in /synapse/trunk/java: ./
modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/
modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/
modules/transports/core/nhttp/s...
Posted by Andreas Veithen <an...@gmail.com>.
... unless of course the release fails because we don't succeed to get
the required 3 votes (which is currently the case).
Andreas
On Sun, May 29, 2016 at 9:33 PM, Andreas Veithen
<an...@gmail.com> wrote:
> We are going to release with 1.7.3.
>
> Andreas
>
> On Sun, May 29, 2016 at 7:54 PM, Hiranya Jayathilaka
> <hi...@gmail.com> wrote:
>> Hi Andreas,
>>
>> How is this going to impact the release process, if we are to release with Axis2 1.7.2?
>>
>> Thanks,
>> Hiranya
>>
>>> On May 29, 2016, at 8:54 AM, veithen@apache.org wrote:
>>>
>>> Author: veithen
>>> Date: Sun May 29 15:54:01 2016
>>> New Revision: 1746027
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1746027&view=rev
>>> Log:
>>> SYNAPSE-1027: Fix a performance regression caused by pass through related code. Patch provided by Auke Schrijnen. Also update the Axis2 version to 1.7.3-SNAPSHOT since the unit test depends on a fix in the Axis2 transport testkit.
>>>
>>> Added:
>>> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/
>>> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/
>>> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java (with props)
>>> Modified:
>>> synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java
>>> synapse/trunk/java/pom.xml
>>>
>>> Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java
>>> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java?rev=1746027&r1=1746026&r2=1746027&view=diff
>>> ==============================================================================
>>> --- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java (original)
>>> +++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java Sun May 29 15:54:01 2016
>>> @@ -42,6 +42,7 @@ import org.apache.synapse.transport.pass
>>>
>>> import javax.activation.DataHandler;
>>> import javax.activation.DataSource;
>>> +import javax.xml.namespace.QName;
>>> import javax.xml.stream.XMLStreamException;
>>>
>>> import java.io.BufferedInputStream;
>>> @@ -88,10 +89,20 @@ public class RelayUtils {
>>> }
>>>
>>> SOAPEnvelope envelope = messageContext.getEnvelope();
>>> - OMElement contentEle = envelope.getBody().getFirstChildWithName(
>>> - RelayConstants.BINARY_CONTENT_QNAME);
>>>
>>> - if (contentEle != null) {
>>> + QName firstElementQName;
>>> + if (envelope.getSOAPBodyFirstElementNS() != null) {
>>> + firstElementQName = new QName(
>>> + envelope.getSOAPBodyFirstElementNS().getNamespaceURI(),
>>> + envelope.getSOAPBodyFirstElementLocalName());
>>> + } else if (envelope.getSOAPBodyFirstElementLocalName() != null){
>>> + firstElementQName = new QName(envelope.getSOAPBodyFirstElementLocalName());
>>> + } else {
>>> + firstElementQName = null;
>>> + }
>>> +
>>> + if (RelayConstants.BINARY_CONTENT_QNAME.equals(firstElementQName)) {
>>> + OMElement contentEle = envelope.getBody().getFirstElement();
>>> OMNode node = contentEle.getFirstOMChild();
>>> if (node != null && (node instanceof OMText)) {
>>> OMText binaryDataNode = (OMText) node;
>>>
>>> Added: synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java
>>> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java?rev=1746027&view=auto
>>> ==============================================================================
>>> --- synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java (added)
>>> +++ synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java Sun May 29 15:54:01 2016
>>> @@ -0,0 +1,102 @@
>>> +/*
>>> + * 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.synapse.transport.passthru.util;
>>> +
>>> +import static org.junit.Assert.*;
>>> +
>>> +import java.io.IOException;
>>> +import java.io.InputStream;
>>> +import java.io.StringReader;
>>> +import java.nio.charset.Charset;
>>> +
>>> +import javax.xml.namespace.QName;
>>> +import javax.xml.stream.XMLStreamException;
>>> +
>>> +import org.apache.axiom.om.OMElement;
>>> +import org.apache.axiom.om.OMXMLBuilderFactory;
>>> +import org.apache.axiom.soap.SOAPEnvelope;
>>> +import org.apache.axis2.context.ConfigurationContext;
>>> +import org.apache.axis2.context.MessageContext;
>>> +import org.apache.axis2.engine.AxisConfiguration;
>>> +import org.apache.commons.io.input.ReaderInputStream;
>>> +import org.junit.Before;
>>> +import org.junit.Test;
>>> +
>>> +public class RelayUtilsTest {
>>> +
>>> + private static final Charset UTF8 = Charset.forName("UTF-8");
>>> +
>>> + private final String xml =
>>> + "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>"
>>> + + "<s:Body><payload><data>value</data></payload></s:Body>"
>>> + + "</s:Envelope>";
>>> +
>>> + private final QName payloadQName = new QName("payload");
>>> +
>>> + MessageContext msgCtx;
>>> +
>>> + @Before
>>> + public void setUp() throws Exception {
>>> + msgCtx = new MessageContext();
>>> +
>>> + AxisConfiguration configuration = new AxisConfiguration();
>>> + ConfigurationContext context = new ConfigurationContext(configuration);
>>> + msgCtx.setConfigurationContext(context);
>>> + }
>>> +
>>> + @Test
>>> + public void testSOAPBodyIsntFullyReadWhenNotUsingBinaryRelayBuilder()
>>> + throws IOException, XMLStreamException {
>>> +
>>> + SOAPEnvelope envelope = OMXMLBuilderFactory
>>> + .createSOAPModelBuilder(new StringReader(xml)).getSOAPEnvelope();
>>> +
>>> + msgCtx.setEnvelope(envelope);
>>> +
>>> + // Build message when using pass through pipe or binary relay builder
>>> + RelayUtils.buildMessage(msgCtx);
>>> +
>>> + // Ensure that the payload element is accessible
>>> + assertEquals(payloadQName, msgCtx.getEnvelope().getBody().getFirstElement().getQName());
>>> +
>>> + // Ensure that the body isn't fully build to support the use of deferred building
>>> + assertFalse(msgCtx.getEnvelope().getBody().isComplete());
>>> + }
>>> +
>>> + @Test
>>> + public void testBinaryRelayPayloadExpandsToOriginalPayload()
>>> + throws IOException, XMLStreamException {
>>> +
>>> + // Transform request soap message into a binary payload
>>> + BinaryRelayBuilder builder = new BinaryRelayBuilder();
>>> + InputStream stream = new ReaderInputStream(new StringReader(xml), UTF8);
>>> + OMElement element = builder.processDocument(stream, "text/xml", msgCtx);
>>> + msgCtx.setEnvelope((SOAPEnvelope)element);
>>> +
>>> + // Build message when using pass through pipe or binary relay builder
>>> + RelayUtils.buildMessage(msgCtx);
>>> +
>>> + // Ensure that the binary payload is transformed to the appropriate element
>>> + assertEquals(payloadQName, msgCtx.getEnvelope().getBody().getFirstElement().getQName());
>>> +
>>> + // Ensure that the body isn't fully build to support the use of deferred building
>>> + assertFalse(msgCtx.getEnvelope().getBody().isComplete());
>>> + }
>>> +
>>> +}
>>>
>>> Propchange: synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java
>>> ------------------------------------------------------------------------------
>>> svn:eol-style = native
>>>
>>> Modified: synapse/trunk/java/pom.xml
>>> URL: http://svn.apache.org/viewvc/synapse/trunk/java/pom.xml?rev=1746027&r1=1746026&r2=1746027&view=diff
>>> ==============================================================================
>>> --- synapse/trunk/java/pom.xml (original)
>>> +++ synapse/trunk/java/pom.xml Sun May 29 15:54:01 2016
>>> @@ -1035,7 +1035,7 @@
>>> <commons.codec.version>1.6</commons.codec.version>
>>>
>>> <!-- Axis2 and its dependencies -->
>>> - <axis2.version>1.7.2</axis2.version>
>>> + <axis2.version>1.7.3-SNAPSHOT</axis2.version>
>>> <axiom.version>1.2.19</axiom.version>
>>> <wsdl4j.version>1.6.2</wsdl4j.version>
>>>
>>>
>>>
>>
>> --
>> Hiranya Jayathilaka
>> Mayhem Lab/RACE Lab;
>> Dept. of Computer Science, UCSB; http://cs.ucsb.edu
>> E-mail: hiranya@cs.ucsb.edu; Mobile: +1 (805) 895-7443
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
>> For additional commands, e-mail: dev-help@synapse.apache.org
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org
Re: svn commit: r1746027 - in /synapse/trunk/java: ./
modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/
modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/
modules/transports/core/nhttp/s...
Posted by Andreas Veithen <an...@gmail.com>.
We are going to release with 1.7.3.
Andreas
On Sun, May 29, 2016 at 7:54 PM, Hiranya Jayathilaka
<hi...@gmail.com> wrote:
> Hi Andreas,
>
> How is this going to impact the release process, if we are to release with Axis2 1.7.2?
>
> Thanks,
> Hiranya
>
>> On May 29, 2016, at 8:54 AM, veithen@apache.org wrote:
>>
>> Author: veithen
>> Date: Sun May 29 15:54:01 2016
>> New Revision: 1746027
>>
>> URL: http://svn.apache.org/viewvc?rev=1746027&view=rev
>> Log:
>> SYNAPSE-1027: Fix a performance regression caused by pass through related code. Patch provided by Auke Schrijnen. Also update the Axis2 version to 1.7.3-SNAPSHOT since the unit test depends on a fix in the Axis2 transport testkit.
>>
>> Added:
>> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/
>> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/
>> synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java (with props)
>> Modified:
>> synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java
>> synapse/trunk/java/pom.xml
>>
>> Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java
>> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java?rev=1746027&r1=1746026&r2=1746027&view=diff
>> ==============================================================================
>> --- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java (original)
>> +++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java Sun May 29 15:54:01 2016
>> @@ -42,6 +42,7 @@ import org.apache.synapse.transport.pass
>>
>> import javax.activation.DataHandler;
>> import javax.activation.DataSource;
>> +import javax.xml.namespace.QName;
>> import javax.xml.stream.XMLStreamException;
>>
>> import java.io.BufferedInputStream;
>> @@ -88,10 +89,20 @@ public class RelayUtils {
>> }
>>
>> SOAPEnvelope envelope = messageContext.getEnvelope();
>> - OMElement contentEle = envelope.getBody().getFirstChildWithName(
>> - RelayConstants.BINARY_CONTENT_QNAME);
>>
>> - if (contentEle != null) {
>> + QName firstElementQName;
>> + if (envelope.getSOAPBodyFirstElementNS() != null) {
>> + firstElementQName = new QName(
>> + envelope.getSOAPBodyFirstElementNS().getNamespaceURI(),
>> + envelope.getSOAPBodyFirstElementLocalName());
>> + } else if (envelope.getSOAPBodyFirstElementLocalName() != null){
>> + firstElementQName = new QName(envelope.getSOAPBodyFirstElementLocalName());
>> + } else {
>> + firstElementQName = null;
>> + }
>> +
>> + if (RelayConstants.BINARY_CONTENT_QNAME.equals(firstElementQName)) {
>> + OMElement contentEle = envelope.getBody().getFirstElement();
>> OMNode node = contentEle.getFirstOMChild();
>> if (node != null && (node instanceof OMText)) {
>> OMText binaryDataNode = (OMText) node;
>>
>> Added: synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java
>> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java?rev=1746027&view=auto
>> ==============================================================================
>> --- synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java (added)
>> +++ synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java Sun May 29 15:54:01 2016
>> @@ -0,0 +1,102 @@
>> +/*
>> + * 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.synapse.transport.passthru.util;
>> +
>> +import static org.junit.Assert.*;
>> +
>> +import java.io.IOException;
>> +import java.io.InputStream;
>> +import java.io.StringReader;
>> +import java.nio.charset.Charset;
>> +
>> +import javax.xml.namespace.QName;
>> +import javax.xml.stream.XMLStreamException;
>> +
>> +import org.apache.axiom.om.OMElement;
>> +import org.apache.axiom.om.OMXMLBuilderFactory;
>> +import org.apache.axiom.soap.SOAPEnvelope;
>> +import org.apache.axis2.context.ConfigurationContext;
>> +import org.apache.axis2.context.MessageContext;
>> +import org.apache.axis2.engine.AxisConfiguration;
>> +import org.apache.commons.io.input.ReaderInputStream;
>> +import org.junit.Before;
>> +import org.junit.Test;
>> +
>> +public class RelayUtilsTest {
>> +
>> + private static final Charset UTF8 = Charset.forName("UTF-8");
>> +
>> + private final String xml =
>> + "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>"
>> + + "<s:Body><payload><data>value</data></payload></s:Body>"
>> + + "</s:Envelope>";
>> +
>> + private final QName payloadQName = new QName("payload");
>> +
>> + MessageContext msgCtx;
>> +
>> + @Before
>> + public void setUp() throws Exception {
>> + msgCtx = new MessageContext();
>> +
>> + AxisConfiguration configuration = new AxisConfiguration();
>> + ConfigurationContext context = new ConfigurationContext(configuration);
>> + msgCtx.setConfigurationContext(context);
>> + }
>> +
>> + @Test
>> + public void testSOAPBodyIsntFullyReadWhenNotUsingBinaryRelayBuilder()
>> + throws IOException, XMLStreamException {
>> +
>> + SOAPEnvelope envelope = OMXMLBuilderFactory
>> + .createSOAPModelBuilder(new StringReader(xml)).getSOAPEnvelope();
>> +
>> + msgCtx.setEnvelope(envelope);
>> +
>> + // Build message when using pass through pipe or binary relay builder
>> + RelayUtils.buildMessage(msgCtx);
>> +
>> + // Ensure that the payload element is accessible
>> + assertEquals(payloadQName, msgCtx.getEnvelope().getBody().getFirstElement().getQName());
>> +
>> + // Ensure that the body isn't fully build to support the use of deferred building
>> + assertFalse(msgCtx.getEnvelope().getBody().isComplete());
>> + }
>> +
>> + @Test
>> + public void testBinaryRelayPayloadExpandsToOriginalPayload()
>> + throws IOException, XMLStreamException {
>> +
>> + // Transform request soap message into a binary payload
>> + BinaryRelayBuilder builder = new BinaryRelayBuilder();
>> + InputStream stream = new ReaderInputStream(new StringReader(xml), UTF8);
>> + OMElement element = builder.processDocument(stream, "text/xml", msgCtx);
>> + msgCtx.setEnvelope((SOAPEnvelope)element);
>> +
>> + // Build message when using pass through pipe or binary relay builder
>> + RelayUtils.buildMessage(msgCtx);
>> +
>> + // Ensure that the binary payload is transformed to the appropriate element
>> + assertEquals(payloadQName, msgCtx.getEnvelope().getBody().getFirstElement().getQName());
>> +
>> + // Ensure that the body isn't fully build to support the use of deferred building
>> + assertFalse(msgCtx.getEnvelope().getBody().isComplete());
>> + }
>> +
>> +}
>>
>> Propchange: synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/passthru/util/RelayUtilsTest.java
>> ------------------------------------------------------------------------------
>> svn:eol-style = native
>>
>> Modified: synapse/trunk/java/pom.xml
>> URL: http://svn.apache.org/viewvc/synapse/trunk/java/pom.xml?rev=1746027&r1=1746026&r2=1746027&view=diff
>> ==============================================================================
>> --- synapse/trunk/java/pom.xml (original)
>> +++ synapse/trunk/java/pom.xml Sun May 29 15:54:01 2016
>> @@ -1035,7 +1035,7 @@
>> <commons.codec.version>1.6</commons.codec.version>
>>
>> <!-- Axis2 and its dependencies -->
>> - <axis2.version>1.7.2</axis2.version>
>> + <axis2.version>1.7.3-SNAPSHOT</axis2.version>
>> <axiom.version>1.2.19</axiom.version>
>> <wsdl4j.version>1.6.2</wsdl4j.version>
>>
>>
>>
>
> --
> Hiranya Jayathilaka
> Mayhem Lab/RACE Lab;
> Dept. of Computer Science, UCSB; http://cs.ucsb.edu
> E-mail: hiranya@cs.ucsb.edu; Mobile: +1 (805) 895-7443
> Blog: http://techfeast-hiranya.blogspot.com
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
> For additional commands, e-mail: dev-help@synapse.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org