core: Remove unused ServiceConfiguration

It was going to be used, but then the design changed. It's now
unnecessary.
This commit is contained in:
Eric Anderson 2018-01-17 16:42:26 -08:00
parent b5ae13405f
commit a54ff9cb54
2 changed files with 0 additions and 455 deletions

View File

@ -1,352 +0,0 @@
/*
* Copyright 2017, gRPC Authors All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.grpc.internal;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import java.util.List;
import javax.annotation.Nullable;
/**
* Represents a ServiceConfig as described at
* https://github.com/grpc/grpc/blob/master/doc/service_config.md
*/
public final class ServiceConfiguration {
private ServiceConfiguration() {}
/**
* Represents a {@link Name}.
*/
public static final class Name {
private String service;
private String method;
/**
* Constructs a {@link Name}.
*
* @param service required
* @param method required
*
*/
public Name(@Nullable String service, @Nullable String method) {
this.service = service;
this.method = method;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Name name = (Name) o;
return Objects.equal(service, name.service)
&& Objects.equal(method, name.method);
}
@Override
public int hashCode() {
return Objects.hashCode(service, method);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("service", service)
.add("method", method)
.toString();
}
}
/**
* Represents a {@link RetryPolicy}.
*/
public static final class RetryPolicy {
private int maxRetryAttempts;
private String initialBackoff;
private String maxBackoff;
private float backoffMultiplier;
private List<String> retryableStatusCodes;
/**
* Constructs a {@link RetryPolicy}.
*
* @param retryableStatusCodes cannot be empty
*/
public RetryPolicy(
int maxRetryAttempts,
@Nullable String initialBackoff,
@Nullable String maxBackoff,
float backoffMultiplier,
@Nullable List<String> retryableStatusCodes) {
this.maxRetryAttempts = maxRetryAttempts;
this.initialBackoff = initialBackoff;
this.maxBackoff = maxBackoff;
this.backoffMultiplier = backoffMultiplier;
this.retryableStatusCodes = retryableStatusCodes;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
RetryPolicy that = (RetryPolicy) o;
return maxRetryAttempts == that.maxRetryAttempts
&& Float.compare(that.backoffMultiplier, backoffMultiplier) == 0
&& Objects.equal(initialBackoff, that.initialBackoff)
&& Objects.equal(maxBackoff, that.maxBackoff)
&& Objects.equal(retryableStatusCodes, that.retryableStatusCodes);
}
@Override
public int hashCode() {
return Objects.hashCode(maxRetryAttempts, initialBackoff, maxBackoff, backoffMultiplier,
retryableStatusCodes);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("maxRetryAttempts", maxRetryAttempts)
.add("initialBackoff", initialBackoff)
.add("maxBackoff", maxBackoff)
.add("backoffMultiplier", backoffMultiplier)
.add("retryableStatusCodes", retryableStatusCodes)
.toString();
}
}
/**
* Represents a {@link HedgingPolicy}.
*/
public static final class HedgingPolicy {
private int maxRequests;
private String hedgingDelay;
private List<String> nonFatalStatusCodes;
/**
* Constructs a {@link RetryPolicy}.
*
* @param nonFatalStatusCodes must not be empty
*/
public HedgingPolicy(
int maxRequests,
@Nullable String hedgingDelay,
@Nullable List<String> nonFatalStatusCodes) {
this.maxRequests = maxRequests;
this.hedgingDelay = hedgingDelay;
this.nonFatalStatusCodes = nonFatalStatusCodes;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
HedgingPolicy that = (HedgingPolicy) o;
return maxRequests == that.maxRequests
&& Objects.equal(hedgingDelay, that.hedgingDelay)
&& Objects.equal(nonFatalStatusCodes, that.nonFatalStatusCodes);
}
@Override
public int hashCode() {
return Objects.hashCode(maxRequests, hedgingDelay, nonFatalStatusCodes);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("maxRequests", maxRequests)
.add("hedgingDelay", hedgingDelay)
.add("nonFatalStatusCodes", nonFatalStatusCodes)
.toString();
}
}
/**
* Represents a {@link MethodConfig}.
*/
public static final class MethodConfig {
private List<Name> name;
private Boolean waitForReady;
private String timeout;
private Integer maxRequestMessageBytes;
private Integer maxResponseMessageBytes;
private RetryPolicy retryPolicy;
private HedgingPolicy hedgingPolicy;
/**
* Constructs a {@link MethodConfig}.
*/
public MethodConfig(
@Nullable List<Name> name,
@Nullable Boolean waitForReady,
@Nullable String timeout,
@Nullable Integer maxRequestMessageBytes,
@Nullable Integer maxResponseMessageBytes,
@Nullable RetryPolicy retryPolicy,
@Nullable HedgingPolicy hedgingPolicy) {
this.name = name;
this.waitForReady = waitForReady;
this.timeout = timeout;
this.maxRequestMessageBytes = maxRequestMessageBytes;
this.maxResponseMessageBytes = maxResponseMessageBytes;
this.retryPolicy = retryPolicy;
this.hedgingPolicy = hedgingPolicy;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
MethodConfig that = (MethodConfig) o;
return Objects.equal(name, that.name)
&& Objects.equal(waitForReady, that.waitForReady)
&& Objects.equal(timeout, that.timeout)
&& Objects.equal(maxRequestMessageBytes, that.maxRequestMessageBytes)
&& Objects.equal(maxResponseMessageBytes, that.maxResponseMessageBytes)
&& Objects.equal(retryPolicy, that.retryPolicy)
&& Objects.equal(hedgingPolicy, that.hedgingPolicy);
}
@Override
public int hashCode() {
return Objects
.hashCode(name, waitForReady, timeout, maxRequestMessageBytes, maxResponseMessageBytes,
retryPolicy, hedgingPolicy);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("name", name)
.add("waitForReady", waitForReady)
.add("timeout", timeout)
.add("maxRequestMessageBytes", maxRequestMessageBytes)
.add("maxResponseMessageBytes", maxResponseMessageBytes)
.add("retryPolicy", retryPolicy)
.add("hedgingPolicy", hedgingPolicy)
.toString();
}
}
/**
* Represents a {@link RetryThrottlingPolicy}.
*/
public static final class RetryThrottlingPolicy {
private int maxTokens;
private float tokenRatio;
/**
* Constructs a {@link RetryThrottlingPolicy}.
*/
public RetryThrottlingPolicy(int maxTokens, float tokenRatio) {
this.maxTokens = maxTokens;
this.tokenRatio = tokenRatio;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
RetryThrottlingPolicy that = (RetryThrottlingPolicy) o;
return maxTokens == that.maxTokens
&& Float.compare(that.tokenRatio, tokenRatio) == 0;
}
@Override
public int hashCode() {
return Objects.hashCode(maxTokens, tokenRatio);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("maxTokens", maxTokens)
.add("tokenRatio", tokenRatio)
.toString();
}
}
/**
* Represents a {@link ServiceConfig}.
*/
public static final class ServiceConfig {
private String loadBalancingPolicy;
private List<MethodConfig> methodConfig;
private RetryThrottlingPolicy retryThrottling;
/**
* Constructs a {@link ServiceConfig}.
*/
public ServiceConfig(
@Nullable String loadBalancingPolicy,
@Nullable List<MethodConfig> methodConfig,
@Nullable RetryThrottlingPolicy retryThrottling) {
this.loadBalancingPolicy = loadBalancingPolicy;
this.methodConfig = methodConfig;
this.retryThrottling = retryThrottling;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ServiceConfig that = (ServiceConfig) o;
return Objects.equal(loadBalancingPolicy, that.loadBalancingPolicy)
&& Objects.equal(methodConfig, that.methodConfig)
&& Objects.equal(retryThrottling, that.retryThrottling);
}
@Override
public int hashCode() {
return Objects.hashCode(loadBalancingPolicy, methodConfig, retryThrottling);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("loadBalancingPolicy", loadBalancingPolicy)
.add("methodConfig", methodConfig)
.add("retryThrottling", retryThrottling)
.toString();
}
}
}

View File

@ -1,103 +0,0 @@
/*
* Copyright 2017, gRPC Authors All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.grpc.internal;
import static org.junit.Assert.assertEquals;
import com.google.gson.Gson;
import io.grpc.internal.ServiceConfiguration.MethodConfig;
import io.grpc.internal.ServiceConfiguration.Name;
import io.grpc.internal.ServiceConfiguration.ServiceConfig;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
/**
* Tests for {@link ServiceConfiguration}.
*/
@RunWith(JUnit4.class)
public class ServiceConfigurationTest {
@Test
public void parses() {
String json = "{\n"
+ " \"loadBalancingPolicy\": \"round_robin\", \n"
+ " \"methodConfig\": [\n"
+ " {\n"
+ " \"name\": [\n"
+ " {\n"
+ " \"method\": \"Foo\", \n"
+ " \"service\": \"SimpleService\"\n"
+ " }\n"
+ " ], \n"
+ " \"waitForReady\": true\n"
+ " }, \n"
+ " {\n"
+ " \"name\": [\n"
+ " {\n"
+ " \"method\": \"FooTwo\", \n"
+ " \"service\": \"SimpleService\"\n"
+ " }\n"
+ " ] \n"
+ " }, \n"
+ " {\n"
+ " \"name\": [\n"
+ " {\n"
+ " \"method\": \"FooTwelve\", \n"
+ " \"service\": \"SimpleService\"\n"
+ " }\n"
+ " ], \n"
+ " \"waitForReady\": false\n"
+ " }\n"
+ " ]\n"
+ "}";
ServiceConfig actual = new Gson().fromJson(json, ServiceConfig.class);
ServiceConfig expected =
new ServiceConfig(
"round_robin",
Arrays.asList(
new MethodConfig(
Arrays.asList(new Name("SimpleService", "Foo")),
/* waitForReady */ true,
/* timeout */ null,
/* maxRequestMessageBytes */ null,
/* maxResponseMessageBytes */ null,
/* retryPolicy */ null,
/* hedgingPolicy */ null),
new MethodConfig(
Arrays.asList(new Name("SimpleService", "FooTwo")),
/* waitForReady */ null,
/* timeout */ null,
/* maxRequestMessageBytes */ null,
/* maxResponseMessageBytes */ null,
/* retryPolicy */ null,
/* hedgingPolicy */ null),
new MethodConfig(
Arrays.asList(new Name("SimpleService", "FooTwelve")),
/* waitForReady */ false,
/* timeout */ null,
/* maxRequestMessageBytes */ null,
/* maxResponseMessageBytes */ null,
/* retryPolicy */ null,
/* hedgingPolicy */ null)),
/* retryThrottlingPolicy */ null);
assertEquals(expected, actual);
}
}