in genie-client/src/main/java/com/netflix/genie/client/GenieClientUtils.java [69:109]
static Retrofit createRetrofitInstance(
@NotBlank final String url,
@Nullable final List<Interceptor> interceptors,
@Nullable final GenieNetworkConfiguration genieNetworkConfiguration
) throws GenieClientException {
if (StringUtils.isBlank(url)) {
throw new GenieClientException("Service URL cannot be empty or null");
}
final OkHttpClient.Builder builder = new OkHttpClient.Builder();
if (genieNetworkConfiguration != null) {
if (genieNetworkConfiguration.getConnectTimeout() != GenieNetworkConfiguration.DEFAULT_TIMEOUT) {
builder.connectTimeout(genieNetworkConfiguration.getConnectTimeout(), TimeUnit.MILLISECONDS);
}
if (genieNetworkConfiguration.getReadTimeout() != GenieNetworkConfiguration.DEFAULT_TIMEOUT) {
builder.readTimeout(genieNetworkConfiguration.getReadTimeout(), TimeUnit.MILLISECONDS);
}
if (genieNetworkConfiguration.getWriteTimeout() != GenieNetworkConfiguration.DEFAULT_TIMEOUT) {
builder.writeTimeout(genieNetworkConfiguration.getWriteTimeout(), TimeUnit.MILLISECONDS);
}
builder.retryOnConnectionFailure(genieNetworkConfiguration.isRetryOnConnectionFailure());
}
// Add the interceptor to map the retrofit response code to corresponding Genie Exceptions in case of
// 4xx and 5xx errors.
builder.addInterceptor(new ResponseMappingInterceptor());
if (interceptors != null) {
interceptors.forEach(builder::addInterceptor);
}
return new Retrofit
.Builder()
.baseUrl(url)
.addConverterFactory(JacksonConverterFactory.create(GenieObjectMapper.getMapper()))
.client(builder.build())
.build();
}