Skip to content

Commit 070eaf6

Browse files
ejona86dfawley
authored andcommitted
api: Expose ForwardingServerBuilder for XdsServerBuilder
This reduces ABI issues caused by returning the more precise XdsServerBuilder in the API. See grpc#7552.
1 parent 0c6aff2 commit 070eaf6

File tree

2 files changed

+9
-90
lines changed

2 files changed

+9
-90
lines changed

api/src/main/java/io/grpc/ForwardingServerBuilder.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
* A {@link ServerBuilder} that delegates all its builder method to another builder by default.
2828
*
2929
* @param <T> The type of the subclass extending this abstract class.
30-
* @since 1.33.0
30+
* @since 1.34.0
3131
*/
3232
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/7393")
33-
abstract class ForwardingServerBuilder<T extends ServerBuilder<T>> extends ServerBuilder<T> {
33+
public abstract class ForwardingServerBuilder<T extends ServerBuilder<T>> extends ServerBuilder<T> {
3434

3535
/** The default constructor. */
3636
protected ForwardingServerBuilder() {}
@@ -160,7 +160,7 @@ public String toString() {
160160
/**
161161
* Returns the correctly typed version of the builder.
162162
*/
163-
protected final T thisT() {
163+
private T thisT() {
164164
@SuppressWarnings("unchecked")
165165
T thisT = (T) this;
166166
return thisT;

xds/src/main/java/io/grpc/xds/XdsServerBuilder.java

+6-87
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,11 @@
1818

1919
import com.google.common.annotations.VisibleForTesting;
2020
import io.grpc.Attributes;
21-
import io.grpc.BindableService;
22-
import io.grpc.CompressorRegistry;
23-
import io.grpc.DecompressorRegistry;
2421
import io.grpc.ExperimentalApi;
25-
import io.grpc.HandlerRegistry;
22+
import io.grpc.ForwardingServerBuilder;
23+
import io.grpc.Internal;
2624
import io.grpc.Server;
2725
import io.grpc.ServerBuilder;
28-
import io.grpc.ServerInterceptor;
29-
import io.grpc.ServerServiceDefinition;
30-
import io.grpc.ServerStreamTracer;
31-
import io.grpc.ServerTransportFilter;
3226
import io.grpc.Status;
3327
import io.grpc.netty.InternalNettyServerBuilder;
3428
import io.grpc.netty.InternalProtocolNegotiator.ProtocolNegotiator;
@@ -42,16 +36,13 @@
4236
import java.io.File;
4337
import java.io.InputStream;
4438
import java.net.InetSocketAddress;
45-
import java.util.concurrent.Executor;
46-
import java.util.concurrent.TimeUnit;
47-
import javax.annotation.Nullable;
4839
import javax.net.ssl.SSLException;
4940

5041
/**
5142
* A version of {@link ServerBuilder} to create xDS managed servers that will use SDS to set up SSL
5243
* with peers. Note, this is not ready to use yet.
5344
*/
54-
public final class XdsServerBuilder extends ServerBuilder<XdsServerBuilder> {
45+
public final class XdsServerBuilder extends ForwardingServerBuilder<XdsServerBuilder> {
5546

5647
private final NettyServerBuilder delegate;
5748
private final int port;
@@ -64,63 +55,9 @@ private XdsServerBuilder(NettyServerBuilder nettyDelegate, int port) {
6455
}
6556

6657
@Override
67-
public XdsServerBuilder handshakeTimeout(long timeout, TimeUnit unit) {
68-
delegate.handshakeTimeout(timeout, unit);
69-
return this;
70-
}
71-
72-
@Override
73-
public XdsServerBuilder directExecutor() {
74-
delegate.directExecutor();
75-
return this;
76-
}
77-
78-
@Override
79-
public XdsServerBuilder addStreamTracerFactory(ServerStreamTracer.Factory factory) {
80-
delegate.addStreamTracerFactory(factory);
81-
return this;
82-
}
83-
84-
@Override
85-
public XdsServerBuilder addTransportFilter(ServerTransportFilter filter) {
86-
delegate.addTransportFilter(filter);
87-
return this;
88-
}
89-
90-
@Override
91-
public XdsServerBuilder executor(Executor executor) {
92-
delegate.executor(executor);
93-
return this;
94-
}
95-
96-
@Override
97-
public XdsServerBuilder addService(ServerServiceDefinition service) {
98-
delegate.addService(service);
99-
return this;
100-
}
101-
102-
@Override
103-
public XdsServerBuilder addService(BindableService bindableService) {
104-
delegate.addService(bindableService);
105-
return this;
106-
}
107-
108-
@Override
109-
public XdsServerBuilder fallbackHandlerRegistry(@Nullable HandlerRegistry fallbackRegistry) {
110-
delegate.fallbackHandlerRegistry(fallbackRegistry);
111-
return this;
112-
}
113-
114-
@Override
115-
public XdsServerBuilder useTransportSecurity(File certChain, File privateKey) {
116-
delegate.useTransportSecurity(certChain, privateKey);
117-
return this;
118-
}
119-
120-
@Override
121-
public XdsServerBuilder useTransportSecurity(InputStream certChain, InputStream privateKey) {
122-
delegate.useTransportSecurity(certChain, privateKey);
123-
return this;
58+
@Internal
59+
protected ServerBuilder<?> delegate() {
60+
return delegate;
12461
}
12562

12663
/**
@@ -163,24 +100,6 @@ public XdsServerBuilder useXdsSecurityWithTransportSecurityFallback(
163100
return this;
164101
}
165102

166-
@Override
167-
public XdsServerBuilder decompressorRegistry(@Nullable DecompressorRegistry registry) {
168-
delegate.decompressorRegistry(registry);
169-
return this;
170-
}
171-
172-
@Override
173-
public XdsServerBuilder compressorRegistry(@Nullable CompressorRegistry registry) {
174-
delegate.compressorRegistry(registry);
175-
return this;
176-
}
177-
178-
@Override
179-
public XdsServerBuilder intercept(ServerInterceptor interceptor) {
180-
delegate.intercept(interceptor);
181-
return this;
182-
}
183-
184103
/** Set the fallback protocolNegotiator. Pass null to unset a previously set value. */
185104
public XdsServerBuilder fallbackProtocolNegotiator(
186105
ProtocolNegotiator fallbackProtocolNegotiator) {

0 commit comments

Comments
 (0)