public static ImmutableMap<String, RetryParamsDefinitionProto> createRetrySettingsDefinition(
InterfaceConfigProto interfaceConfigProto) {
ImmutableMap.Builder<String, RetryParamsDefinitionProto> builder = ImmutableMap.builder();
if (interfaceConfigProto.getRetryParamsDefCount() > 0) {
for (RetryParamsDefinitionProto retryDef : interfaceConfigProto.getRetryParamsDefList()) {
builder.put(retryDef.getName(), retryDef);
}
} else {
RetryParamsDefinitionProto defaultRetryParams =
RetryParamsDefinitionProto.getDefaultInstance()
.toBuilder()
.setInitialRetryDelayMillis(DEFAULT_INITIAL_RETRY_DELAY)
.setRetryDelayMultiplier(DEFAULT_RETRY_DELAY_MULTIPLIER)
.setMaxRetryDelayMillis(DEFAULT_MAX_RETRY_DELAY)
.setInitialRpcTimeoutMillis(DEFAULT_MAX_RPC_TIMEOUT_MILLIS)
.setRpcTimeoutMultiplier(DEFAULT_RPC_TIMEOUT_MULTIPLIER)
.setMaxRpcTimeoutMillis(DEFAULT_MAX_RPC_TIMEOUT_MILLIS)
.setTotalTimeoutMillis(DEFAULT_TOTAL_TIMEOUT_MILLIS)
.build();
builder.put(RETRY_PARAMS_DEFAULT_NAME, defaultRetryParams);
}
return builder.build();
}