Skip to content

Commit b34094d

Browse files
author
Stephane Landelle
committed
Add providerClass to SimpleAsyncHttpClient.Builder, close AsyncHttpClient#349
1 parent 466acd6 commit b34094d

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/main/java/com/ning/http/client/SimpleAsyncHttpClient.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,17 @@ public class SimpleAsyncHttpClient {
6868
private final ErrorDocumentBehaviour errorDocumentBehaviour;
6969
private final SimpleAHCTransferListener listener;
7070
private final boolean derived;
71+
private String providerClass;
7172

72-
private SimpleAsyncHttpClient(AsyncHttpClientConfig config, RequestBuilder requestBuilder, ThrowableHandler defaultThrowableHandler, ErrorDocumentBehaviour errorDocumentBehaviour, boolean resumeEnabled, AsyncHttpClient ahc, SimpleAHCTransferListener listener) {
73+
private SimpleAsyncHttpClient(AsyncHttpClientConfig config, RequestBuilder requestBuilder, ThrowableHandler defaultThrowableHandler, ErrorDocumentBehaviour errorDocumentBehaviour, boolean resumeEnabled, AsyncHttpClient ahc, SimpleAHCTransferListener listener, String providerClass) {
7374
this.config = config;
7475
this.requestBuilder = requestBuilder;
7576
this.defaultThrowableHandler = defaultThrowableHandler;
7677
this.resumeEnabled = resumeEnabled;
7778
this.errorDocumentBehaviour = errorDocumentBehaviour;
7879
this.asyncHttpClient = ahc;
7980
this.listener = listener;
81+
this.providerClass = providerClass;
8082

8183
this.derived = ahc != null;
8284
}
@@ -287,7 +289,10 @@ private Future<Response> execute(RequestBuilder rb, BodyConsumer bodyConsumer, T
287289
private AsyncHttpClient asyncHttpClient() {
288290
synchronized (config) {
289291
if (asyncHttpClient == null) {
290-
asyncHttpClient = new AsyncHttpClient(config);
292+
if (providerClass == null)
293+
asyncHttpClient = new AsyncHttpClient(config);
294+
else
295+
asyncHttpClient = new AsyncHttpClient(providerClass, config);
291296
}
292297
}
293298
return asyncHttpClient;
@@ -400,6 +405,7 @@ public final static class Builder implements DerivedBuilder {
400405
private ErrorDocumentBehaviour errorDocumentBehaviour = ErrorDocumentBehaviour.WRITE;
401406
private AsyncHttpClient ahc = null;
402407
private SimpleAHCTransferListener listener = null;
408+
private String providerClass = null;
403409

404410
public Builder() {
405411
requestBuilder = new RequestBuilder("GET", false);
@@ -659,6 +665,11 @@ public Builder setMaxRequestRetry(int maxRequestRetry) {
659665
return this;
660666
}
661667

668+
public Builder setProviderClass(String providerClass) {
669+
this.providerClass = providerClass;
670+
return this;
671+
}
672+
662673
public SimpleAsyncHttpClient build() {
663674

664675
if (realmBuilder != null) {
@@ -671,7 +682,7 @@ public SimpleAsyncHttpClient build() {
671682

672683
configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter());
673684

674-
SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener);
685+
SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener, providerClass);
675686

676687
return sc;
677688
}

0 commit comments

Comments
 (0)