Class 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.

    • Constructor Detail

      • ServiceConfigUtil

        private ServiceConfigUtil()
    • 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 a ServiceConfigUtil.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.