4646import com .microsoft .graph .core .ClientException ;
4747import com .microsoft .graph .core .Constants ;
4848import com .microsoft .graph .core .DefaultConnectionConfig ;
49+ import com .microsoft .graph .core .IClientConfig ;
4950import com .microsoft .graph .core .IConnectionConfig ;
5051import com .microsoft .graph .httpcore .HttpClients ;
5152import com .microsoft .graph .httpcore .ICoreAuthenticationProvider ;
@@ -119,6 +120,18 @@ public CoreHttpProvider(final ISerializer serializer,
119120 this .logger = logger ;
120121 }
121122
123+ /**
124+ * Creates the DefaultHttpProvider
125+ *
126+ * @param clientConfig the client configuration to use for the provider
127+ * @param httpClient the http client to execute the requests with
128+ */
129+ public CoreHttpProvider (final IClientConfig clientConfig ,
130+ final OkHttpClient httpClient ) {
131+ this (clientConfig .getSerializer (), clientConfig .getAuthenticationProvider (), clientConfig .getExecutors (), clientConfig .getLogger ());
132+ this .corehttpClient = httpClient ;
133+ }
134+
122135 /**
123136 * Gets the serializer for this HTTP provider
124137 *
@@ -144,9 +157,9 @@ public <Result, Body> void send(final IHttpRequest request,
144157 final ICallback <? super Result > callback ,
145158 final Class <Result > resultClass ,
146159 final Body serializable ) {
147- final IProgressCallback <Result > progressCallback ;
160+ final IProgressCallback <? super Result > progressCallback ;
148161 if (callback instanceof IProgressCallback ) {
149- progressCallback = (IProgressCallback <Result >) callback ;
162+ progressCallback = (IProgressCallback <? super Result >) callback ;
150163 } else {
151164 progressCallback = null ;
152165 }
@@ -221,7 +234,7 @@ public <Result, Body, DeserializeType> Result send(final IHttpRequest request,
221234 public <Result , Body > Request getHttpRequest (final IHttpRequest request ,
222235 final Class <Result > resultClass ,
223236 final Body serializable ,
224- final IProgressCallback <Result > progress ) throws ClientException {
237+ final IProgressCallback <? super Result > progress ) throws ClientException {
225238 final int defaultBufferSize = 4096 ;
226239
227240 final URL requestUrl = request .getRequestUrl ();
@@ -354,7 +367,7 @@ public MediaType contentType() {
354367 private <Result , Body , DeserializeType > Result sendRequestInternal (final IHttpRequest request ,
355368 final Class <Result > resultClass ,
356369 final Body serializable ,
357- final IProgressCallback <Result > progress ,
370+ final IProgressCallback <? super Result > progress ,
358371 final IStatefulResponseHandler <Result , DeserializeType > handler )
359372 throws ClientException {
360373
@@ -374,11 +387,11 @@ public Request authenticateRequest(Request request) {
374387 .newBuilder ()
375388 .connectTimeout (connectionConfig .getConnectTimeout (), TimeUnit .MILLISECONDS )
376389 .readTimeout (connectionConfig .getReadTimeout (), TimeUnit .MILLISECONDS )
377- .followRedirects (false )
390+ .followRedirects (false ) //TODO those are duplicated for the time being with core, remove in 3.0
378391 .protocols (Arrays .asList (Protocol .HTTP_1_1 )) //https://stackoverflow.com/questions/62031298/sockettimeout-on-java-11-but-not-on-java-8
379392 .build ();
380393 }
381- if (authenticationProvider != null ) {
394+ if (authenticationProvider != null ) { //TODO remove the authentication provider as this is done by the interceptor anyway
382395 authenticationProvider .authenticateRequest (request );
383396 }
384397 Request coreHttpRequest = getHttpRequest (request , resultClass , serializable , progress );
0 commit comments