mirror of https://github.com/grpc/grpc-java.git
core: Move ACCEPT_ENCODING_JOINER to DecompressorRegistry
This removes a reference of io.grpc.internal from io.grpc. It also optimizes server call handling for outbound grpc-accept-encoding header, as had already been done for client call.
This commit is contained in:
parent
4b127f2231
commit
0b55c81548
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
package io.grpc;
|
||||
|
||||
import io.grpc.internal.GrpcUtil;
|
||||
import static io.grpc.DecompressorRegistry.ACCEPT_ENCODING_JOINER;
|
||||
|
||||
import org.openjdk.jmh.annotations.Benchmark;
|
||||
import org.openjdk.jmh.annotations.BenchmarkMode;
|
||||
|
|
@ -87,7 +87,7 @@ public class DecompressorRegistryBenchmark {
|
|||
@OutputTimeUnit(TimeUnit.NANOSECONDS)
|
||||
public String dynamicAcceptEncoding() {
|
||||
if (!reg.getAdvertisedMessageEncodings().isEmpty()) {
|
||||
return GrpcUtil.ACCEPT_ENCODING_JOINER.join(reg.getAdvertisedMessageEncodings());
|
||||
return ACCEPT_ENCODING_JOINER.join(reg.getAdvertisedMessageEncodings());
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ package io.grpc;
|
|||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static io.grpc.internal.GrpcUtil.ACCEPT_ENCODING_JOINER;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
|
|
@ -51,6 +52,8 @@ import javax.annotation.concurrent.ThreadSafe;
|
|||
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1704")
|
||||
@ThreadSafe
|
||||
public final class DecompressorRegistry {
|
||||
static final Joiner ACCEPT_ENCODING_JOINER = Joiner.on(',');
|
||||
|
||||
public static DecompressorRegistry emptyInstance() {
|
||||
return new DecompressorRegistry();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ package io.grpc.internal;
|
|||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
|
@ -143,8 +142,6 @@ public final class GrpcUtil {
|
|||
|
||||
public static final Splitter ACCEPT_ENCODING_SPLITER = Splitter.on(',').trimResults();
|
||||
|
||||
public static final Joiner ACCEPT_ENCODING_JOINER = Joiner.on(',');
|
||||
|
||||
private static final String IMPLEMENTATION_VERION = getImplementationVersion();
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ package io.grpc.internal;
|
|||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static com.google.common.base.Preconditions.checkState;
|
||||
import static io.grpc.internal.GrpcUtil.ACCEPT_ENCODING_JOINER;
|
||||
import static io.grpc.internal.GrpcUtil.ACCEPT_ENCODING_SPLITER;
|
||||
import static io.grpc.internal.GrpcUtil.MESSAGE_ACCEPT_ENCODING_KEY;
|
||||
import static io.grpc.internal.GrpcUtil.MESSAGE_ENCODING_KEY;
|
||||
|
|
@ -58,7 +57,6 @@ import io.grpc.Status;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
final class ServerCallImpl<ReqT, RespT> extends ServerCall<RespT> {
|
||||
private final ServerStream stream;
|
||||
|
|
@ -139,9 +137,9 @@ final class ServerCallImpl<ReqT, RespT> extends ServerCall<RespT> {
|
|||
stream.setCompressor(compressor);
|
||||
|
||||
headers.removeAll(MESSAGE_ACCEPT_ENCODING_KEY);
|
||||
Set<String> acceptEncodings = decompressorRegistry.getAdvertisedMessageEncodings();
|
||||
if (!acceptEncodings.isEmpty()) {
|
||||
headers.put(MESSAGE_ACCEPT_ENCODING_KEY, ACCEPT_ENCODING_JOINER.join(acceptEncodings));
|
||||
String advertisedEncodings = decompressorRegistry.getRawAdvertisedMessageEncodings();
|
||||
if (!advertisedEncodings.isEmpty()) {
|
||||
headers.put(MESSAGE_ACCEPT_ENCODING_KEY, advertisedEncodings);
|
||||
}
|
||||
|
||||
// Don't check if sendMessage has been called, since it requires that sendHeaders was already
|
||||
|
|
|
|||
Loading…
Reference in New Issue