@@ -68,15 +68,17 @@ public class SimpleAsyncHttpClient {
68
68
private final ErrorDocumentBehaviour errorDocumentBehaviour ;
69
69
private final SimpleAHCTransferListener listener ;
70
70
private final boolean derived ;
71
+ private String providerClass ;
71
72
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 ) {
73
74
this .config = config ;
74
75
this .requestBuilder = requestBuilder ;
75
76
this .defaultThrowableHandler = defaultThrowableHandler ;
76
77
this .resumeEnabled = resumeEnabled ;
77
78
this .errorDocumentBehaviour = errorDocumentBehaviour ;
78
79
this .asyncHttpClient = ahc ;
79
80
this .listener = listener ;
81
+ this .providerClass = providerClass ;
80
82
81
83
this .derived = ahc != null ;
82
84
}
@@ -287,7 +289,10 @@ private Future<Response> execute(RequestBuilder rb, BodyConsumer bodyConsumer, T
287
289
private AsyncHttpClient asyncHttpClient () {
288
290
synchronized (config ) {
289
291
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 );
291
296
}
292
297
}
293
298
return asyncHttpClient ;
@@ -400,6 +405,7 @@ public final static class Builder implements DerivedBuilder {
400
405
private ErrorDocumentBehaviour errorDocumentBehaviour = ErrorDocumentBehaviour .WRITE ;
401
406
private AsyncHttpClient ahc = null ;
402
407
private SimpleAHCTransferListener listener = null ;
408
+ private String providerClass = null ;
403
409
404
410
public Builder () {
405
411
requestBuilder = new RequestBuilder ("GET" , false );
@@ -659,6 +665,11 @@ public Builder setMaxRequestRetry(int maxRequestRetry) {
659
665
return this ;
660
666
}
661
667
668
+ public Builder setProviderClass (String providerClass ) {
669
+ this .providerClass = providerClass ;
670
+ return this ;
671
+ }
672
+
662
673
public SimpleAsyncHttpClient build () {
663
674
664
675
if (realmBuilder != null ) {
@@ -671,7 +682,7 @@ public SimpleAsyncHttpClient build() {
671
682
672
683
configBuilder .addIOExceptionFilter (new ResumableIOExceptionFilter ());
673
684
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 );
675
686
676
687
return sc ;
677
688
}
0 commit comments