[DS-2925] Actually use timeout settings in Sherpa service

This commit is contained in:
Andrea Schweer
2015-12-01 11:15:17 +13:00
parent b083f14c6d
commit ed598a5954

View File

@@ -7,16 +7,15 @@
*/
package org.dspace.app.sherpa;
import org.apache.http.HttpStatus;
import org.apache.http.config.SocketConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.log4j.Logger;
import org.dspace.core.ConfigurationManager;
@@ -32,10 +31,12 @@ public class SHERPAService
private static final Logger log = Logger.getLogger(SHERPAService.class);
public SHERPAService() {
HttpClientBuilder custom = HttpClients.custom();
HttpClientBuilder builder = HttpClientBuilder.create();
// httpclient 4.3+ doesn't appear to have any sensible defaults any more. Setting conservative defaults as not to hammer the SHERPA service too much.
client=custom.disableAutomaticRetries().setMaxConnTotal(5).setDefaultSocketConfig(SocketConfig.custom().setSoTimeout(timeout).build()).build();
client = builder
.disableAutomaticRetries()
.setMaxConnTotal(5)
.build();
}
@@ -61,7 +62,11 @@ public class SHERPAService
uriBuilder.addParameter("ak", apiKey);
method = new HttpGet(uriBuilder.build());
method.setConfig(RequestConfig.custom()
.setConnectionRequestTimeout(timeout)
.setConnectTimeout(timeout)
.setSocketTimeout(timeout)
.build());
// Execute the method.
HttpResponse response = client.execute(method);