From c8832cd4b64c2e395fabf5fff2461fcd8097adc0 Mon Sep 17 00:00:00 2001 From: Hiroaki Kawai Date: Mon, 19 Nov 2012 12:02:26 +0100 Subject: [PATCH] Commit https://reviews.apache.org/r/8075/ Signed-off-by: Hugo Trippaers --- agent/src/com/cloud/agent/AgentShell.java | 4 +++- awsapi/src/com/cloud/bridge/io/S3CAStorBucketAdapter.java | 4 +++- .../com/cloud/storage/template/HttpTemplateDownloader.java | 4 +++- .../nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java | 4 +++- server/src/com/cloud/maint/UpgradeManagerImpl.java | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/agent/src/com/cloud/agent/AgentShell.java b/agent/src/com/cloud/agent/AgentShell.java index 05caf8e6cda..774f222dfb9 100644 --- a/agent/src/com/cloud/agent/AgentShell.java +++ b/agent/src/com/cloud/agent/AgentShell.java @@ -39,6 +39,7 @@ import java.util.UUID; import javax.naming.ConfigurationException; import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.log4j.Logger; @@ -61,6 +62,7 @@ import com.cloud.utils.script.Script; public class AgentShell implements IAgentShell { private static final Logger s_logger = Logger.getLogger(AgentShell.class .getName()); + private static final MultiThreadedHttpConnectionManager s_httpClientManager = new MultiThreadedHttpConnectionManager(); private final Properties _properties = new Properties(); private final Map _cmdLineProperties = new HashMap(); @@ -224,7 +226,7 @@ public class AgentShell implements IAgentShell { } public static void wget(String url, File file) throws IOException { - final HttpClient client = new HttpClient(); + final HttpClient client = new HttpClient(s_httpClientManager); final GetMethod method = new GetMethod(url); int response; response = client.executeMethod(method); diff --git a/awsapi/src/com/cloud/bridge/io/S3CAStorBucketAdapter.java b/awsapi/src/com/cloud/bridge/io/S3CAStorBucketAdapter.java index ad6f6cd4658..2101afe1418 100644 --- a/awsapi/src/com/cloud/bridge/io/S3CAStorBucketAdapter.java +++ b/awsapi/src/com/cloud/bridge/io/S3CAStorBucketAdapter.java @@ -58,6 +58,7 @@ import com.caringo.client.ScspResponse; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.Header; +import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; /** * Creates an SCSP client to a CAStor cluster, configured in "storage.root", @@ -65,6 +66,7 @@ import org.apache.commons.httpclient.Header; */ public class S3CAStorBucketAdapter implements S3BucketAdapter { protected final static Logger s_logger = Logger.getLogger(S3CAStorBucketAdapter.class); + private static final MultiThreadedHttpConnectionManager s_httpClientManager = new MultiThreadedHttpConnectionManager(); private static final int HTTP_OK = 200; private static final int HTTP_CREATED = 201; @@ -444,7 +446,7 @@ public class S3CAStorBucketAdapter implements S3BucketAdapter { @Override public DataHandler loadObjectRange(String mountedRoot, String bucket, String fileName, long startPos, long endPos) { try { - HttpClient httpClient = new HttpClient(); + HttpClient httpClient = new HttpClient(s_httpClientManager); // Create a method instance. GetMethod method = new GetMethod(castorURL(mountedRoot, bucket, fileName)); method.addRequestHeader("Range", "bytes=" + startPos + "-" + endPos); diff --git a/core/src/com/cloud/storage/template/HttpTemplateDownloader.java b/core/src/com/cloud/storage/template/HttpTemplateDownloader.java index bd607b3dc76..628ad64c0dc 100644 --- a/core/src/com/cloud/storage/template/HttpTemplateDownloader.java +++ b/core/src/com/cloud/storage/template/HttpTemplateDownloader.java @@ -37,6 +37,7 @@ import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.HttpMethodRetryHandler; import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.NoHttpResponseException; import org.apache.commons.httpclient.UsernamePasswordCredentials; import org.apache.commons.httpclient.auth.AuthScope; @@ -56,6 +57,7 @@ import com.cloud.utils.Pair; */ public class HttpTemplateDownloader implements TemplateDownloader { public static final Logger s_logger = Logger.getLogger(HttpTemplateDownloader.class.getName()); + private static final MultiThreadedHttpConnectionManager s_httpClientManager = new MultiThreadedHttpConnectionManager(); private static final int CHUNK_SIZE = 1024*1024; //1M private String downloadUrl; @@ -88,7 +90,7 @@ public class HttpTemplateDownloader implements TemplateDownloader { this.MAX_TEMPLATE_SIZE_IN_BYTES = maxTemplateSizeInBytes; this.totalBytes = 0; - this.client = new HttpClient(); + this.client = new HttpClient(s_httpClientManager); myretryhandler = new HttpMethodRetryHandler() { public boolean retryMethod( diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java index 6aeb8778f5b..26e7e0d663c 100644 --- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java +++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/NiciraNvpApi.java @@ -44,6 +44,7 @@ import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpMethodBase; import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.cookie.CookiePolicy; import org.apache.commons.httpclient.methods.DeleteMethod; @@ -62,6 +63,7 @@ import com.google.gson.reflect.TypeToken; public class NiciraNvpApi { private static final Logger s_logger = Logger.getLogger(NiciraNvpApi.class); private final static String _protocol = "https"; + private static final MultiThreadedHttpConnectionManager s_httpClientManager = new MultiThreadedHttpConnectionManager(); private String _name; private String _host; @@ -79,7 +81,7 @@ public class NiciraNvpApi { throw new NiciraNvpApiException("host, adminuser and adminpass may not be null"); } - _client = new HttpClient( ); + _client = new HttpClient(s_httpClientManager); _client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); try { diff --git a/server/src/com/cloud/maint/UpgradeManagerImpl.java b/server/src/com/cloud/maint/UpgradeManagerImpl.java index b4bc291bdc8..c1ce3f0517f 100644 --- a/server/src/com/cloud/maint/UpgradeManagerImpl.java +++ b/server/src/com/cloud/maint/UpgradeManagerImpl.java @@ -36,6 +36,7 @@ import javax.naming.ConfigurationException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.log4j.Logger; import com.cloud.configuration.dao.ConfigurationDao; @@ -54,6 +55,7 @@ import com.cloud.utils.component.ComponentLocator; @Local(UpgradeManager.class) public class UpgradeManagerImpl implements UpgradeManager { private final static Logger s_logger = Logger.getLogger(UpgradeManagerImpl.class); + private static final MultiThreadedHttpConnectionManager s_httpClientManager = new MultiThreadedHttpConnectionManager(); String _name; String _minimalVersion; @@ -92,7 +94,7 @@ public class UpgradeManagerImpl implements UpgradeManager { public String deployNewAgent(String url) { s_logger.info("Updating agent with binary from " + url); - final HttpClient client = new HttpClient(); + final HttpClient client = new HttpClient(s_httpClientManager); final GetMethod method = new GetMethod(url); int response; File file = null;