Package io.grpc.internal
Class ServiceConfigUtil
- java.lang.Object
-
- io.grpc.internal.ServiceConfigUtil
-
public final class ServiceConfigUtil extends java.lang.Object
Helper utility to work with service configs.This class contains helper methods to parse service config JSON values into Java types.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ServiceConfigUtil.LbConfig
A LoadBalancingConfig that includes the policy name (the key) and its raw config value (parsed JSON).static class
ServiceConfigUtil.PolicySelection
-
Constructor Summary
Constructors Modifier Constructor Description private
ServiceConfigUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static java.lang.Double
getBackoffMultiplierFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
static java.util.Map<java.lang.String,?>
getHealthCheckedService(java.util.Map<java.lang.String,?> serviceConfig)
Fetches the health-checked service config from service config.static java.lang.String
getHealthCheckedServiceName(java.util.Map<java.lang.String,?> healthCheckedServiceConfig)
Fetches the health-checked service name from health-checked service config.(package private) static java.lang.Long
getHedgingDelayNanosFromHedgingPolicy(java.util.Map<java.lang.String,?> hedgingPolicy)
(package private) static java.util.Map<java.lang.String,?>
getHedgingPolicyFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
(package private) static java.lang.Long
getInitialBackoffNanosFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
private static java.util.Set<Status.Code>
getListOfStatusCodesAsSet(java.util.Map<java.lang.String,?> obj, java.lang.String key)
static java.util.List<java.util.Map<java.lang.String,?>>
getLoadBalancingConfigsFromServiceConfig(java.util.Map<java.lang.String,?> serviceConfig)
Extracts load balancing configs from a service config.(package private) static java.lang.Integer
getMaxAttemptsFromHedgingPolicy(java.util.Map<java.lang.String,?> hedgingPolicy)
(package private) static java.lang.Integer
getMaxAttemptsFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
(package private) static java.lang.Long
getMaxBackoffNanosFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
(package private) static java.lang.Integer
getMaxRequestMessageBytesFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
(package private) static java.lang.Integer
getMaxResponseMessageBytesFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
(package private) static java.util.List<java.util.Map<java.lang.String,?>>
getMethodConfigFromServiceConfig(java.util.Map<java.lang.String,?> serviceConfig)
(package private) static java.lang.String
getMethodFromName(java.util.Map<java.lang.String,?> name)
(package private) static java.util.List<java.util.Map<java.lang.String,?>>
getNameListFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
(package private) static java.util.Set<Status.Code>
getNonFatalStatusCodesFromHedgingPolicy(java.util.Map<java.lang.String,?> hedgingPolicy)
(package private) static java.lang.Long
getPerAttemptRecvTimeoutNanosFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
(package private) static java.util.Set<Status.Code>
getRetryableStatusCodesFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
(package private) static java.util.Map<java.lang.String,?>
getRetryPolicyFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
(package private) static java.lang.String
getServiceFromName(java.util.Map<java.lang.String,?> name)
private static java.util.Set<Status.Code>
getStatusCodesFromList(java.util.List<?> statuses)
(package private) static RetriableStream.Throttle
getThrottlePolicy(java.util.Map<java.lang.String,?> serviceConfig)
(package private) static java.lang.Long
getTimeoutFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
Returns the number of nanoseconds of timeout for the given method config.(package private) static java.lang.Boolean
getWaitForReadyFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
static NameResolver.ConfigOrError
selectLbPolicyFromList(java.util.List<ServiceConfigUtil.LbConfig> lbConfigs, LoadBalancerRegistry lbRegistry)
Parses and selects a load balancing policy from a non-empty list of raw configs.static ServiceConfigUtil.LbConfig
unwrapLoadBalancingConfig(java.util.Map<java.lang.String,?> lbConfig)
Unwrap a LoadBalancingConfig JSON object into aServiceConfigUtil.LbConfig
.static java.util.List<ServiceConfigUtil.LbConfig>
unwrapLoadBalancingConfigList(java.util.List<java.util.Map<java.lang.String,?>> list)
Given a JSON list of LoadBalancingConfigs, and convert it into a list of LbConfig.
-
-
-
Method Detail
-
getHealthCheckedService
@Nullable public static java.util.Map<java.lang.String,?> getHealthCheckedService(@Nullable java.util.Map<java.lang.String,?> serviceConfig)
Fetches the health-checked service config from service config.null
if can't find one.
-
getHealthCheckedServiceName
@Nullable public static java.lang.String getHealthCheckedServiceName(@Nullable java.util.Map<java.lang.String,?> healthCheckedServiceConfig)
Fetches the health-checked service name from health-checked service config.null
if can't find one.
-
getThrottlePolicy
@Nullable static RetriableStream.Throttle getThrottlePolicy(@Nullable java.util.Map<java.lang.String,?> serviceConfig)
-
getMaxAttemptsFromRetryPolicy
@Nullable static java.lang.Integer getMaxAttemptsFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
-
getInitialBackoffNanosFromRetryPolicy
@Nullable static java.lang.Long getInitialBackoffNanosFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
-
getMaxBackoffNanosFromRetryPolicy
@Nullable static java.lang.Long getMaxBackoffNanosFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
-
getBackoffMultiplierFromRetryPolicy
@Nullable static java.lang.Double getBackoffMultiplierFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
-
getPerAttemptRecvTimeoutNanosFromRetryPolicy
@Nullable static java.lang.Long getPerAttemptRecvTimeoutNanosFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
-
getListOfStatusCodesAsSet
private static java.util.Set<Status.Code> getListOfStatusCodesAsSet(java.util.Map<java.lang.String,?> obj, java.lang.String key)
-
getStatusCodesFromList
private static java.util.Set<Status.Code> getStatusCodesFromList(java.util.List<?> statuses)
-
getRetryableStatusCodesFromRetryPolicy
static java.util.Set<Status.Code> getRetryableStatusCodesFromRetryPolicy(java.util.Map<java.lang.String,?> retryPolicy)
-
getMaxAttemptsFromHedgingPolicy
@Nullable static java.lang.Integer getMaxAttemptsFromHedgingPolicy(java.util.Map<java.lang.String,?> hedgingPolicy)
-
getHedgingDelayNanosFromHedgingPolicy
@Nullable static java.lang.Long getHedgingDelayNanosFromHedgingPolicy(java.util.Map<java.lang.String,?> hedgingPolicy)
-
getNonFatalStatusCodesFromHedgingPolicy
static java.util.Set<Status.Code> getNonFatalStatusCodesFromHedgingPolicy(java.util.Map<java.lang.String,?> hedgingPolicy)
-
getServiceFromName
@Nullable static java.lang.String getServiceFromName(java.util.Map<java.lang.String,?> name)
-
getMethodFromName
@Nullable static java.lang.String getMethodFromName(java.util.Map<java.lang.String,?> name)
-
getRetryPolicyFromMethodConfig
@Nullable static java.util.Map<java.lang.String,?> getRetryPolicyFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
-
getHedgingPolicyFromMethodConfig
@Nullable static java.util.Map<java.lang.String,?> getHedgingPolicyFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
-
getNameListFromMethodConfig
@Nullable static java.util.List<java.util.Map<java.lang.String,?>> getNameListFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
-
getTimeoutFromMethodConfig
@Nullable static java.lang.Long getTimeoutFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
Returns the number of nanoseconds of timeout for the given method config.- Returns:
- duration nanoseconds, or
null
if it isn't present.
-
getWaitForReadyFromMethodConfig
@Nullable static java.lang.Boolean getWaitForReadyFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
-
getMaxRequestMessageBytesFromMethodConfig
@Nullable static java.lang.Integer getMaxRequestMessageBytesFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
-
getMaxResponseMessageBytesFromMethodConfig
@Nullable static java.lang.Integer getMaxResponseMessageBytesFromMethodConfig(java.util.Map<java.lang.String,?> methodConfig)
-
getMethodConfigFromServiceConfig
@Nullable static java.util.List<java.util.Map<java.lang.String,?>> getMethodConfigFromServiceConfig(java.util.Map<java.lang.String,?> serviceConfig)
-
getLoadBalancingConfigsFromServiceConfig
public static java.util.List<java.util.Map<java.lang.String,?>> getLoadBalancingConfigsFromServiceConfig(java.util.Map<java.lang.String,?> serviceConfig)
Extracts load balancing configs from a service config.
-
unwrapLoadBalancingConfig
public static ServiceConfigUtil.LbConfig unwrapLoadBalancingConfig(java.util.Map<java.lang.String,?> lbConfig)
Unwrap a LoadBalancingConfig JSON object into aServiceConfigUtil.LbConfig
. The input is a JSON object (map) with exactly one entry, where the key is the policy name and the value is a config object for that policy.
-
unwrapLoadBalancingConfigList
public static java.util.List<ServiceConfigUtil.LbConfig> unwrapLoadBalancingConfigList(java.util.List<java.util.Map<java.lang.String,?>> list)
Given a JSON list of LoadBalancingConfigs, and convert it into a list of LbConfig.
-
selectLbPolicyFromList
public static NameResolver.ConfigOrError selectLbPolicyFromList(java.util.List<ServiceConfigUtil.LbConfig> lbConfigs, LoadBalancerRegistry lbRegistry)
Parses and selects a load balancing policy from a non-empty list of raw configs. If selection is successful, the returned ConfigOrError object will include aServiceConfigUtil.PolicySelection
as its config value.
-
-