Skip to content

Commit

Permalink
Revert "core, netty, okhttp: implement new logic for nameResolverFact…
Browse files Browse the repository at this point in the history
…ory API in channelBuilder (grpc#10590)"

This reverts commit 15fc70b.
  • Loading branch information
YifeiZhuang committed Nov 8, 2023
1 parent 45ffb06 commit 95fdfd0
Show file tree
Hide file tree
Showing 42 changed files with 118 additions and 796 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.util.concurrent.DefaultThreadFactory;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeUnit;

/**
Expand Down Expand Up @@ -58,7 +57,7 @@ public Channel create() {
EventLoopGroup eventGroup =
new NioEventLoopGroup(1, new DefaultThreadFactory("handshaker pool", true));
ManagedChannel channel = NettyChannelBuilder.forTarget(target)
.channelType(NioSocketChannel.class, InetSocketAddress.class)
.channelType(NioSocketChannel.class)
.directExecutor()
.eventLoopGroup(eventGroup)
.usePlaintext()
Expand Down
6 changes: 3 additions & 3 deletions api/src/main/java/io/grpc/ManagedChannelRegistry.java
Original file line number Diff line number Diff line change
Expand Up @@ -161,13 +161,13 @@ ManagedChannelBuilder<?> newChannelBuilder(NameResolverRegistry nameResolverRegi
NameResolverProvider nameResolverProvider = null;
try {
URI uri = new URI(target);
nameResolverProvider = nameResolverRegistry.getProviderForScheme(uri.getScheme());
nameResolverProvider = nameResolverRegistry.providers().get(uri.getScheme());
} catch (URISyntaxException ignore) {
// bad URI found, just ignore and continue
}
if (nameResolverProvider == null) {
nameResolverProvider = nameResolverRegistry.getProviderForScheme(
nameResolverRegistry.getDefaultScheme());
nameResolverProvider = nameResolverRegistry.providers().get(
nameResolverRegistry.asFactory().getDefaultScheme());
}
Collection<Class<? extends SocketAddress>> nameResolverSocketAddressTypes
= (nameResolverProvider != null)
Expand Down
2 changes: 1 addition & 1 deletion api/src/main/java/io/grpc/NameResolverProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ protected String getScheme() {
*
* @return the {@link SocketAddress} types this provider's name-resolver is capable of producing.
*/
public Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
protected Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
return Collections.singleton(InetSocketAddress.class);
}
}
20 changes: 8 additions & 12 deletions api/src/main/java/io/grpc/NameResolverRegistry.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,16 +58,6 @@ public final class NameResolverRegistry {
@GuardedBy("this")
private ImmutableMap<String, NameResolverProvider> effectiveProviders = ImmutableMap.of();

public synchronized String getDefaultScheme() {
return defaultScheme;
}

public NameResolverProvider getProviderForScheme(String scheme) {
if (scheme == null) {
return null;
}
return providers().get(scheme.toLowerCase(Locale.US));
}

/**
* Register a provider.
Expand Down Expand Up @@ -173,13 +163,19 @@ private final class NameResolverFactory extends NameResolver.Factory {
@Override
@Nullable
public NameResolver newNameResolver(URI targetUri, NameResolver.Args args) {
NameResolverProvider provider = getProviderForScheme(targetUri.getScheme());
String scheme = targetUri.getScheme();
if (scheme == null) {
return null;
}
NameResolverProvider provider = providers().get(scheme.toLowerCase(Locale.US));
return provider == null ? null : provider.newNameResolver(targetUri, args);
}

@Override
public String getDefaultScheme() {
return NameResolverRegistry.this.getDefaultScheme();
synchronized (NameResolverRegistry.this) {
return defaultScheme;
}
}
}

Expand Down
8 changes: 4 additions & 4 deletions api/src/test/java/io/grpc/ManagedChannelRegistryTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -173,13 +173,13 @@ class SocketAddress2 extends SocketAddress {

nameResolverRegistry.register(new BaseNameResolverProvider(true, 5, "sc1") {
@Override
public Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
protected Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
return Collections.singleton(SocketAddress1.class);
}
});
nameResolverRegistry.register(new BaseNameResolverProvider(true, 6, "sc2") {
@Override
public Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
protected Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
fail("Should not be called");
throw new AssertionError();
}
Expand Down Expand Up @@ -234,7 +234,7 @@ class SocketAddress2 extends SocketAddress {

nameResolverRegistry.register(new BaseNameResolverProvider(true, 5, "sc1") {
@Override
public Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
protected Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
return ImmutableSet.of(SocketAddress1.class, SocketAddress2.class);
}
});
Expand Down Expand Up @@ -314,7 +314,7 @@ class SocketAddress1 extends SocketAddress {

nameResolverRegistry.register(new BaseNameResolverProvider(true, 5, "sc1") {
@Override
public Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
protected Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
return Collections.singleton(SocketAddress1.class);
}
});
Expand Down
4 changes: 1 addition & 3 deletions api/src/test/java/io/grpc/NameResolverRegistryTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -203,14 +203,12 @@ public void newNameResolver_noProvider() {
public void baseProviders() {
Map<String, NameResolverProvider> providers =
NameResolverRegistry.getDefaultRegistry().providers();
assertThat(providers).hasSize(2);
assertThat(providers).hasSize(1);
// 2 name resolvers from grpclb and core, higher priority one is returned.
assertThat(providers.get("dns").getClass().getName())
.isEqualTo("io.grpc.grpclb.SecretGrpclbNameResolverProvider$Provider");
assertThat(NameResolverRegistry.getDefaultRegistry().asFactory().getDefaultScheme())
.isEqualTo("dns");
assertThat(providers.get("inprocess").getClass().getName())
.isEqualTo("io.grpc.inprocess.InProcessNameResolverProvider");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ public void setUp() throws Exception {
.channelType(LocalServerChannel.class);
channelBuilder = NettyChannelBuilder.forAddress(address)
.eventLoopGroup(group)
.channelType(LocalChannel.class, LocalAddress.class)
.channelType(LocalChannel.class)
.negotiationType(NegotiationType.PLAINTEXT);
groupToShutdown = group;
break;
Expand All @@ -134,7 +134,7 @@ public void setUp() throws Exception {
.asSubclass(Channel.class);
channelBuilder = NettyChannelBuilder.forAddress(address)
.eventLoopGroup(group)
.channelType(channelClass, InetSocketAddress.class)
.channelType(channelClass)
.negotiationType(NegotiationType.PLAINTEXT);
groupToShutdown = group;
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ public void setup(ExecutorType clientExecutor,
serverBuilder = NettyServerBuilder.forAddress(address, serverCreds);
serverBuilder.channelType(LocalServerChannel.class);
channelBuilder = NettyChannelBuilder.forAddress(address);
channelBuilder.channelType(LocalChannel.class, LocalAddress.class);
channelBuilder.channelType(LocalChannel.class);
} else {
ServerSocket sock = new ServerSocket();
// Pick a port using an ephemeral socket.
Expand All @@ -216,8 +216,7 @@ public void setup(ExecutorType clientExecutor,
sock.close();
serverBuilder = NettyServerBuilder.forAddress(address, serverCreds)
.channelType(NioServerSocketChannel.class);
channelBuilder = NettyChannelBuilder.forAddress(address).channelType(NioSocketChannel.class,
InetSocketAddress.class);
channelBuilder = NettyChannelBuilder.forAddress(address).channelType(NioSocketChannel.class);
}

if (serverExecutor == ExecutorType.DIRECT) {
Expand Down
6 changes: 3 additions & 3 deletions benchmarks/src/main/java/io/grpc/benchmarks/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -130,21 +130,21 @@ private static NettyChannelBuilder configureNetty(
case NETTY_NIO:
builder
.eventLoopGroup(new NioEventLoopGroup(0, tf))
.channelType(NioSocketChannel.class, InetSocketAddress.class);
.channelType(NioSocketChannel.class);
break;

case NETTY_EPOLL:
// These classes only work on Linux.
builder
.eventLoopGroup(new EpollEventLoopGroup(0, tf))
.channelType(EpollSocketChannel.class, InetSocketAddress.class);
.channelType(EpollSocketChannel.class);
break;

case NETTY_UNIX_DOMAIN_SOCKET:
// These classes only work on Linux.
builder
.eventLoopGroup(new EpollEventLoopGroup(0, tf))
.channelType(EpollDomainSocketChannel.class, DomainSocketAddress.class);
.channelType(EpollDomainSocketChannel.class);
break;

default:
Expand Down
7 changes: 0 additions & 7 deletions binder/src/main/java/io/grpc/binder/BinderChannelBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@
import io.grpc.internal.ObjectPool;
import io.grpc.internal.SharedResourcePool;
import java.net.SocketAddress;
import java.util.Collection;
import java.util.Collections;
import java.util.concurrent.Executor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
Expand Down Expand Up @@ -403,10 +401,5 @@ public void close() {
executorService = scheduledExecutorPool.returnObject(executorService);
offloadExecutor = offloadExecutorPool.returnObject(offloadExecutor);
}

@Override
public Collection<Class<? extends SocketAddress>> getSupportedSocketAddressTypes() {
return Collections.singleton(AndroidComponentAddress.class);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import io.grpc.Status;
import io.grpc.internal.MetadataApplierImpl.MetadataApplierListener;
import java.net.SocketAddress;
import java.util.Collection;
import java.util.concurrent.Executor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.atomic.AtomicInteger;
Expand Down Expand Up @@ -75,11 +74,6 @@ public void close() {
delegate.close();
}

@Override
public Collection<Class<? extends SocketAddress>> getSupportedSocketAddressTypes() {
return delegate.getSupportedSocketAddressTypes();
}

private class CallCredentialsApplyingTransport extends ForwardingConnectionClientTransport {
private final ConnectionClientTransport delegate;
private final String authority;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import io.grpc.HttpConnectProxiedSocketAddress;
import java.io.Closeable;
import java.net.SocketAddress;
import java.util.Collection;
import java.util.concurrent.ScheduledExecutorService;
import javax.annotation.CheckReturnValue;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -74,11 +73,6 @@ ConnectionClientTransport newClientTransport(
@Override
void close();

/**
* Returns the {@link SocketAddress} types this transport supports.
*/
Collection<Class<? extends SocketAddress>> getSupportedSocketAddressTypes();

/**
* Options passed to {@link #newClientTransport}. Although it is safe to save this object if
* received, it is generally expected that the useful fields are copied and then the options
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public int priority() {
}

@Override
public Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
protected Collection<Class<? extends SocketAddress>> getProducedSocketAddressTypes() {
return Collections.singleton(InetSocketAddress.class);
}
}
Loading

0 comments on commit 95fdfd0

Please sign in to comment.