hgomez 2005/04/22 00:56:43
Modified: src/java/org/apache/xmlrpc XmlRpcClient.java
XmlRpcServer.java
Log:
Now we can defined maxThreads (workers in fact) for XmlRPCServer/XmlRPCClient
instance.
Stay compatible with the old way (XmlRpc.getMaxThreads().
Revision Changes Path
1.21 +28 -2 ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcClient.java
Index: XmlRpcClient.java
===================================================================
RCS file: /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcClient.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- XmlRpcClient.java 15 Apr 2005 10:21:53 -0000 1.20
+++ XmlRpcClient.java 22 Apr 2005 07:56:43 -0000 1.21
@@ -91,6 +91,13 @@
private CallData first, last;
/**
+ * The maximum number of threads which can be used concurrently, by
defaut use the one defined
+ * in XmlRpc
+ */
+ private int maxThreads = -1;
+
+
+ /**
* Construct a XML-RPC client with this URL and a specified transport
* factory.
*/
@@ -129,6 +136,25 @@
}
/**
+ * Set the MaxThreads for this Client
+ */
+ public void setMaxThreads(int maxThreads)
+ {
+ this.maxThreads = maxThreads;
+ }
+
+ /**
+ * Get the MaxThreads for this Client
+ */
+ public int getMaxThreads()
+ {
+ if (maxThreads == -1)
+ return (XmlRpc.getMaxThreads());
+
+ return (maxThreads);
+ }
+
+ /**
* Return the URL for this XML-RPC client.
*/
public URL getURL()
@@ -346,7 +372,7 @@
}
catch(EmptyStackException x)
{
- if (workers < XmlRpc.getMaxThreads())
+ if (workers < getMaxThreads())
{
if (async)
{
1.39 +26 -1 ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcServer.java
Index: XmlRpcServer.java
===================================================================
RCS file: /home/cvs/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcServer.java,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- XmlRpcServer.java 15 Apr 2005 10:21:53 -0000 1.38
+++ XmlRpcServer.java 22 Apr 2005 07:56:43 -0000 1.39
@@ -75,6 +75,12 @@
private int nbrWorkers;
/**
+ * The maximum number of threads which can be used concurrently, by
defaut use the one defined
+ * in XmlRpc
+ */
+ private int maxThreads = -1;
+
+ /**
* We want the <code>$default</code> handler to always be
* available.
*/
@@ -116,6 +122,25 @@
}
/**
+ * Set the MaxThreads for this Client
+ */
+ public void setMaxThreads(int maxThreads)
+ {
+ this.maxThreads = maxThreads;
+ }
+
+ /**
+ * Get the MaxThreads for this Server
+ */
+ public int getMaxThreads()
+ {
+ if (maxThreads == -1)
+ return (XmlRpc.getMaxThreads());
+
+ return (maxThreads);
+ }
+
+ /**
* Parse the request and execute the handler method, if one is
* found. Returns the result as XML. The calling Java code
* doesn't need to know whether the call was successful or not
@@ -172,7 +197,7 @@
}
catch(EmptyStackException x)
{
- int maxThreads = XmlRpc.getMaxThreads();
+ int maxThreads = getMaxThreads();
if (nbrWorkers < maxThreads)
{
nbrWorkers += 1;