Skip to content

Commit 968b82d

Browse files
committed
allow passing ClientConnectionManager
1 parent cb380d6 commit 968b82d

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

cloudinary-core/src/main/java/com/cloudinary/Api.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.apache.http.client.methods.HttpPut;
1919
import org.apache.http.client.methods.HttpUriRequest;
2020
import org.apache.http.client.utils.URIBuilder;
21+
import org.apache.http.conn.ClientConnectionManager;
2122
import org.apache.http.impl.client.DefaultHttpClient;
2223
import org.json.simple.JSONValue;
2324
import org.json.simple.parser.ParseException;
@@ -234,6 +235,11 @@ public Map updateTransformation(String transformation, Map updates, Map options)
234235
public Map createTransformation(String name, String definition, Map options) throws Exception {
235236
return callApi(HttpMethod.POST, Arrays.asList("transformations", name), Cloudinary.asMap("transformation", definition), options);
236237
}
238+
239+
public Api withConnectionManager(ClientConnectionManager connectionManager) {
240+
this.connectionManager = connectionManager;
241+
return this;
242+
}
237243

238244
protected Map callApi(HttpMethod method, Iterable<String> uri, Map<String, ? extends Object> params, Map options) throws Exception {
239245
if (options == null) options = Cloudinary.emptyMap();
@@ -263,7 +269,7 @@ protected Map callApi(HttpMethod method, Iterable<String> uri, Map<String, ? ext
263269
apiUrlBuilder.addParameter(param.getKey(), Cloudinary.asString(param.getValue()));
264270
}
265271
}
266-
DefaultHttpClient client = new DefaultHttpClient();
272+
DefaultHttpClient client = new DefaultHttpClient(connectionManager);
267273
URI apiUri = apiUrlBuilder.build();
268274
HttpUriRequest request = null;
269275
switch (method) {
@@ -300,4 +306,6 @@ protected Map callApi(HttpMethod method, Iterable<String> uri, Map<String, ? ext
300306
throw exceptionConstructor.newInstance(message);
301307
}
302308
}
309+
310+
private ClientConnectionManager connectionManager = null;
303311
}

cloudinary-core/src/main/java/com/cloudinary/Cloudinary.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.commons.codec.binary.Hex;
2222
import org.apache.commons.lang.StringUtils;
2323
import org.apache.http.client.utils.URIBuilder;
24+
import org.apache.http.conn.ClientConnectionManager;
2425

2526
@SuppressWarnings({"rawtypes", "unchecked"})
2627
public class Cloudinary {
@@ -55,11 +56,11 @@ public Url url() {
5556
}
5657

5758
public Uploader uploader() {
58-
return new Uploader(this);
59+
return new Uploader(this).withConnectionManager(connectionManager);
5960
}
6061

6162
public Api api() {
62-
return new Api(this);
63+
return new Api(this).withConnectionManager(connectionManager);
6364
}
6465

6566
public String cloudinaryApiUrl(String action, Map options) {
@@ -288,4 +289,11 @@ public static String encodeMap(Object arg) {
288289
}
289290
return result;
290291
}
292+
293+
public Cloudinary withConnectionManager(ClientConnectionManager connectionManager) {
294+
this.connectionManager = connectionManager;
295+
return this;
296+
}
297+
298+
private ClientConnectionManager connectionManager = null;
291299
}

cloudinary-core/src/main/java/com/cloudinary/Uploader.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.apache.http.entity.mime.content.FileBody;
2727
import org.apache.http.entity.mime.content.StringBody;
2828
import org.apache.http.impl.client.DefaultHttpClient;
29+
import org.apache.http.conn.ClientConnectionManager;
2930
import org.json.simple.JSONObject;
3031
import org.json.simple.JSONValue;
3132
import org.json.simple.parser.ParseException;
@@ -276,7 +277,11 @@ public void signRequestParams(Map<String, Object> params, Map options) {
276277
params.put("timestamp", new Long(System.currentTimeMillis() / 1000L).toString());
277278
cloudinary.signRequest(params, options);
278279
}
279-
280+
281+
public Uploader withConnectionManager(ClientConnectionManager connectionManager) {
282+
this.connectionManager = connectionManager;
283+
return this;
284+
}
280285

281286
public Map callApi(String action, Map<String, Object> params, Map options, Object file) throws IOException {
282287
if (options == null) options = Cloudinary.emptyMap();
@@ -285,7 +290,7 @@ public Map callApi(String action, Map<String, Object> params, Map options, Objec
285290

286291
String apiUrl = cloudinary.cloudinaryApiUrl(action, options);
287292

288-
HttpClient client = new DefaultHttpClient();
293+
HttpClient client = new DefaultHttpClient(connectionManager);
289294

290295
HttpPost postMethod = new HttpPost(apiUrl);
291296
postMethod.setHeader("User-Agent", Cloudinary.USER_AGENT);
@@ -436,5 +441,7 @@ protected String buildEager(List<? extends Transformation> transformations) {
436441
}
437442
return StringUtils.join(eager, "|");
438443
}
444+
445+
private ClientConnectionManager connectionManager = null;
439446

440447
}

0 commit comments

Comments
 (0)