Skip to content

Commit a398984

Browse files
committed
http client dependency cleanup and fine tuning connection performance
1 parent 21a6bba commit a398984

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## 1.10.21
4+
5+
* updated default HTTP client connection settings
6+
* adjusted HTTP client library package used
7+
38
## 1.10.2
49

510
* updated HTTP client data requests issue with unicode characters

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</developers>
2424

2525
<properties>
26-
<postmark.version>1.10.2</postmark.version>
26+
<postmark.version>1.10.21</postmark.version>
2727
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2828
<java.version>1.8</java.version>
2929
<jackson.minimum.version>2.9.7</jackson.minimum.version>
@@ -50,7 +50,7 @@
5050

5151
<dependency>
5252
<groupId>org.apache.httpcomponents.client5</groupId>
53-
<artifactId>httpclient5-fluent</artifactId>
53+
<artifactId>httpclient5</artifactId>
5454
<version>5.2.1</version>
5555
</dependency>
5656

src/main/java/com/postmarkapp/postmark/client/HttpClient.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.apache.hc.client5.http.config.RequestConfig;
44
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
55
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
6+
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
67
import org.apache.hc.core5.http.ClassicHttpRequest;
78
import org.apache.hc.core5.http.ContentType;
89
import org.apache.hc.core5.http.io.entity.EntityUtils;
@@ -35,6 +36,8 @@ public enum DEFAULTS {
3536
// client configuration options like timeouts, forwarding ..
3637
private RequestConfig.Builder clientConfigBuilder;
3738

39+
private final PoolingHttpClientConnectionManager connectionManager;
40+
3841
private boolean secureConnection = true;
3942

4043
public HttpClient(Map<String,Object> headers, int connectTimeoutSeconds, int readTimeoutSeconds) {
@@ -44,6 +47,10 @@ public HttpClient(Map<String,Object> headers, int connectTimeoutSeconds, int rea
4447
.setConnectTimeout(Timeout.ofSeconds(connectTimeoutSeconds))
4548
.setResponseTimeout(Timeout.ofSeconds(readTimeoutSeconds));
4649

50+
this.connectionManager = new PoolingHttpClientConnectionManager();
51+
connectionManager.setMaxTotal(100);
52+
connectionManager.setDefaultMaxPerRoute(25);
53+
4754
this.client = buildClient();
4855
}
4956

@@ -144,7 +151,11 @@ public CloseableHttpClient getClient() {
144151
* @return initialized HTTP client
145152
*/
146153
private CloseableHttpClient buildClient() {
147-
return HttpClientBuilder.create().setDefaultRequestConfig(clientConfigBuilder.build()).build();
154+
return HttpClientBuilder
155+
.create()
156+
.setDefaultRequestConfig(clientConfigBuilder.build())
157+
.setConnectionManager(connectionManager)
158+
.build();
148159
}
149160

150161
/**

0 commit comments

Comments
 (0)