You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/05/25 00:40:43 UTC

svn commit: r1127323 - in /cxf/trunk: rt/transports/common/src/main/java/org/apache/cxf/transport/common/gzip/ rt/transports/local/src/main/java/org/apache/cxf/transport/local/ systests/transports/src/test/java/org/apache/cxf/systest/local_transport/

Author: dkulp
Date: Tue May 24 22:40:42 2011
New Revision: 1127323

URL: http://svn.apache.org/viewvc?rev=1127323&view=rev
Log:
[CXF-3545] Use the "correct" streams when copying content in direct
dispatch mode.

Modified:
    cxf/trunk/rt/transports/common/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java
    cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
    cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java
    cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/DirectDispatchClientTest.java
    cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/Server.java

Modified: cxf/trunk/rt/transports/common/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/common/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java?rev=1127323&r1=1127322&r2=1127323&view=diff
==============================================================================
--- cxf/trunk/rt/transports/common/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java (original)
+++ cxf/trunk/rt/transports/common/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java Tue May 24 22:40:42 2011
@@ -106,6 +106,11 @@ public class GZIPOutInterceptor extends 
         super(Phase.PREPARE_SEND);
         addAfter(MessageSenderInterceptor.class.getName());
     }
+    public GZIPOutInterceptor(int threshold) {
+        super(Phase.PREPARE_SEND);
+        addAfter(MessageSenderInterceptor.class.getName());
+        this.threshold = threshold;
+    }
 
     public void setThreshold(int threshold) {
         this.threshold = threshold;

Modified: cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java?rev=1127323&r1=1127322&r2=1127323&view=diff
==============================================================================
--- cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java (original)
+++ cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalConduit.java Tue May 24 22:40:42 2011
@@ -93,9 +93,11 @@ public class LocalConduit extends Abstra
         
         OutputStream out = message.getContent(OutputStream.class);
         out.flush();
+        out.close();
         
         CachedOutputStream stream = message.get(CachedOutputStream.class);
         copy.setContent(InputStream.class, stream.getInputStream());
+        copy.removeContent(CachedOutputStream.class);
 
         // Create a new incoming exchange and store the original exchange for the response
         ExchangeImpl ex = new ExchangeImpl();

Modified: cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java?rev=1127323&r1=1127322&r2=1127323&view=diff
==============================================================================
--- cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java (original)
+++ cxf/trunk/rt/transports/local/src/main/java/org/apache/cxf/transport/local/LocalDestination.java Tue May 24 22:40:42 2011
@@ -120,6 +120,7 @@ public class LocalDestination extends Ab
             } else {
                 CachedOutputStream stream = new CachedOutputStream();
                 message.setContent(OutputStream.class, stream);
+                message.setContent(CachedOutputStream.class, stream);
             }
         }
 
@@ -130,8 +131,10 @@ public class LocalDestination extends Ab
                 
                 MessageImpl copy = new MessageImpl();
                 copy.putAll(message);
+                message.getContent(OutputStream.class).close();
+                CachedOutputStream stream = message.getContent(CachedOutputStream.class);
+                message.setContent(OutputStream.class, stream);
                 MessageImpl.copyContent(message, copy);
-                CachedOutputStream stream = (CachedOutputStream)message.getContent(OutputStream.class);
                 copy.setContent(InputStream.class, stream.getInputStream());
                 if (exchange != null && exchange.getInMessage() == null) {
                     exchange.setInMessage(copy);

Modified: cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/DirectDispatchClientTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/DirectDispatchClientTest.java?rev=1127323&r1=1127322&r2=1127323&view=diff
==============================================================================
--- cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/DirectDispatchClientTest.java (original)
+++ cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/DirectDispatchClientTest.java Tue May 24 22:40:42 2011
@@ -30,7 +30,11 @@ import javax.xml.ws.Service;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.frontend.ClientProxy;
 import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.apache.cxf.transport.common.gzip.GZIPInInterceptor;
+import org.apache.cxf.transport.common.gzip.GZIPOutInterceptor;
 import org.apache.cxf.transport.local.LocalConduit;
 import org.apache.hello_world_soap_http.Greeter;
 
@@ -71,6 +75,9 @@ public class DirectDispatchClientTest ex
         Greeter greeter = service.getPort(localPortName, Greeter.class);
         
         if (isDirectDispatch) {
+            Client client = ClientProxy.getClient(greeter);
+            client.getOutInterceptors().add(new GZIPOutInterceptor(50));
+            client.getInInterceptors().add(new GZIPInInterceptor());
             InvocationHandler handler  = Proxy.getInvocationHandler(greeter);
             BindingProvider  bp = null;
             if (handler instanceof BindingProvider) {

Modified: cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/Server.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/Server.java?rev=1127323&r1=1127322&r2=1127323&view=diff
==============================================================================
--- cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/Server.java (original)
+++ cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/local_transport/Server.java Tue May 24 22:40:42 2011
@@ -19,10 +19,12 @@
 
 package org.apache.cxf.systest.local_transport;
 
+import javax.jws.WebService;
 import javax.xml.ws.Endpoint;
 
+import org.apache.cxf.annotations.GZIP;
 import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-import org.apache.hello_world_soap_http.GreeterImpl;
+import org.apache.hello_world_soap_http.BaseGreeterImpl;
 
 public class Server extends AbstractBusTestServerBase {
 
@@ -44,5 +46,17 @@ public class Server extends AbstractBusT
             System.out.println("done!");
         }
     }
+    
+
+    @WebService(serviceName = "SOAPService",
+                portName = "SoapPort",
+                endpointInterface = "org.apache.hello_world_soap_http.Greeter",
+                targetNamespace = "http://apache.org/hello_world_soap_http",
+                wsdlLocation = "testutils/hello_world.wsdl")
+    @GZIP(threshold = 50)            
+    public class GreeterImpl extends BaseGreeterImpl {
+
+
+    }
 }