Skip to content

Commit

Permalink
Make ApiClient in retrofit2 be able to use own OkHttpClient (#6699)
Browse files Browse the repository at this point in the history
* set adapterBuilder.client() only if okBuilder was used in retrofit2

* updated the samples

* added field okHttpClient and updated samples

* bug fixed, added exception if okBuilder is null

* added semicolon

* added space, changed Exception to RuntimeException and changed its message

* updated the samples
  • Loading branch information
tgerth authored Jul 2, 2020
1 parent c6cb7eb commit 38ab738
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,18 @@ public class ApiClient {
private OkHttpClient.Builder okBuilder;
private Retrofit.Builder adapterBuilder;
private JSON json;
private OkHttpClient okHttpClient;
public ApiClient() {
apiAuthorizations = new LinkedHashMap<String, Interceptor>();
createDefaultAdapter();
okBuilder = new OkHttpClient.Builder();
}

public ApiClient(OkHttpClient client){
apiAuthorizations = new LinkedHashMap<String, Interceptor>();
createDefaultAdapter();
okHttpClient = client;
}

public ApiClient(String[] authNames) {
Expand Down Expand Up @@ -141,7 +149,6 @@ public class ApiClient {
{{/hasOAuthMethods}}
public void createDefaultAdapter() {
json = new JSON();
okBuilder = new OkHttpClient.Builder();
String baseUrl = "{{{basePath}}}";
if (!baseUrl.endsWith("/"))
Expand All @@ -164,10 +171,11 @@ public class ApiClient {
}

public <S> S createService(Class<S> serviceClass) {
return adapterBuilder
.client(okBuilder.build())
.build()
.create(serviceClass);
if (okHttpClient != null) {
return adapterBuilder.client(okHttpClient).build().create(serviceClass);
} else {
return adapterBuilder.client(okBuilder.build()).build().create(serviceClass);
}
}

public ApiClient setDateFormat(DateFormat dateFormat) {
Expand Down Expand Up @@ -357,7 +365,11 @@ public class ApiClient {
throw new RuntimeException("auth name \"" + authName + "\" already in api authorizations");
}
apiAuthorizations.put(authName, authorization);
if(okBuilder == null){
throw new RuntimeException("The ApiClient was created with a built OkHttpClient so it's not possible to add an authorization interceptor to it");
}
okBuilder.addInterceptor(authorization);

return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,18 @@ public class ApiClient {
private OkHttpClient.Builder okBuilder;
private Retrofit.Builder adapterBuilder;
private JSON json;
private OkHttpClient okHttpClient;

public ApiClient() {
apiAuthorizations = new LinkedHashMap<String, Interceptor>();
createDefaultAdapter();
okBuilder = new OkHttpClient.Builder();
}

public ApiClient(OkHttpClient client){
apiAuthorizations = new LinkedHashMap<String, Interceptor>();
createDefaultAdapter();
okHttpClient = client;
}

public ApiClient(String[] authNames) {
Expand Down Expand Up @@ -114,7 +122,6 @@ public ApiClient(String authName, String clientId, String secret, String usernam

public void createDefaultAdapter() {
json = new JSON();
okBuilder = new OkHttpClient.Builder();

String baseUrl = "http://petstore.swagger.io:80/v2";
if (!baseUrl.endsWith("/"))
Expand All @@ -128,10 +135,11 @@ public void createDefaultAdapter() {
}

public <S> S createService(Class<S> serviceClass) {
return adapterBuilder
.client(okBuilder.build())
.build()
.create(serviceClass);
if (okHttpClient != null) {
return adapterBuilder.client(okHttpClient).build().create(serviceClass);
} else {
return adapterBuilder.client(okBuilder.build()).build().create(serviceClass);
}
}

public ApiClient setDateFormat(DateFormat dateFormat) {
Expand Down Expand Up @@ -303,7 +311,11 @@ public ApiClient addAuthorization(String authName, Interceptor authorization) {
throw new RuntimeException("auth name \"" + authName + "\" already in api authorizations");
}
apiAuthorizations.put(authName, authorization);
if(okBuilder == null){
throw new RuntimeException("The ApiClient was created with a built OkHttpClient so it's not possible to add an authorization interceptor to it");
}
okBuilder.addInterceptor(authorization);

return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,18 @@ public class ApiClient {
private OkHttpClient.Builder okBuilder;
private Retrofit.Builder adapterBuilder;
private JSON json;
private OkHttpClient okHttpClient;

public ApiClient() {
apiAuthorizations = new LinkedHashMap<String, Interceptor>();
createDefaultAdapter();
okBuilder = new OkHttpClient.Builder();
}

public ApiClient(OkHttpClient client){
apiAuthorizations = new LinkedHashMap<String, Interceptor>();
createDefaultAdapter();
okHttpClient = client;
}

public ApiClient(String[] authNames) {
Expand Down Expand Up @@ -115,7 +123,6 @@ public ApiClient(String authName, String clientId, String secret, String usernam

public void createDefaultAdapter() {
json = new JSON();
okBuilder = new OkHttpClient.Builder();

String baseUrl = "http://petstore.swagger.io:80/v2";
if (!baseUrl.endsWith("/"))
Expand All @@ -130,10 +137,11 @@ public void createDefaultAdapter() {
}

public <S> S createService(Class<S> serviceClass) {
return adapterBuilder
.client(okBuilder.build())
.build()
.create(serviceClass);
if (okHttpClient != null) {
return adapterBuilder.client(okHttpClient).build().create(serviceClass);
} else {
return adapterBuilder.client(okBuilder.build()).build().create(serviceClass);
}
}

public ApiClient setDateFormat(DateFormat dateFormat) {
Expand Down Expand Up @@ -305,7 +313,11 @@ public ApiClient addAuthorization(String authName, Interceptor authorization) {
throw new RuntimeException("auth name \"" + authName + "\" already in api authorizations");
}
apiAuthorizations.put(authName, authorization);
if(okBuilder == null){
throw new RuntimeException("The ApiClient was created with a built OkHttpClient so it's not possible to add an authorization interceptor to it");
}
okBuilder.addInterceptor(authorization);

return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,18 @@ public class ApiClient {
private OkHttpClient.Builder okBuilder;
private Retrofit.Builder adapterBuilder;
private JSON json;
private OkHttpClient okHttpClient;

public ApiClient() {
apiAuthorizations = new LinkedHashMap<String, Interceptor>();
createDefaultAdapter();
okBuilder = new OkHttpClient.Builder();
}

public ApiClient(OkHttpClient client){
apiAuthorizations = new LinkedHashMap<String, Interceptor>();
createDefaultAdapter();
okHttpClient = client;
}

public ApiClient(String[] authNames) {
Expand Down Expand Up @@ -115,7 +123,6 @@ public ApiClient(String authName, String clientId, String secret, String usernam

public void createDefaultAdapter() {
json = new JSON();
okBuilder = new OkHttpClient.Builder();

String baseUrl = "http://petstore.swagger.io:80/v2";
if (!baseUrl.endsWith("/"))
Expand All @@ -130,10 +137,11 @@ public void createDefaultAdapter() {
}

public <S> S createService(Class<S> serviceClass) {
return adapterBuilder
.client(okBuilder.build())
.build()
.create(serviceClass);
if (okHttpClient != null) {
return adapterBuilder.client(okHttpClient).build().create(serviceClass);
} else {
return adapterBuilder.client(okBuilder.build()).build().create(serviceClass);
}
}

public ApiClient setDateFormat(DateFormat dateFormat) {
Expand Down Expand Up @@ -305,7 +313,11 @@ public ApiClient addAuthorization(String authName, Interceptor authorization) {
throw new RuntimeException("auth name \"" + authName + "\" already in api authorizations");
}
apiAuthorizations.put(authName, authorization);
if(okBuilder == null){
throw new RuntimeException("The ApiClient was created with a built OkHttpClient so it's not possible to add an authorization interceptor to it");
}
okBuilder.addInterceptor(authorization);

return this;
}

Expand Down

0 comments on commit 38ab738

Please sign in to comment.