Fix for CONNECTORS-354.  Add ConnectionPoolSize integer parameter.

git-svn-id: https://svn.apache.org/repos/asf/incubator/lcf/integration/solr-3.x/trunk@1226464 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/mcf/src/java/org/apache/solr/mcf/ManifoldCFQParserPlugin.java b/mcf/src/java/org/apache/solr/mcf/ManifoldCFQParserPlugin.java
index e2118d7..9915aca 100644
--- a/mcf/src/java/org/apache/solr/mcf/ManifoldCFQParserPlugin.java
+++ b/mcf/src/java/org/apache/solr/mcf/ManifoldCFQParserPlugin.java
@@ -78,6 +78,7 @@
   int socketTimeOut;
   MultiThreadedHttpConnectionManager httpConnectionManager = null;
   HttpClient client = null;
+  int poolSize;
   
   public ManifoldCFQParserPlugin()
   {
@@ -101,14 +102,17 @@
     fieldDenyDocument = denyAttributePrefix+"document";
     fieldAllowShare = allowAttributePrefix+"share";
     fieldDenyShare = denyAttributePrefix+"share";
+    Integer connectionPoolSize = (Integer)args.get("ConnectionPoolSize");
+    poolSize = (connectionPoolSize==null)?50:connectionPoolSize.intValue();
 
     // Initialize the connection pool
     HttpConnectionManagerParams params = new HttpConnectionManagerParams();
     params.setTcpNoDelay(true);
     params.setStaleCheckingEnabled(false);
+    params.setDefaultMaxConnectionsPerHost(poolSize);
+    params.setMaxTotalConnections(poolSize);
     httpConnectionManager = new MultiThreadedHttpConnectionManager();
     httpConnectionManager.setParams(params);
-    // MHL to set the pool size
     client = new HttpClient(httpConnectionManager);
   }
 
diff --git a/mcf/src/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java b/mcf/src/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java
index 11d59ce..65d8e07 100644
--- a/mcf/src/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java
+++ b/mcf/src/java/org/apache/solr/mcf/ManifoldCFSearchComponent.java
@@ -70,6 +70,7 @@
   int socketTimeOut;
   MultiThreadedHttpConnectionManager httpConnectionManager = null;
   HttpClient client = null;
+  int poolSize;
   
   public ManifoldCFSearchComponent()
   {
@@ -103,14 +104,17 @@
     fieldDenyDocument = denyAttributePrefix+"document";
     fieldAllowShare = allowAttributePrefix+"share";
     fieldDenyShare = denyAttributePrefix+"share";
-    
+    Integer connectionPoolSize = (Integer)args.get("ConnectionPoolSize");
+    poolSize = (connectionPoolSize==null)?50:connectionPoolSize.intValue();
+
     // Initialize the connection pool
     HttpConnectionManagerParams params = new HttpConnectionManagerParams();
     params.setTcpNoDelay(true);
     params.setStaleCheckingEnabled(false);
+    params.setDefaultMaxConnectionsPerHost(poolSize);
+    params.setMaxTotalConnections(poolSize);
     httpConnectionManager = new MultiThreadedHttpConnectionManager();
     httpConnectionManager.setParams(params);
-    // MHL to set the pool size
     client = new HttpClient(httpConnectionManager);
   }