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:
Eric Anderson 2016-06-11 12:10:07 -07:00
parent 4b127f2231
commit 0b55c81548
4 changed files with 9 additions and 11 deletions

View File

@ -31,7 +31,7 @@
package io.grpc; 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.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.BenchmarkMode;
@ -87,7 +87,7 @@ public class DecompressorRegistryBenchmark {
@OutputTimeUnit(TimeUnit.NANOSECONDS) @OutputTimeUnit(TimeUnit.NANOSECONDS)
public String dynamicAcceptEncoding() { public String dynamicAcceptEncoding() {
if (!reg.getAdvertisedMessageEncodings().isEmpty()) { if (!reg.getAdvertisedMessageEncodings().isEmpty()) {
return GrpcUtil.ACCEPT_ENCODING_JOINER.join(reg.getAdvertisedMessageEncodings()); return ACCEPT_ENCODING_JOINER.join(reg.getAdvertisedMessageEncodings());
} }
return ""; return "";
} }

View File

@ -33,7 +33,8 @@ package io.grpc;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull; 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.Collections;
import java.util.HashSet; import java.util.HashSet;
@ -51,6 +52,8 @@ import javax.annotation.concurrent.ThreadSafe;
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1704") @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1704")
@ThreadSafe @ThreadSafe
public final class DecompressorRegistry { public final class DecompressorRegistry {
static final Joiner ACCEPT_ENCODING_JOINER = Joiner.on(',');
public static DecompressorRegistry emptyInstance() { public static DecompressorRegistry emptyInstance() {
return new DecompressorRegistry(); return new DecompressorRegistry();
} }

View File

@ -34,7 +34,6 @@ package io.grpc.internal;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMap; 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 Splitter ACCEPT_ENCODING_SPLITER = Splitter.on(',').trimResults();
public static final Joiner ACCEPT_ENCODING_JOINER = Joiner.on(',');
private static final String IMPLEMENTATION_VERION = getImplementationVersion(); private static final String IMPLEMENTATION_VERION = getImplementationVersion();
/** /**

View File

@ -34,7 +34,6 @@ package io.grpc.internal;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState; 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.ACCEPT_ENCODING_SPLITER;
import static io.grpc.internal.GrpcUtil.MESSAGE_ACCEPT_ENCODING_KEY; import static io.grpc.internal.GrpcUtil.MESSAGE_ACCEPT_ENCODING_KEY;
import static io.grpc.internal.GrpcUtil.MESSAGE_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.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.List; import java.util.List;
import java.util.Set;
final class ServerCallImpl<ReqT, RespT> extends ServerCall<RespT> { final class ServerCallImpl<ReqT, RespT> extends ServerCall<RespT> {
private final ServerStream stream; private final ServerStream stream;
@ -139,9 +137,9 @@ final class ServerCallImpl<ReqT, RespT> extends ServerCall<RespT> {
stream.setCompressor(compressor); stream.setCompressor(compressor);
headers.removeAll(MESSAGE_ACCEPT_ENCODING_KEY); headers.removeAll(MESSAGE_ACCEPT_ENCODING_KEY);
Set<String> acceptEncodings = decompressorRegistry.getAdvertisedMessageEncodings(); String advertisedEncodings = decompressorRegistry.getRawAdvertisedMessageEncodings();
if (!acceptEncodings.isEmpty()) { if (!advertisedEncodings.isEmpty()) {
headers.put(MESSAGE_ACCEPT_ENCODING_KEY, ACCEPT_ENCODING_JOINER.join(acceptEncodings)); headers.put(MESSAGE_ACCEPT_ENCODING_KEY, advertisedEncodings);
} }
// Don't check if sendMessage has been called, since it requires that sendHeaders was already // Don't check if sendMessage has been called, since it requires that sendHeaders was already