diff options
author | Eric Gribkoff <ericgribkoff@google.com> | 2018-08-02 09:14:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-02 09:14:27 -0700 |
commit | f329d120d26f446afb3561dc79509687a62e4472 (patch) | |
tree | 46304b0ae3f7ff47ffa4cdfb8b01030767f2f65b /android | |
parent | 6fa282292327a61fd09b87ae1e1dda62478647dc (diff) | |
download | grpc-grpc-java-f329d120d26f446afb3561dc79509687a62e4472.tar.gz |
android: add AndroidChannelBuilder#fromBuilder (#4723)
Diffstat (limited to 'android')
-rw-r--r-- | android/src/main/java/io/grpc/android/AndroidChannelBuilder.java | 34 | ||||
-rw-r--r-- | android/src/test/java/io/grpc/android/AndroidChannelBuilderTest.java | 10 |
2 files changed, 38 insertions, 6 deletions
diff --git a/android/src/main/java/io/grpc/android/AndroidChannelBuilder.java b/android/src/main/java/io/grpc/android/AndroidChannelBuilder.java index 24b8719ce..d5de35bc5 100644 --- a/android/src/main/java/io/grpc/android/AndroidChannelBuilder.java +++ b/android/src/main/java/io/grpc/android/AndroidChannelBuilder.java @@ -27,6 +27,7 @@ import android.net.NetworkInfo; import android.os.Build; import android.util.Log; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Preconditions; import io.grpc.CallOptions; import io.grpc.ClientCall; import io.grpc.ConnectivityState; @@ -41,7 +42,6 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; import javax.annotation.concurrent.GuardedBy; -import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLSocketFactory; /** @@ -81,6 +81,10 @@ public final class AndroidChannelBuilder extends ForwardingChannelBuilder<Androi return forTarget(GrpcUtil.authorityFromHostAndPort(name, port)); } + public static AndroidChannelBuilder fromBuilder(ManagedChannelBuilder builder) { + return new AndroidChannelBuilder(builder); + } + private AndroidChannelBuilder(String target) { if (OKHTTP_CHANNEL_BUILDER_CLASS == null) { throw new UnsupportedOperationException("No ManagedChannelBuilder found on the classpath"); @@ -96,13 +100,23 @@ public final class AndroidChannelBuilder extends ForwardingChannelBuilder<Androi } } + private AndroidChannelBuilder(ManagedChannelBuilder delegateBuilder) { + this.delegateBuilder = Preconditions.checkNotNull(delegateBuilder, "delegateBuilder"); + } + /** Enables automatic monitoring of the device's network state. */ public AndroidChannelBuilder context(Context context) { this.context = context; return this; } - /** Set the delegate channel builder's transportExecutor. */ + /** + * Set the delegate channel builder's transportExecutor. + * + * @deprecated Use {@link #fromBuilder(ManagedChannelBuilder)} with a pre-configured + * ManagedChannelBuilder instead. + */ + @Deprecated public AndroidChannelBuilder transportExecutor(@Nullable Executor transportExecutor) { try { OKHTTP_CHANNEL_BUILDER_CLASS @@ -114,7 +128,13 @@ public final class AndroidChannelBuilder extends ForwardingChannelBuilder<Androi } } - /** Set the delegate channel builder's sslSocketFactory. */ + /** + * Set the delegate channel builder's sslSocketFactory. + * + * @deprecated Use {@link #fromBuilder(ManagedChannelBuilder)} with a pre-configured + * ManagedChannelBuilder instead. + */ + @Deprecated public AndroidChannelBuilder sslSocketFactory(SSLSocketFactory factory) { try { OKHTTP_CHANNEL_BUILDER_CLASS @@ -126,7 +146,13 @@ public final class AndroidChannelBuilder extends ForwardingChannelBuilder<Androi } } - /** Set the delegate channel builder's scheduledExecutorService. */ + /** + * Set the delegate channel builder's scheduledExecutorService. + * + * @deprecated Use {@link #fromBuilder(ManagedChannelBuilder)} with a pre-configured + * ManagedChannelBuilder instead. + */ + @Deprecated public AndroidChannelBuilder scheduledExecutorService( ScheduledExecutorService scheduledExecutorService) { try { diff --git a/android/src/test/java/io/grpc/android/AndroidChannelBuilderTest.java b/android/src/test/java/io/grpc/android/AndroidChannelBuilderTest.java index c90553656..0a74fa436 100644 --- a/android/src/test/java/io/grpc/android/AndroidChannelBuilderTest.java +++ b/android/src/test/java/io/grpc/android/AndroidChannelBuilderTest.java @@ -31,6 +31,7 @@ import io.grpc.CallOptions; import io.grpc.ClientCall; import io.grpc.ManagedChannel; import io.grpc.MethodDescriptor; +import io.grpc.okhttp.OkHttpChannelBuilder; import java.util.Collection; import java.util.HashSet; import java.util.List; @@ -40,8 +41,6 @@ import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import org.junit.Before; import org.junit.Test; @@ -97,6 +96,13 @@ public final class AndroidChannelBuilderTest { } @Test + public void fromBuilderConstructor() { + OkHttpChannelBuilder wrappedBuilder = OkHttpChannelBuilder.forTarget("target"); + AndroidChannelBuilder androidBuilder = AndroidChannelBuilder.fromBuilder(wrappedBuilder); + assertThat(androidBuilder.delegate()).isSameAs(wrappedBuilder); + } + + @Test public void transportExecutor() { AndroidChannelBuilder.forTarget("target") .transportExecutor( |