From 5ef8377efaaea503bf524470877e0e7a9903f798 Mon Sep 17 00:00:00 2001 From: Carl Mastrangelo Date: Thu, 28 Mar 2019 09:40:50 -0700 Subject: [PATCH] core: remove Type from ConfigOrError --- .../java/io/grpc/LoadBalancerProvider.java | 3 +-- core/src/main/java/io/grpc/NameResolver.java | 21 +++++++++---------- .../AutoConfiguredLoadBalancerFactory.java | 2 +- .../io/grpc/internal/DnsNameResolver.java | 10 +++++---- .../io/grpc/internal/ManagedChannelImpl.java | 5 ++--- .../PickFirstLoadBalancerProvider.java | 2 +- .../SecretRoundRobinLoadBalancerProvider.java | 2 +- .../io/grpc/internal/DnsNameResolverTest.java | 8 +++---- .../grpc/internal/ManagedChannelImplTest.java | 15 ++++++------- .../grpclb/GrpclbLoadBalancerProvider.java | 4 ++-- ...heckingRoundRobinLoadBalancerProvider.java | 2 +- .../java/io/grpc/xds/XdsLoadBalancer.java | 4 ++-- .../io/grpc/xds/XdsLoadBalancerProvider.java | 4 ++-- 13 files changed, 41 insertions(+), 41 deletions(-) diff --git a/core/src/main/java/io/grpc/LoadBalancerProvider.java b/core/src/main/java/io/grpc/LoadBalancerProvider.java index 15b11ccf67..0c279e8952 100644 --- a/core/src/main/java/io/grpc/LoadBalancerProvider.java +++ b/core/src/main/java/io/grpc/LoadBalancerProvider.java @@ -63,8 +63,7 @@ public abstract class LoadBalancerProvider extends LoadBalancer.Factory { * @since 1.20.0 * @see https://github.com/grpc/proposal/blob/master/A24-lb-policy-config.md */ - public ConfigOrError parseLoadBalancingPolicyConfig( - Map rawLoadBalancingPolicyConfig) { + public ConfigOrError parseLoadBalancingPolicyConfig(Map rawLoadBalancingPolicyConfig) { return ConfigOrError.UNKNOWN_CONFIG; } diff --git a/core/src/main/java/io/grpc/NameResolver.java b/core/src/main/java/io/grpc/NameResolver.java index 9660147d8d..c4d3993286 100644 --- a/core/src/main/java/io/grpc/NameResolver.java +++ b/core/src/main/java/io/grpc/NameResolver.java @@ -316,7 +316,7 @@ public abstract class NameResolver { * @return a tuple of the fully parsed and validated channel configuration, else the Status. * @since 1.20.0 */ - public ConfigOrError parseServiceConfig(Map rawServiceConfig) { + public ConfigOrError parseServiceConfig(Map rawServiceConfig) { throw new UnsupportedOperationException("should have been implemented"); } @@ -324,10 +324,9 @@ public abstract class NameResolver { * Represents either a successfully parsed service config, containing all necessary parts to be * later applied by the channel, or a Status containing the error encountered while parsing. * - * @param The message type of the config. * @since 1.20.0 */ - public static final class ConfigOrError { + public static final class ConfigOrError { private static final class UnknownConfig { @@ -344,14 +343,14 @@ public abstract class NameResolver { * indicate that parsing of the service config is neither right nor wrong, but doesn't have * any meaning. */ - public static final ConfigOrError UNKNOWN_CONFIG = + public static final ConfigOrError UNKNOWN_CONFIG = ConfigOrError.fromConfig(new UnknownConfig()); /** * Returns a {@link ConfigOrError} for the successfully parsed config. */ - public static ConfigOrError fromConfig(T config) { - return new ConfigOrError<>(config); + public static ConfigOrError fromConfig(Object config) { + return new ConfigOrError(config); } /** @@ -359,14 +358,14 @@ public abstract class NameResolver { * * @param status a non-OK status */ - public static ConfigOrError fromError(Status status) { - return new ConfigOrError<>(status); + public static ConfigOrError fromError(Status status) { + return new ConfigOrError(status); } private final Status status; - private final T config; + private final Object config; - private ConfigOrError(T config) { + private ConfigOrError(Object config) { this.config = checkNotNull(config, "config"); this.status = null; } @@ -381,7 +380,7 @@ public abstract class NameResolver { * Returns config if exists, otherwise null. */ @Nullable - public T getConfig() { + public Object getConfig() { return config; } diff --git a/core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java b/core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java index 4dd4a15918..dc6e365895 100644 --- a/core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java +++ b/core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java @@ -301,7 +301,7 @@ public final class AutoConfiguredLoadBalancerFactory extends LoadBalancer.Factor * @return null if no selection could be made. */ @Nullable - ConfigOrError selectLoadBalancerPolicy(Map serviceConfig) { + ConfigOrError selectLoadBalancerPolicy(Map serviceConfig) { try { List loadBalancerConfigs = null; if (serviceConfig != null) { diff --git a/core/src/main/java/io/grpc/internal/DnsNameResolver.java b/core/src/main/java/io/grpc/internal/DnsNameResolver.java index 956786dce1..79d577791e 100644 --- a/core/src/main/java/io/grpc/internal/DnsNameResolver.java +++ b/core/src/main/java/io/grpc/internal/DnsNameResolver.java @@ -292,14 +292,16 @@ final class DnsNameResolver extends NameResolver { Attributes.Builder attrs = Attributes.newBuilder(); if (!resolutionResults.txtRecords.isEmpty()) { - ConfigOrError> serviceConfig = + ConfigOrError serviceConfig = parseServiceConfig(resolutionResults.txtRecords, random, getLocalHostname()); if (serviceConfig != null) { if (serviceConfig.getError() != null) { savedObserver.onError(serviceConfig.getError()); return; } else { - attrs.set(GrpcAttributes.NAME_RESOLVER_SERVICE_CONFIG, serviceConfig.getConfig()); + @SuppressWarnings("unchecked") + Map config = (Map) serviceConfig.getConfig(); + attrs.set(GrpcAttributes.NAME_RESOLVER_SERVICE_CONFIG, config); } } } else { @@ -312,7 +314,7 @@ final class DnsNameResolver extends NameResolver { } @Nullable - static ConfigOrError> parseServiceConfig( + static ConfigOrError parseServiceConfig( List rawTxtRecords, Random random, String localHostname) { List> possibleServiceConfigChoices; try { @@ -337,7 +339,7 @@ final class DnsNameResolver extends NameResolver { if (possibleServiceConfig == null) { return null; } - return ConfigOrError.>fromConfig(possibleServiceConfig); + return ConfigOrError.fromConfig(possibleServiceConfig); } private void resolve() { diff --git a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java index b10eb8936e..b271ed4985 100644 --- a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java +++ b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java @@ -1772,12 +1772,11 @@ final class ManagedChannelImpl extends ManagedChannel implements @Override @SuppressWarnings("unchecked") - public ConfigOrError parseServiceConfig( - Map rawServiceConfig) { + public ConfigOrError parseServiceConfig(Map rawServiceConfig) { try { Object loadBalancingPolicySelection; if (autoLoadBalancerFactory != null) { - ConfigOrError choiceFromLoadBalancer = + ConfigOrError choiceFromLoadBalancer = autoLoadBalancerFactory.selectLoadBalancerPolicy(rawServiceConfig); if (choiceFromLoadBalancer == null) { loadBalancingPolicySelection = null; diff --git a/core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java b/core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java index 7796681b32..4a4fd61de9 100644 --- a/core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java +++ b/core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java @@ -51,7 +51,7 @@ public final class PickFirstLoadBalancerProvider extends LoadBalancerProvider { } @Override - public ConfigOrError parseLoadBalancingPolicyConfig( + public ConfigOrError parseLoadBalancingPolicyConfig( Map rawLoadBalancingPolicyConfig) { return ConfigOrError.fromConfig(NO_CONFIG); } diff --git a/core/src/main/java/io/grpc/util/SecretRoundRobinLoadBalancerProvider.java b/core/src/main/java/io/grpc/util/SecretRoundRobinLoadBalancerProvider.java index 068478b69c..08297347cd 100644 --- a/core/src/main/java/io/grpc/util/SecretRoundRobinLoadBalancerProvider.java +++ b/core/src/main/java/io/grpc/util/SecretRoundRobinLoadBalancerProvider.java @@ -56,7 +56,7 @@ final class SecretRoundRobinLoadBalancerProvider { } @Override - public ConfigOrError parseLoadBalancingPolicyConfig( + public ConfigOrError parseLoadBalancingPolicyConfig( Map rawLoadBalancingPolicyConfig) { return ConfigOrError.fromConfig(NO_CONFIG); } diff --git a/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java b/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java index 126704a019..721ed8abc4 100644 --- a/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java +++ b/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java @@ -1008,7 +1008,7 @@ public class DnsNameResolverTest { @Test public void parseServiceConfig_capturesParseError() { - ConfigOrError> result = DnsNameResolver.parseServiceConfig( + ConfigOrError result = DnsNameResolver.parseServiceConfig( Arrays.asList("grpc_config=bogus"), new Random(), "localhost"); assertThat(result).isNotNull(); @@ -1018,7 +1018,7 @@ public class DnsNameResolverTest { @Test public void parseServiceConfig_capturesChoiceError() { - ConfigOrError> result = DnsNameResolver.parseServiceConfig( + ConfigOrError result = DnsNameResolver.parseServiceConfig( Arrays.asList("grpc_config=[{\"hi\":{}}]"), new Random(), "localhost"); assertThat(result).isNotNull(); @@ -1028,7 +1028,7 @@ public class DnsNameResolverTest { @Test public void parseServiceConfig_noChoiceIsNull() { - ConfigOrError> result = DnsNameResolver.parseServiceConfig( + ConfigOrError result = DnsNameResolver.parseServiceConfig( Arrays.asList("grpc_config=[]"), new Random(), "localhost"); assertThat(result).isNull(); @@ -1036,7 +1036,7 @@ public class DnsNameResolverTest { @Test public void parseServiceConfig_matches() { - ConfigOrError> result = DnsNameResolver.parseServiceConfig( + ConfigOrError result = DnsNameResolver.parseServiceConfig( Arrays.asList("grpc_config=[{\"serviceConfig\":{}}]"), new Random(), "localhost"); assertThat(result).isNotNull(); diff --git a/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java b/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java index e7afec6628..3eac2a9b98 100644 --- a/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java +++ b/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java @@ -3423,12 +3423,12 @@ public class ManagedChannelImplTest { maxHedgedAttemptsLimit, autoConfiguredLoadBalancerFactory); - ConfigOrError coe = - nrh.parseServiceConfig(ImmutableMap.of()); + ConfigOrError coe = nrh.parseServiceConfig(ImmutableMap.of()); assertThat(coe.getError()).isNull(); - assertThat(coe.getConfig().getServiceMap()).isEmpty(); - assertThat(coe.getConfig().getServiceMethodMap()).isEmpty(); + ManagedChannelServiceConfig cfg = (ManagedChannelServiceConfig) coe.getConfig(); + assertThat(cfg.getServiceMap()).isEmpty(); + assertThat(cfg.getServiceMethodMap()).isEmpty(); } @Test @@ -3451,7 +3451,7 @@ public class ManagedChannelImplTest { maxHedgedAttemptsLimit, autoConfiguredLoadBalancerFactory); - ConfigOrError coe = + ConfigOrError coe = nrh.parseServiceConfig(ImmutableMap.of("methodConfig", "bogus")); assertThat(coe.getError()).isNotNull(); @@ -3481,11 +3481,12 @@ public class ManagedChannelImplTest { maxHedgedAttemptsLimit, autoConfiguredLoadBalancerFactory); - ConfigOrError coe = + ConfigOrError coe = nrh.parseServiceConfig(ImmutableMap.of("loadBalancingConfig", ImmutableList.of())); assertThat(coe.getError()).isNull(); - assertThat(coe.getConfig().getLoadBalancingConfig()).isEqualTo(null); + ManagedChannelServiceConfig cfg = (ManagedChannelServiceConfig) coe.getConfig(); + assertThat(cfg.getLoadBalancingConfig()).isEqualTo(null); } @Test diff --git a/grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancerProvider.java b/grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancerProvider.java index 548f41219e..61f8dae2b3 100644 --- a/grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancerProvider.java +++ b/grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancerProvider.java @@ -64,7 +64,7 @@ public final class GrpclbLoadBalancerProvider extends LoadBalancerProvider { } @Override - public ConfigOrError parseLoadBalancingPolicyConfig( + public ConfigOrError parseLoadBalancingPolicyConfig( Map rawLoadBalancingConfigPolicy) { try { return parseLoadBalancingConfigPolicyInternal(rawLoadBalancingConfigPolicy); @@ -74,7 +74,7 @@ public final class GrpclbLoadBalancerProvider extends LoadBalancerProvider { } } - ConfigOrError parseLoadBalancingConfigPolicyInternal( + ConfigOrError parseLoadBalancingConfigPolicyInternal( Map rawLoadBalancingPolicyConfig) { if (rawLoadBalancingPolicyConfig == null) { return ConfigOrError.fromConfig(DEFAULT_MODE); diff --git a/services/src/main/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java b/services/src/main/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java index 532da4b458..5929d81a54 100644 --- a/services/src/main/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java +++ b/services/src/main/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java @@ -59,7 +59,7 @@ public final class HealthCheckingRoundRobinLoadBalancerProvider extends LoadBala } @Override - public ConfigOrError parseLoadBalancingPolicyConfig( + public ConfigOrError parseLoadBalancingPolicyConfig( Map rawLoadBalancingPolicyConfig) { return rrProvider.parseLoadBalancingPolicyConfig(rawLoadBalancingPolicyConfig); } diff --git a/xds/src/main/java/io/grpc/xds/XdsLoadBalancer.java b/xds/src/main/java/io/grpc/xds/XdsLoadBalancer.java index d9fe4647c9..1e152e9ff9 100644 --- a/xds/src/main/java/io/grpc/xds/XdsLoadBalancer.java +++ b/xds/src/main/java/io/grpc/xds/XdsLoadBalancer.java @@ -89,12 +89,12 @@ final class XdsLoadBalancer extends LoadBalancer { Map newRawLbConfig = checkNotNull( attributes.get(ATTR_LOAD_BALANCING_CONFIG), "ATTR_LOAD_BALANCING_CONFIG not available"); - ConfigOrError cfg = + ConfigOrError cfg = XdsLoadBalancerProvider.parseLoadBalancingConfigPolicy(newRawLbConfig, lbRegistry); if (cfg.getError() != null) { throw cfg.getError().asRuntimeException(); } - XdsConfig xdsConfig = cfg.getConfig(); + XdsConfig xdsConfig = (XdsConfig) cfg.getConfig(); fallbackPolicy = xdsConfig.fallbackPolicy; fallbackManager.updateFallbackServers(servers, attributes, fallbackPolicy); fallbackManager.maybeStartFallbackTimer(); diff --git a/xds/src/main/java/io/grpc/xds/XdsLoadBalancerProvider.java b/xds/src/main/java/io/grpc/xds/XdsLoadBalancerProvider.java index 6ee53e58f7..73134bc113 100644 --- a/xds/src/main/java/io/grpc/xds/XdsLoadBalancerProvider.java +++ b/xds/src/main/java/io/grpc/xds/XdsLoadBalancerProvider.java @@ -66,12 +66,12 @@ public final class XdsLoadBalancerProvider extends LoadBalancerProvider { } @Override - public ConfigOrError parseLoadBalancingPolicyConfig( + public ConfigOrError parseLoadBalancingPolicyConfig( Map rawLoadBalancingPolicyConfig) { return parseLoadBalancingConfigPolicy(rawLoadBalancingPolicyConfig, registry); } - static ConfigOrError parseLoadBalancingConfigPolicy( + static ConfigOrError parseLoadBalancingConfigPolicy( Map rawLoadBalancingPolicyConfig, LoadBalancerRegistry registry) { try { LbConfig newLbConfig =