Introduced in #10406.
ForwardingChannelBuilder2 is a ManagedChannelBuilder that delegates all its builder methods to another builder by default.
It replaces ForwardingChannelBuilder, which isn't ABI-safe. ForwardingChannelBuilder class was mistakenly declared as ForwardingChannelBuilder<T extends ForwardingChannelBuilder<T>>. It causes return types of inherited methods in its child classes to be ForwardingChannelBuilder instead of ManagedChannelBuilder. This pollutes the ABI with undesired method signatures, and introduces hard dependency on ForwardingChannelBuilder
ForwardingChannelBuilder2 generates correct return types. It should always be chosen over ForwardingChannelBuilder
We plan to stabilize ForwardingChannelBuilder2 in one of the following releases, and deprecate ForwardingChannelBuilder.
Introduced in #10406.
ForwardingChannelBuilder2is aManagedChannelBuilderthat delegates all its builder methods to another builder by default.It replaces
ForwardingChannelBuilder, which isn't ABI-safe.ForwardingChannelBuilderclass was mistakenly declared asForwardingChannelBuilder<T extends ForwardingChannelBuilder<T>>. It causes return types of inherited methods in its child classes to beForwardingChannelBuilderinstead ofManagedChannelBuilder. This pollutes the ABI with undesired method signatures, and introduces hard dependency onForwardingChannelBuilderForwardingChannelBuilder2 generates correct return types. It should always be chosen over
ForwardingChannelBuilderWe plan to stabilize
ForwardingChannelBuilder2in one of the following releases, and deprecateForwardingChannelBuilder.