You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/11/19 22:06:42 UTC
svn commit: r719070 - in
/servicemix/components/bindings/servicemix-http/trunk/src:
main/java/org/apache/servicemix/http/endpoints/HttpSoapProviderMarshaler.java
test/java/org/apache/servicemix/http/ProviderEndpointTest.java
Author: gnodet
Date: Wed Nov 19 13:06:41 2008
New Revision: 719070
URL: http://svn.apache.org/viewvc?rev=719070&view=rev
Log:
SM-1167: Fix soap provider marshaler
Modified:
servicemix/components/bindings/servicemix-http/trunk/src/main/java/org/apache/servicemix/http/endpoints/HttpSoapProviderMarshaler.java
servicemix/components/bindings/servicemix-http/trunk/src/test/java/org/apache/servicemix/http/ProviderEndpointTest.java
Modified: servicemix/components/bindings/servicemix-http/trunk/src/main/java/org/apache/servicemix/http/endpoints/HttpSoapProviderMarshaler.java
URL: http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-http/trunk/src/main/java/org/apache/servicemix/http/endpoints/HttpSoapProviderMarshaler.java?rev=719070&r1=719069&r2=719070&view=diff
==============================================================================
--- servicemix/components/bindings/servicemix-http/trunk/src/main/java/org/apache/servicemix/http/endpoints/HttpSoapProviderMarshaler.java (original)
+++ servicemix/components/bindings/servicemix-http/trunk/src/main/java/org/apache/servicemix/http/endpoints/HttpSoapProviderMarshaler.java Wed Nov 19 13:06:41 2008
@@ -37,6 +37,7 @@
import org.apache.servicemix.soap.interceptors.xml.StaxInInterceptor;
import org.mortbay.io.ByteArrayBuffer;
import org.mortbay.jetty.HttpMethods;
+import org.mortbay.jetty.HttpHeaders;
/**
*
@@ -86,13 +87,19 @@
public void createRequest(final MessageExchange exchange,
final NormalizedMessage inMsg,
final SmxHttpExchange httpExchange) throws Exception {
+ if (getContentEncoding() != null) {
+ httpExchange.setRequestHeader(HttpHeaders.CONTENT_ENCODING, getContentEncoding());
+ }
+ if (getAcceptEncoding() != null) {
+ httpExchange.setRequestHeader(HttpHeaders.ACCEPT_ENCODING, getAcceptEncoding());
+ }
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream encodingStream = getRequestEncodingStream(getContentEncoding(), baos);
Message msg = binding.createMessage();
msg.put(JbiConstants.USE_JBI_WRAPPER, useJbiWrapper);
msg.setContent(MessageExchange.class, exchange);
msg.setContent(NormalizedMessage.class, inMsg);
- msg.setContent(OutputStream.class, baos);
+ msg.setContent(OutputStream.class, encodingStream);
exchange.setProperty(Message.class.getName(), msg);
InterceptorChain phaseOut = getChain(Phase.ClientOut);
@@ -120,7 +127,9 @@
Message msg = binding.createMessage(req);
msg.put(JbiConstants.USE_JBI_WRAPPER, useJbiWrapper);
msg.setContent(MessageExchange.class, exchange);
- msg.setContent(InputStream.class, new ByteArrayInputStream(httpExchange.getResponseData()));
+ msg.setContent(InputStream.class, getResponseEncodingStream(
+ httpExchange.getResponseFields().getStringField(HttpHeaders.CONTENT_ENCODING),
+ httpExchange.getResponseStream()));
msg.put(StaxInInterceptor.ENCODING, httpExchange.getResponseEncoding());
InterceptorChain phaseOut = getChain(Phase.ClientIn);
phaseOut.doIntercept(msg);
Modified: servicemix/components/bindings/servicemix-http/trunk/src/test/java/org/apache/servicemix/http/ProviderEndpointTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-http/trunk/src/test/java/org/apache/servicemix/http/ProviderEndpointTest.java?rev=719070&r1=719069&r2=719070&view=diff
==============================================================================
--- servicemix/components/bindings/servicemix-http/trunk/src/test/java/org/apache/servicemix/http/ProviderEndpointTest.java (original)
+++ servicemix/components/bindings/servicemix-http/trunk/src/test/java/org/apache/servicemix/http/ProviderEndpointTest.java Wed Nov 19 13:06:41 2008
@@ -395,8 +395,9 @@
+ " </jbi:part>"
+ "</jbi:message>"));
client.sendSync(me);
-
+ assertEquals(ExchangeStatus.ACTIVE, me.getStatus());
System.err.println(new SourceTransformer().contentToString(me.getOutMessage()));
+ client.done(me);
}
public void testGzipEncodingSoap() throws Exception {
@@ -443,6 +444,9 @@
+ " </jbi:part>"
+ "</jbi:message>"));
client.sendSync(me);
+ assertEquals(ExchangeStatus.ACTIVE, me.getStatus());
+ System.err.println(new SourceTransformer().contentToString(me.getOutMessage()));
+ client.done(me);
}
}