aboutsummaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorEric Gribkoff <ericgribkoff@google.com>2018-08-02 09:14:27 -0700
committerGitHub <noreply@github.com>2018-08-02 09:14:27 -0700
commitf329d120d26f446afb3561dc79509687a62e4472 (patch)
tree46304b0ae3f7ff47ffa4cdfb8b01030767f2f65b /android
parent6fa282292327a61fd09b87ae1e1dda62478647dc (diff)
downloadgrpc-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.java34
-rw-r--r--android/src/test/java/io/grpc/android/AndroidChannelBuilderTest.java10
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(