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]