Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

api: Expose ForwardingServerBuilder for XdsServerBuilder #7633

Merged
merged 1 commit into from Nov 18, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions api/src/main/java/io/grpc/ForwardingServerBuilder.java
Expand Up @@ -27,10 +27,10 @@
* A {@link ServerBuilder} that delegates all its builder method to another builder by default.
*
* @param <T> The type of the subclass extending this abstract class.
* @since 1.33.0
* @since 1.34.0
*/
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/7393")
abstract class ForwardingServerBuilder<T extends ServerBuilder<T>> extends ServerBuilder<T> {
public abstract class ForwardingServerBuilder<T extends ServerBuilder<T>> extends ServerBuilder<T> {

/** The default constructor. */
protected ForwardingServerBuilder() {}
Expand Down Expand Up @@ -160,7 +160,7 @@ public String toString() {
/**
* Returns the correctly typed version of the builder.
*/
protected final T thisT() {
private T thisT() {
@SuppressWarnings("unchecked")
T thisT = (T) this;
return thisT;
Expand Down
93 changes: 6 additions & 87 deletions xds/src/main/java/io/grpc/xds/XdsServerBuilder.java
Expand Up @@ -18,17 +18,11 @@

import com.google.common.annotations.VisibleForTesting;
import io.grpc.Attributes;
import io.grpc.BindableService;
import io.grpc.CompressorRegistry;
import io.grpc.DecompressorRegistry;
import io.grpc.ExperimentalApi;
import io.grpc.HandlerRegistry;
import io.grpc.ForwardingServerBuilder;
import io.grpc.Internal;
import io.grpc.Server;
import io.grpc.ServerBuilder;
import io.grpc.ServerInterceptor;
import io.grpc.ServerServiceDefinition;
import io.grpc.ServerStreamTracer;
import io.grpc.ServerTransportFilter;
import io.grpc.Status;
import io.grpc.netty.InternalNettyServerBuilder;
import io.grpc.netty.InternalProtocolNegotiator.ProtocolNegotiator;
Expand All @@ -42,16 +36,13 @@
import java.io.File;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
import javax.net.ssl.SSLException;

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

private final NettyServerBuilder delegate;
private final int port;
Expand All @@ -64,63 +55,9 @@ private XdsServerBuilder(NettyServerBuilder nettyDelegate, int port) {
}

@Override
public XdsServerBuilder handshakeTimeout(long timeout, TimeUnit unit) {
delegate.handshakeTimeout(timeout, unit);
return this;
}

@Override
public XdsServerBuilder directExecutor() {
delegate.directExecutor();
return this;
}

@Override
public XdsServerBuilder addStreamTracerFactory(ServerStreamTracer.Factory factory) {
delegate.addStreamTracerFactory(factory);
return this;
}

@Override
public XdsServerBuilder addTransportFilter(ServerTransportFilter filter) {
delegate.addTransportFilter(filter);
return this;
}

@Override
public XdsServerBuilder executor(Executor executor) {
delegate.executor(executor);
return this;
}

@Override
public XdsServerBuilder addService(ServerServiceDefinition service) {
delegate.addService(service);
return this;
}

@Override
public XdsServerBuilder addService(BindableService bindableService) {
delegate.addService(bindableService);
return this;
}

@Override
public XdsServerBuilder fallbackHandlerRegistry(@Nullable HandlerRegistry fallbackRegistry) {
delegate.fallbackHandlerRegistry(fallbackRegistry);
return this;
}

@Override
public XdsServerBuilder useTransportSecurity(File certChain, File privateKey) {
delegate.useTransportSecurity(certChain, privateKey);
return this;
}

@Override
public XdsServerBuilder useTransportSecurity(InputStream certChain, InputStream privateKey) {
delegate.useTransportSecurity(certChain, privateKey);
return this;
@Internal
protected ServerBuilder<?> delegate() {
return delegate;
}

/**
Expand Down Expand Up @@ -163,24 +100,6 @@ public XdsServerBuilder useXdsSecurityWithTransportSecurityFallback(
return this;
}

@Override
public XdsServerBuilder decompressorRegistry(@Nullable DecompressorRegistry registry) {
delegate.decompressorRegistry(registry);
return this;
}

@Override
public XdsServerBuilder compressorRegistry(@Nullable CompressorRegistry registry) {
delegate.compressorRegistry(registry);
return this;
}

@Override
public XdsServerBuilder intercept(ServerInterceptor interceptor) {
delegate.intercept(interceptor);
return this;
}

/** Set the fallback protocolNegotiator. Pass null to unset a previously set value. */
public XdsServerBuilder fallbackProtocolNegotiator(
ProtocolNegotiator fallbackProtocolNegotiator) {
Expand Down