diff --git a/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java b/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java index 93413aa22a..2386aa8b2b 100644 --- a/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java +++ b/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java @@ -20,7 +20,6 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static io.grpc.internal.GrpcUtil.DEFAULT_MAX_MESSAGE_SIZE; -import android.util.Log; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.MoreExecutors; @@ -38,8 +37,6 @@ import io.grpc.internal.ManagedChannelImplBuilder; import io.grpc.internal.ManagedChannelImplBuilder.ClientTransportFactoryBuilder; import io.grpc.internal.SharedResourceHolder; import io.grpc.internal.TransportTracer; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.util.Collection; @@ -49,15 +46,11 @@ import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nullable; import org.chromium.net.BidirectionalStream; import org.chromium.net.CronetEngine; -import org.chromium.net.ExperimentalBidirectionalStream; -import org.chromium.net.ExperimentalCronetEngine; /** Convenience class for building channels with the cronet transport. */ @ExperimentalApi("There is no plan to make this API stable, given transport API instability") public final class CronetChannelBuilder extends ForwardingChannelBuilder2 { - private static final String LOG_TAG = "CronetChannelBuilder"; - /** BidirectionalStream.Builder factory used for getting the gRPC BidirectionalStream. */ public static abstract class StreamBuilderFactory { public abstract BidirectionalStream.Builder newBidirectionalStreamBuilder( @@ -296,11 +289,6 @@ public final class CronetChannelBuilder extends ForwardingChannelBuilder2 CRONET_ANNOTATION_KEY = CallOptions.Key.create("cronet-annotation"); @@ -194,14 +188,12 @@ class CronetClientStream extends AbstractClientStream { builder.delayRequestHeadersUntilFirstFlush(true); } if (annotation != null || annotations != null) { - ExperimentalBidirectionalStream.Builder expBidiStreamBuilder = - (ExperimentalBidirectionalStream.Builder) builder; if (annotation != null) { - addRequestAnnotation(expBidiStreamBuilder, annotation); + builder.addRequestAnnotation(annotation); } if (annotations != null) { for (Object o : annotations) { - addRequestAnnotation(expBidiStreamBuilder, o); + builder.addRequestAnnotation(o); } } } @@ -367,35 +359,6 @@ class CronetClientStream extends AbstractClientStream { && !TE_HEADER.name().equalsIgnoreCase(key); } - private static void addRequestAnnotation(ExperimentalBidirectionalStream.Builder builder, - Object annotation) { - if (!loadAddRequestAnnotationAttempted) { - synchronized (CronetClientStream.class) { - if (!loadAddRequestAnnotationAttempted) { - try { - addRequestAnnotationMethod = ExperimentalBidirectionalStream.Builder.class - .getMethod("addRequestAnnotation", Object.class); - } catch (NoSuchMethodException e) { - Log.w(LOG_TAG, - "Failed to load method ExperimentalBidirectionalStream.Builder.addRequestAnnotation", - e); - } finally { - loadAddRequestAnnotationAttempted = true; - } - } - } - } - if (addRequestAnnotationMethod != null) { - try { - addRequestAnnotationMethod.invoke(builder, annotation); - } catch (InvocationTargetException e) { - throw new RuntimeException(e.getCause() == null ? e.getTargetException() : e.getCause()); - } catch (IllegalAccessException e) { - Log.w(LOG_TAG, "Failed to add request annotation: " + annotation, e); - } - } - } - private void setGrpcHeaders(BidirectionalStream.Builder builder) { // Psuedo-headers are set by cronet. // All non-pseudo headers must come after pseudo headers. diff --git a/cronet/src/test/java/io/grpc/cronet/CronetChannelBuilderTest.java b/cronet/src/test/java/io/grpc/cronet/CronetChannelBuilderTest.java index b31b742577..41f48bc03b 100644 --- a/cronet/src/test/java/io/grpc/cronet/CronetChannelBuilderTest.java +++ b/cronet/src/test/java/io/grpc/cronet/CronetChannelBuilderTest.java @@ -35,7 +35,7 @@ import io.grpc.internal.SharedResourceHolder; import io.grpc.testing.TestMethodDescriptors; import java.net.InetSocketAddress; import java.util.concurrent.ScheduledExecutorService; -import org.chromium.net.ExperimentalCronetEngine; +import org.chromium.net.CronetEngine; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -50,7 +50,7 @@ import org.robolectric.annotation.Config; public final class CronetChannelBuilderTest { @Rule public final MockitoRule mocks = MockitoJUnit.rule(); - @Mock private ExperimentalCronetEngine mockEngine; + @Mock private CronetEngine mockEngine; @Mock private ChannelLogger channelLogger; private final ClientStreamTracer[] tracers = diff --git a/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java b/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java index cfbe27a625..bd7d37dd62 100644 --- a/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java +++ b/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java @@ -54,7 +54,6 @@ import java.util.Map; import java.util.concurrent.Executor; import org.chromium.net.BidirectionalStream; import org.chromium.net.CronetException; -import org.chromium.net.ExperimentalBidirectionalStream; import org.chromium.net.UrlResponseInfo; import org.chromium.net.impl.UrlResponseInfoImpl; import org.junit.Before; @@ -76,9 +75,9 @@ public final class CronetClientStreamTest { @Mock private CronetClientTransport transport; private Metadata metadata = new Metadata(); @Mock private StreamBuilderFactory factory; - @Mock private ExperimentalBidirectionalStream cronetStream; + @Mock private BidirectionalStream cronetStream; @Mock private ClientStreamListener clientListener; - @Mock private ExperimentalBidirectionalStream.Builder builder; + @Mock private BidirectionalStream.Builder builder; private final Object lock = new Object(); private final TransportTracer transportTracer = TransportTracer.getDefaultFactory().create(); private final Executor executor = new Executor() { @@ -681,8 +680,8 @@ public final class CronetClientStreamTest { true, false); callback.setStream(stream); - ExperimentalBidirectionalStream.Builder getBuilder = - mock(ExperimentalBidirectionalStream.Builder.class); + BidirectionalStream.Builder getBuilder = + mock(BidirectionalStream.Builder.class); when(getFactory.newBidirectionalStreamBuilder( any(String.class), any(BidirectionalStream.Callback.class), any(Executor.class))) .thenReturn(getBuilder); @@ -738,8 +737,8 @@ public final class CronetClientStreamTest { true, true); callback.setStream(stream); - ExperimentalBidirectionalStream.Builder builder = - mock(ExperimentalBidirectionalStream.Builder.class); + BidirectionalStream.Builder builder = + mock(BidirectionalStream.Builder.class); when(factory.newBidirectionalStreamBuilder( any(String.class), any(BidirectionalStream.Callback.class), any(Executor.class))) .thenReturn(builder); @@ -770,8 +769,8 @@ public final class CronetClientStreamTest { true, true); callback.setStream(stream); - ExperimentalBidirectionalStream.Builder builder = - mock(ExperimentalBidirectionalStream.Builder.class); + BidirectionalStream.Builder builder = + mock(BidirectionalStream.Builder.class); when(factory.newBidirectionalStreamBuilder( any(String.class), any(BidirectionalStream.Callback.class), any(Executor.class))) .thenReturn(builder); @@ -810,8 +809,8 @@ public final class CronetClientStreamTest { false, false); callback.setStream(stream); - ExperimentalBidirectionalStream.Builder builder = - mock(ExperimentalBidirectionalStream.Builder.class); + BidirectionalStream.Builder builder = + mock(BidirectionalStream.Builder.class); when(factory.newBidirectionalStreamBuilder( any(String.class), any(BidirectionalStream.Callback.class), any(Executor.class))) .thenReturn(builder); diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a7100e97f0..e7a1f375ca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,10 +23,8 @@ auto-value-annotations = "com.google.auto.value:auto-value-annotations:1.10.4" checkstyle = "com.puppycrawl.tools:checkstyle:10.12.5" commons-math3 = "org.apache.commons:commons-math3:3.6.1" conscrypt = "org.conscrypt:conscrypt-openjdk-uber:2.5.2" -# Update notes / 2023-07-19 sergiitk: -# Cronet (API and Embedded) upgrade is blocked by https://github.com/grpc/grpc-java/issues/10396. -cronet-api = "org.chromium.net:cronet-api:108.5359.79" -cronet-embedded = "org.chromium.net:cronet-embedded:108.5359.79" +cronet-api = "org.chromium.net:cronet-api:119.6045.31" +cronet-embedded = "org.chromium.net:cronet-embedded:119.6045.31" errorprone-annotations = "com.google.errorprone:error_prone_annotations:2.23.0" errorprone-core = "com.google.errorprone:error_prone_core:2.23.0" google-api-protos = "com.google.api.grpc:proto-google-common-protos:2.29.0"