Author: slaws
Date: Fri Nov  9 02:17:31 2007
New Revision: 593478

URL: http://svn.apache.org/viewvc?rev=593478&view=rev
Log:
TUSCANY-1804
Change Axis2 configuration to ensure that connections are closed after they are 
used to ensure that repeated @OneWay operations work correctly
Include a new itest to test repeated @OneWay operations (not turned on yet in 
itest pom as port numbers need fixing)

Modified:
    
incubator/tuscany/java/sca/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayClientImpl.java
    incubator/tuscany/java/sca/itest/oneway/src/main/resources/oneWay.composite
    
incubator/tuscany/java/sca/itest/oneway/src/test/java/org/apache/tuscany/sca/itest/oneway/OneWayTestCase.java
    
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java
    
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java

Modified: 
incubator/tuscany/java/sca/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayClientImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayClientImpl.java?rev=593478&r1=593477&r2=593478&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayClientImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayClientImpl.java
 Fri Nov  9 02:17:31 2007
@@ -34,14 +34,15 @@
     
     @Reference 
     protected OneWayService oneWayService;
+    
+    public static int callCount = 0;
 
 
     public int doSomething(int count){
-           
-        int start = count * 10;
-        int end = start + 100;
+                   
+        callCount = callCount + count;
         
-        for (int loopCount = start; loopCount < end; loopCount++){
+        for (int loopCount = 0; loopCount < count; loopCount++){
             System.out.println("Client: doSomething " + loopCount);
             System.out.flush();
             oneWayService.doSomething(loopCount);

Modified: 
incubator/tuscany/java/sca/itest/oneway/src/main/resources/oneWay.composite
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/oneway/src/main/resources/oneWay.composite?rev=593478&r1=593477&r2=593478&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/oneway/src/main/resources/oneWay.composite 
(original)
+++ incubator/tuscany/java/sca/itest/oneway/src/main/resources/oneWay.composite 
Fri Nov  9 02:17:31 2007
@@ -24,7 +24,7 @@
                <implementation.java 
class="org.apache.tuscany.sca.itest.oneway.impl.OneWayClientImpl"/>
                <reference name="oneWayService">
                    <interface.java 
interface="org.apache.tuscany.sca.itest.oneway.OneWayService" />       
-            <binding.ws uri="http://localhost:8085/OneWayServiceComponent"/>
+            <binding.ws uri="http://localhost:8080/OneWayServiceComponent"/>
         </reference>
        </component> 
           

Modified: 
incubator/tuscany/java/sca/itest/oneway/src/test/java/org/apache/tuscany/sca/itest/oneway/OneWayTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/oneway/src/test/java/org/apache/tuscany/sca/itest/oneway/OneWayTestCase.java?rev=593478&r1=593477&r2=593478&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/oneway/src/test/java/org/apache/tuscany/sca/itest/oneway/OneWayTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/oneway/src/test/java/org/apache/tuscany/sca/itest/oneway/OneWayTestCase.java
 Fri Nov  9 02:17:31 2007
@@ -22,6 +22,7 @@
 import junit.framework.Assert;
 
 import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.itest.oneway.impl.OneWayClientImpl;
 import org.apache.tuscany.sca.itest.oneway.impl.OneWayServiceImpl;
 import org.junit.After;
 import org.junit.Before;
@@ -50,20 +51,24 @@
             domain.getService(OneWayClient.class, "OneWayClientComponent");
         try {
             
-            for (int count = 0; count < 1; count++){
+            int count = 100;
+
+            for (int i = 0; i < 10; i++){
                 System.out.println("Test: doSomething " + count);
                 System.out.flush();
                 client.doSomething(count);
+    
+                Thread.sleep(2000);
+                
+                System.out.println("Finished callCount = " + 
OneWayServiceImpl.callCount);
+                
+                Assert.assertEquals(OneWayClientImpl.callCount, 
OneWayServiceImpl.callCount);                
             }
-
-            Thread.sleep(5000);
         } catch (Exception ex) {
             System.err.println("Exception: " + ex.toString());
         }
         
-        System.out.println("Finished callCount = " + 
OneWayServiceImpl.callCount);
-        
-        Assert.assertEquals(99, OneWayServiceImpl.callCount);
+
 
     }
 

Modified: 
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java?rev=593478&r1=593477&r2=593478&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java
 Fri Nov  9 02:17:31 2007
@@ -46,7 +46,11 @@
 
         // ensure connections are tracked so that they can be closed by the 
reference binding
         MessageContext requestMC = 
operationClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
-        requestMC.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, 
Boolean.TRUE);
+        //requestMC.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, 
Boolean.TRUE);
+        Options opt = requestMC.getOptions();
+        opt.setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Boolean.TRUE);
+        opt.setUseSeparateListener(true);
+        opt.setProperty(HTTPConstants.AUTO_RELEASE_CONNECTION,Boolean.TRUE);   
     
 
         operationClient.execute(false);
 

Modified: 
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java?rev=593478&r1=593477&r2=593478&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java
 Fri Nov  9 02:17:31 2007
@@ -52,8 +52,10 @@
 import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
 import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.util.threadpool.ThreadPool;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
 import org.apache.neethi.Policy;
 import org.apache.tuscany.sca.assembly.AbstractContract;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
@@ -106,7 +108,26 @@
             AxisService axisService =
                 createClientSideAxisService(wsdlDefinition, serviceQName, 
portName, new Options());
 
+            HttpClient httpClient = (HttpClient) 
configContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT); 
+            if (httpClient == null)
+            {
+                MultiThreadedHttpConnectionManager connectionManager = new 
MultiThreadedHttpConnectionManager();
+                HttpConnectionManagerParams connectionManagerParams = new 
HttpConnectionManagerParams();
+                connectionManagerParams.setDefaultMaxConnectionsPerHost(2);
+                connectionManagerParams.setTcpNoDelay(true);
+                connectionManagerParams.setStaleCheckingEnabled(true);
+                connectionManagerParams.setLinger(0);
+                connectionManager.setParams(connectionManagerParams);
+                httpClient  = new HttpClient(connectionManager);
+                configContext.setThreadPool(new ThreadPool(1, 5));
+                configContext.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,
+                                          Boolean.TRUE);
+                configContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT,
+                                          httpClient);
+            }
+
             return new ServiceClient(configContext, axisService);
+           
         } catch (AxisFault e) {
             throw new RuntimeException(e); // TODO: better exception
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to