diff --git a/core/src/main/java/io/grpc/ForwardingChannelBuilder.java b/core/src/main/java/io/grpc/ForwardingChannelBuilder.java index 9c780698cef..9297753d482 100644 --- a/core/src/main/java/io/grpc/ForwardingChannelBuilder.java +++ b/core/src/main/java/io/grpc/ForwardingChannelBuilder.java @@ -16,6 +16,7 @@ package io.grpc; +import com.google.common.base.MoreObjects; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; @@ -219,6 +220,11 @@ public ManagedChannel build() { return delegate().build(); } + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString(); + } + /** * Returns the correctly typed version of the builder. */ diff --git a/core/src/main/java/io/grpc/PartialForwardingClientCall.java b/core/src/main/java/io/grpc/PartialForwardingClientCall.java index 0ab21b5b091..86fde9e2a14 100644 --- a/core/src/main/java/io/grpc/PartialForwardingClientCall.java +++ b/core/src/main/java/io/grpc/PartialForwardingClientCall.java @@ -16,6 +16,7 @@ package io.grpc; +import com.google.common.base.MoreObjects; import javax.annotation.Nullable; /** @@ -57,4 +58,9 @@ public boolean isReady() { public Attributes getAttributes() { return delegate().getAttributes(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString(); + } } diff --git a/core/src/main/java/io/grpc/PartialForwardingClientCallListener.java b/core/src/main/java/io/grpc/PartialForwardingClientCallListener.java index 33e85e6c9de..00d87a19db5 100644 --- a/core/src/main/java/io/grpc/PartialForwardingClientCallListener.java +++ b/core/src/main/java/io/grpc/PartialForwardingClientCallListener.java @@ -16,6 +16,8 @@ package io.grpc; +import com.google.common.base.MoreObjects; + /** * A {@link ClientCall.Listener} which forwards all of its methods to another {@link * ClientCall.Listener} which may have a different parameterized type than the @@ -41,4 +43,9 @@ public void onClose(Status status, Metadata trailers) { public void onReady() { delegate().onReady(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString(); + } } diff --git a/core/src/main/java/io/grpc/PartialForwardingServerCall.java b/core/src/main/java/io/grpc/PartialForwardingServerCall.java index 3f5dcf86d6b..27f4990c959 100644 --- a/core/src/main/java/io/grpc/PartialForwardingServerCall.java +++ b/core/src/main/java/io/grpc/PartialForwardingServerCall.java @@ -16,6 +16,8 @@ package io.grpc; +import com.google.common.base.MoreObjects; + /** * A {@link ServerCall} which forwards all of it's methods to another {@link ServerCall} which * may have a different onMessage() message type. @@ -73,4 +75,9 @@ public Attributes getAttributes() { public String getAuthority() { return delegate().getAuthority(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString(); + } } diff --git a/core/src/main/java/io/grpc/PartialForwardingServerCallListener.java b/core/src/main/java/io/grpc/PartialForwardingServerCallListener.java index 1f2c6ce45d5..c6745b09ba3 100644 --- a/core/src/main/java/io/grpc/PartialForwardingServerCallListener.java +++ b/core/src/main/java/io/grpc/PartialForwardingServerCallListener.java @@ -16,6 +16,8 @@ package io.grpc; +import com.google.common.base.MoreObjects; + /** * A {@link ServerCall.Listener} which forwards all of its methods to another {@link * ServerCall.Listener} which may have a different parameterized type than the @@ -47,4 +49,9 @@ public void onComplete() { public void onReady() { delegate().onReady(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString(); + } } diff --git a/core/src/main/java/io/grpc/internal/ForwardingClientStream.java b/core/src/main/java/io/grpc/internal/ForwardingClientStream.java index 8ff72faba2b..7af41c8ab92 100644 --- a/core/src/main/java/io/grpc/internal/ForwardingClientStream.java +++ b/core/src/main/java/io/grpc/internal/ForwardingClientStream.java @@ -16,6 +16,7 @@ package io.grpc.internal; +import com.google.common.base.MoreObjects; import io.grpc.Attributes; import io.grpc.Compressor; import io.grpc.DecompressorRegistry; @@ -99,4 +100,9 @@ public void setMaxOutboundMessageSize(int maxSize) { public Attributes getAttributes() { return delegate().getAttributes(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString(); + } } diff --git a/core/src/main/java/io/grpc/internal/ForwardingClientStreamListener.java b/core/src/main/java/io/grpc/internal/ForwardingClientStreamListener.java index 04e80857426..cbb80b5fe7c 100644 --- a/core/src/main/java/io/grpc/internal/ForwardingClientStreamListener.java +++ b/core/src/main/java/io/grpc/internal/ForwardingClientStreamListener.java @@ -16,6 +16,7 @@ package io.grpc.internal; +import com.google.common.base.MoreObjects; import io.grpc.Metadata; import io.grpc.Status; @@ -47,4 +48,9 @@ public void messagesAvailable(MessageProducer producer) { public void onReady() { delegate().onReady(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString(); + } } diff --git a/core/src/main/java/io/grpc/internal/ForwardingConnectionClientTransport.java b/core/src/main/java/io/grpc/internal/ForwardingConnectionClientTransport.java index eadd7c21c73..7d730d6a47e 100644 --- a/core/src/main/java/io/grpc/internal/ForwardingConnectionClientTransport.java +++ b/core/src/main/java/io/grpc/internal/ForwardingConnectionClientTransport.java @@ -16,6 +16,7 @@ package io.grpc.internal; +import com.google.common.base.MoreObjects; import com.google.common.util.concurrent.ListenableFuture; import io.grpc.Attributes; import io.grpc.CallOptions; @@ -64,7 +65,7 @@ public Attributes getAttributes() { @Override public String toString() { - return getClass().getSimpleName() + "[" + delegate().toString() + "]"; + return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString(); } @Override diff --git a/core/src/main/java/io/grpc/internal/ForwardingManagedChannel.java b/core/src/main/java/io/grpc/internal/ForwardingManagedChannel.java index 31147e7c616..69f5a083f2f 100644 --- a/core/src/main/java/io/grpc/internal/ForwardingManagedChannel.java +++ b/core/src/main/java/io/grpc/internal/ForwardingManagedChannel.java @@ -16,6 +16,7 @@ package io.grpc.internal; +import com.google.common.base.MoreObjects; import io.grpc.CallOptions; import io.grpc.ClientCall; import io.grpc.ConnectivityState; @@ -86,4 +87,9 @@ public void resetConnectBackoff() { public void enterIdle() { delegate.enterIdle(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate).toString(); + } } diff --git a/core/src/main/java/io/grpc/internal/ForwardingNameResolver.java b/core/src/main/java/io/grpc/internal/ForwardingNameResolver.java index 768f82e7927..7d63d5582c1 100644 --- a/core/src/main/java/io/grpc/internal/ForwardingNameResolver.java +++ b/core/src/main/java/io/grpc/internal/ForwardingNameResolver.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.base.MoreObjects; import io.grpc.NameResolver; /** @@ -50,4 +51,9 @@ public void shutdown() { public void refresh() { delegate.refresh(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", delegate).toString(); + } } diff --git a/core/src/main/java/io/grpc/internal/ForwardingReadableBuffer.java b/core/src/main/java/io/grpc/internal/ForwardingReadableBuffer.java index 2a402cdf95b..ac6e2b446ce 100644 --- a/core/src/main/java/io/grpc/internal/ForwardingReadableBuffer.java +++ b/core/src/main/java/io/grpc/internal/ForwardingReadableBuffer.java @@ -16,6 +16,7 @@ package io.grpc.internal; +import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import java.io.IOException; import java.io.OutputStream; @@ -99,4 +100,9 @@ public int arrayOffset() { public void close() { buf.close(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("delegate", buf).toString(); + } } diff --git a/core/src/test/java/io/grpc/ForwardingTestUtil.java b/core/src/test/java/io/grpc/ForwardingTestUtil.java index 00682da48f1..cb673eef31c 100644 --- a/core/src/test/java/io/grpc/ForwardingTestUtil.java +++ b/core/src/test/java/io/grpc/ForwardingTestUtil.java @@ -17,11 +17,13 @@ package io.grpc; import static junit.framework.TestCase.assertFalse; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mockingDetails; import static org.mockito.Mockito.verify; import com.google.common.base.Defaults; +import com.google.common.base.MoreObjects; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -68,5 +70,19 @@ public static void testMethodsForwarded( throw new AssertionError(String.format("Method was not forwarded: %s", method)); } } + + boolean skipToString = false; + for (Method method : skippedMethods) { + if (method.getName().equals("toString")) { + skipToString = true; + break; + } + } + if (!skipToString) { + String actual = forwarder.toString(); + String expected = + MoreObjects.toStringHelper(forwarder).add("delegate", mockDelegate).toString(); + assertEquals("Method toString() was not forwarded properly", expected, actual); + } } }