From 35a6bf863d3eb6d169170d46f64357e3a768b3dd Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Mon, 8 Jan 2018 14:05:16 -0800 Subject: Enable the Guava Beta Checker --- .../src/main/java/io/grpc/auth/GoogleAuthLibraryCallCredentials.java | 1 + build.gradle | 5 ++++- core/src/main/java/io/grpc/Metadata.java | 1 + core/src/main/java/io/grpc/internal/DnsNameResolver.java | 1 + core/src/main/java/io/grpc/internal/TransportFrameUtil.java | 2 ++ interop-testing/build.gradle | 5 +++++ netty/src/main/java/io/grpc/netty/GrpcHttp2HeadersUtils.java | 1 + netty/src/main/java/io/grpc/netty/NettyClientStream.java | 1 + okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java | 1 + .../main/java/io/grpc/internal/testing/AbstractTransportTest.java | 4 ++-- 10 files changed, 19 insertions(+), 3 deletions(-) diff --git a/auth/src/main/java/io/grpc/auth/GoogleAuthLibraryCallCredentials.java b/auth/src/main/java/io/grpc/auth/GoogleAuthLibraryCallCredentials.java index cbfb1f6cc..12efabfe8 100644 --- a/auth/src/main/java/io/grpc/auth/GoogleAuthLibraryCallCredentials.java +++ b/auth/src/main/java/io/grpc/auth/GoogleAuthLibraryCallCredentials.java @@ -167,6 +167,7 @@ final class GoogleAuthLibraryCallCredentials implements CallCredentials { } } + @SuppressWarnings("BetaApi") // BaseEncoding is stable in Guava 20.0 private static Metadata toHeaders(@Nullable Map> metadata) { Metadata headers = new Metadata(); if (metadata != null) { diff --git a/build.gradle b/build.gradle index ac71a0149..8d9768e6f 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,8 @@ buildscript { dependencies { classpath 'com.google.gradle:osdetector-gradle-plugin:1.4.0' classpath 'ru.vyarus:gradle-animalsniffer-plugin:1.4.0' - classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.11' + classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.13' + classpath 'net.ltgt.gradle:gradle-apt-plugin:0.13' classpath "me.champeau.gradle:jmh-gradle-plugin:0.4.4" classpath 'me.champeau.gradle:japicmp-gradle-plugin:0.2.5' } @@ -29,11 +30,13 @@ subprojects { apply plugin: "ru.vyarus.animalsniffer" if (!rootProject.hasProperty('errorProne') || rootProject.errorProne.toBoolean()) { apply plugin: "net.ltgt.errorprone" + apply plugin: "net.ltgt.apt" dependencies { // The ErrorProne plugin defaults to the latest, which would break our // build if error prone releases a new version with a new check errorprone 'com.google.errorprone:error_prone_core:2.0.21' + apt 'com.google.guava:guava-beta-checker:1.0' } } else { // Remove per-project error-prone checker config diff --git a/core/src/main/java/io/grpc/Metadata.java b/core/src/main/java/io/grpc/Metadata.java index 0159d21c3..2b368512e 100644 --- a/core/src/main/java/io/grpc/Metadata.java +++ b/core/src/main/java/io/grpc/Metadata.java @@ -455,6 +455,7 @@ public final class Metadata { } } + @SuppressWarnings("BetaApi") // BaseEncoding is stable in Guava 20.0 @Override public String toString() { StringBuilder sb = new StringBuilder("Metadata("); diff --git a/core/src/main/java/io/grpc/internal/DnsNameResolver.java b/core/src/main/java/io/grpc/internal/DnsNameResolver.java index e10334596..63ec83325 100644 --- a/core/src/main/java/io/grpc/internal/DnsNameResolver.java +++ b/core/src/main/java/io/grpc/internal/DnsNameResolver.java @@ -371,6 +371,7 @@ final class DnsNameResolver extends NameResolver { private static final Pattern whitespace = Pattern.compile("\\s+"); + @SuppressWarnings("BetaApi") // Verify is stable in Guava 23.5 @Override ResolutionResults resolve(String host) throws NamingException { List serviceConfigTxtRecords = Collections.emptyList(); diff --git a/core/src/main/java/io/grpc/internal/TransportFrameUtil.java b/core/src/main/java/io/grpc/internal/TransportFrameUtil.java index 879a6c54c..3482bf173 100644 --- a/core/src/main/java/io/grpc/internal/TransportFrameUtil.java +++ b/core/src/main/java/io/grpc/internal/TransportFrameUtil.java @@ -44,6 +44,7 @@ public final class TransportFrameUtil { * * @return the interleaved keys and values. */ + @SuppressWarnings("BetaApi") // BaseEncoding is stable in Guava 20.0 public static byte[][] toHttp2Headers(Metadata headers) { byte[][] serializedHeaders = InternalMetadata.serialize(headers); // TODO(carl-mastrangelo): eventually remove this once all callers are updated. @@ -89,6 +90,7 @@ public final class TransportFrameUtil { * @param http2Headers the interleaved keys and values of HTTP/2-compliant headers * @return the interleaved keys and values in the raw serialized format */ + @SuppressWarnings("BetaApi") // BaseEncoding is stable in Guava 20.0 public static byte[][] toRawSerializedHeaders(byte[][] http2Headers) { for (int i = 0; i < http2Headers.length; i += 2) { byte[] key = http2Headers[i]; diff --git a/interop-testing/build.gradle b/interop-testing/build.gradle index c22eaec24..babe4344d 100644 --- a/interop-testing/build.gradle +++ b/interop-testing/build.gradle @@ -32,6 +32,11 @@ dependencies { configureProtoCompilation() +compileJava { + // This isn't a library; it can use beta APIs + it.options.compilerArgs += ["-Xep:BetaApi:OFF"] +} + test { // For the automated tests, use Jetty ALPN. jvmArgs "-javaagent:" + configurations.alpnagent.asPath diff --git a/netty/src/main/java/io/grpc/netty/GrpcHttp2HeadersUtils.java b/netty/src/main/java/io/grpc/netty/GrpcHttp2HeadersUtils.java index 405f1e59f..15c0df992 100644 --- a/netty/src/main/java/io/grpc/netty/GrpcHttp2HeadersUtils.java +++ b/netty/src/main/java/io/grpc/netty/GrpcHttp2HeadersUtils.java @@ -179,6 +179,7 @@ class GrpcHttp2HeadersUtils { return PlatformDependent.equals(bytes0, offset0, bytes1, offset1, length0); } + @SuppressWarnings("BetaApi") // BaseEncoding is stable in Guava 20.0 private static byte[] toBinaryValue(AsciiString name, AsciiString value) { return name.endsWith(binaryHeaderSuffix) ? BaseEncoding.base64().decode(value) diff --git a/netty/src/main/java/io/grpc/netty/NettyClientStream.java b/netty/src/main/java/io/grpc/netty/NettyClientStream.java index b97270ad7..6bc6cdc9d 100644 --- a/netty/src/main/java/io/grpc/netty/NettyClientStream.java +++ b/netty/src/main/java/io/grpc/netty/NettyClientStream.java @@ -111,6 +111,7 @@ class NettyClientStream extends AbstractClientStream { } private class Sink implements AbstractClientStream.Sink { + @SuppressWarnings("BetaApi") // BaseEncoding is stable in Guava 20.0 @Override public void writeHeaders(Metadata headers, byte[] requestPayload) { // Convert the headers into Netty HTTP/2 headers. diff --git a/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java b/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java index 8349fd6ad..740fd6a72 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java @@ -126,6 +126,7 @@ class OkHttpClientStream extends AbstractClientStream { } class Sink implements AbstractClientStream.Sink { + @SuppressWarnings("BetaApi") // BaseEncoding is stable in Guava 20.0 @Override public void writeHeaders(Metadata metadata, byte[] payload) { String defaultPath = "/" + method.getFullMethodName(); diff --git a/testing/src/main/java/io/grpc/internal/testing/AbstractTransportTest.java b/testing/src/main/java/io/grpc/internal/testing/AbstractTransportTest.java index be636033e..744c5681d 100644 --- a/testing/src/main/java/io/grpc/internal/testing/AbstractTransportTest.java +++ b/testing/src/main/java/io/grpc/internal/testing/AbstractTransportTest.java @@ -41,7 +41,6 @@ import static org.mockito.Mockito.when; import com.google.common.base.Objects; import com.google.common.collect.Lists; -import com.google.common.io.ByteStreams; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; import io.grpc.Attributes; @@ -57,6 +56,7 @@ import io.grpc.internal.ClientStream; import io.grpc.internal.ClientStreamListener; import io.grpc.internal.ClientTransport; import io.grpc.internal.InternalServer; +import io.grpc.internal.IoUtils; import io.grpc.internal.ManagedClientTransport; import io.grpc.internal.ServerListener; import io.grpc.internal.ServerStream; @@ -1954,7 +1954,7 @@ public abstract class AbstractTransportTest { @Override public String parse(InputStream stream) { try { - return new String(ByteStreams.toByteArray(stream), UTF_8); + return new String(IoUtils.toByteArray(stream), UTF_8); } catch (IOException ex) { throw new RuntimeException(ex); } -- cgit v1.2.3