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);
     }
 
 }