Skip to content

Commit 232a5ab

Browse files
authored
DnsResolverBuilder methods should make it clear that these are for Da… (#14379)
…tagramChannel Motivation: We should add new methods (and deprecate the old ones) to make it more clear that these are responsible for creating DatagramChannels. Modifications: - Add datagramChannelType(...) and datagramChannelFactory(...) and deprecate the old channelType(...) and channelFactory(...) methods - Adjust code to use the new methods in favor of the new deprecated methods Result: Cleanup
1 parent e87ce47 commit 232a5ab

File tree

9 files changed

+72
-37
lines changed

9 files changed

+72
-37
lines changed

handler-ssl-ocsp/src/main/java/io/netty/handler/ssl/ocsp/OcspServerCertificateValidator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public OcspServerCertificateValidator(boolean closeAndThrowIfNotValid, boolean v
122122
protected static DnsNameResolver createDefaultResolver(final IoTransport ioTransport) {
123123
return new DnsNameResolverBuilder()
124124
.eventLoop(ioTransport.eventLoop())
125-
.channelFactory(ioTransport.datagramChannel())
125+
.datagramChannelFactory(ioTransport.datagramChannel())
126126
.socketChannelFactory(ioTransport.socketChannel())
127127
.build();
128128
}

resolver-dns/src/main/java/io/netty/resolver/dns/DnsAddressResolverGroup.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ public DnsAddressResolverGroup(
5252
Class<? extends DatagramChannel> channelType,
5353
DnsServerAddressStreamProvider nameServerProvider) {
5454
this.dnsResolverBuilder = withSharedCaches(new DnsNameResolverBuilder());
55-
dnsResolverBuilder.channelType(channelType).nameServerProvider(nameServerProvider);
55+
dnsResolverBuilder.datagramChannelType(channelType).nameServerProvider(nameServerProvider);
5656
}
5757

5858
public DnsAddressResolverGroup(
5959
ChannelFactory<? extends DatagramChannel> channelFactory,
6060
DnsServerAddressStreamProvider nameServerProvider) {
6161
this.dnsResolverBuilder = withSharedCaches(new DnsNameResolverBuilder());
62-
dnsResolverBuilder.channelFactory(channelFactory).nameServerProvider(nameServerProvider);
62+
dnsResolverBuilder.datagramChannelFactory(channelFactory).nameServerProvider(nameServerProvider);
6363
}
6464

6565
private static DnsNameResolverBuilder withSharedCaches(DnsNameResolverBuilder dnsResolverBuilder) {
@@ -83,7 +83,7 @@ protected final AddressResolver<InetSocketAddress> newResolver(EventExecutor exe
8383
// but still keep this to ensure backward compatibility with (potentially) override methods
8484
EventLoop loop = dnsResolverBuilder.eventLoop;
8585
return newResolver(loop == null ? (EventLoop) executor : loop,
86-
dnsResolverBuilder.channelFactory(),
86+
dnsResolverBuilder.datagramChannelFactory(),
8787
dnsResolverBuilder.nameServerProvider());
8888
}
8989

@@ -117,7 +117,7 @@ protected NameResolver<InetAddress> newNameResolver(EventLoop eventLoop,
117117
// once again, channelFactory and nameServerProvider are most probably set in builder already,
118118
// but I do reassign them again to avoid corner cases with override methods
119119
return builder.eventLoop(eventLoop)
120-
.channelFactory(channelFactory)
120+
.datagramChannelFactory(channelFactory)
121121
.nameServerProvider(nameServerProvider)
122122
.build();
123123
}

resolver-dns/src/main/java/io/netty/resolver/dns/DnsNameResolverBuilder.java

+49-14
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public final class DnsNameResolverBuilder {
4747
static final SocketAddress DEFAULT_LOCAL_ADDRESS = new InetSocketAddress(0);
4848

4949
volatile EventLoop eventLoop;
50-
private ChannelFactory<? extends DatagramChannel> channelFactory;
50+
private ChannelFactory<? extends DatagramChannel> datagramChannelFactory;
5151
private ChannelFactory<? extends SocketChannel> socketChannelFactory;
5252
private boolean retryOnTimeout;
5353

@@ -105,40 +105,75 @@ public DnsNameResolverBuilder eventLoop(EventLoop eventLoop) {
105105
return this;
106106
}
107107

108-
protected ChannelFactory<? extends DatagramChannel> channelFactory() {
109-
return this.channelFactory;
108+
ChannelFactory<? extends DatagramChannel> datagramChannelFactory() {
109+
return this.datagramChannelFactory;
110110
}
111111

112112
/**
113113
* Sets the {@link ChannelFactory} that will create a {@link DatagramChannel}.
114+
* <p>
114115
* If <a href="https://tools.ietf.org/html/rfc7766">TCP fallback</a> should be supported as well it is required
115116
* to call the {@link #socketChannelFactory(ChannelFactory) or {@link #socketChannelType(Class)}} method.
116117
*
117-
* @param channelFactory the {@link ChannelFactory}
118+
* @param datagramChannelFactory the {@link ChannelFactory}
118119
* @return {@code this}
120+
* @deprecated use {@link #datagramChannelFactory(ChannelFactory)}
119121
*/
120-
public DnsNameResolverBuilder channelFactory(ChannelFactory<? extends DatagramChannel> channelFactory) {
121-
this.channelFactory = channelFactory;
122+
@Deprecated
123+
public DnsNameResolverBuilder channelFactory(ChannelFactory<? extends DatagramChannel> datagramChannelFactory) {
124+
datagramChannelFactory(datagramChannelFactory);
125+
return this;
126+
}
127+
128+
/**
129+
* Sets the {@link ChannelFactory} that will create a {@link DatagramChannel}.
130+
* <p>
131+
* If <a href="https://tools.ietf.org/html/rfc7766">TCP fallback</a> should be supported as well it is required
132+
* to call the {@link #socketChannelFactory(ChannelFactory) or {@link #socketChannelType(Class)}} method.
133+
*
134+
* @param datagramChannelFactory the {@link ChannelFactory}
135+
* @return {@code this}
136+
*/
137+
public DnsNameResolverBuilder datagramChannelFactory(
138+
ChannelFactory<? extends DatagramChannel> datagramChannelFactory) {
139+
this.datagramChannelFactory = datagramChannelFactory;
122140
return this;
123141
}
124142

125143
/**
126144
* Sets the {@link ChannelFactory} as a {@link ReflectiveChannelFactory} of this type.
127145
* Use as an alternative to {@link #channelFactory(ChannelFactory)}.
146+
* <p>
128147
* If <a href="https://tools.ietf.org/html/rfc7766">TCP fallback</a> should be supported as well it is required
129148
* to call the {@link #socketChannelFactory(ChannelFactory) or {@link #socketChannelType(Class)}} method.
130149
*
131150
* @param channelType the type
132151
* @return {@code this}
152+
* @deprecated use {@link #datagramChannelType(Class)}
133153
*/
154+
@Deprecated
134155
public DnsNameResolverBuilder channelType(Class<? extends DatagramChannel> channelType) {
135-
return channelFactory(new ReflectiveChannelFactory<DatagramChannel>(channelType));
156+
return datagramChannelFactory(new ReflectiveChannelFactory<DatagramChannel>(channelType));
157+
}
158+
159+
/**
160+
* Sets the {@link ChannelFactory} as a {@link ReflectiveChannelFactory} of this type.
161+
* Use as an alternative to {@link #datagramChannelFactory(ChannelFactory)}.
162+
* <p>
163+
* If <a href="https://tools.ietf.org/html/rfc7766">TCP fallback</a> should be supported as well it is required
164+
* to call the {@link #socketChannelFactory(ChannelFactory) or {@link #socketChannelType(Class)}} method.
165+
*
166+
* @param channelType the type
167+
* @return {@code this}
168+
*/
169+
public DnsNameResolverBuilder datagramChannelType(Class<? extends DatagramChannel> channelType) {
170+
return datagramChannelFactory(new ReflectiveChannelFactory<DatagramChannel>(channelType));
136171
}
137172

138173
/**
139174
* Sets the {@link ChannelFactory} that will create a {@link SocketChannel} for
140175
* <a href="https://tools.ietf.org/html/rfc7766">TCP fallback</a> if needed.
141-
*
176+
* <p>
142177
* TCP fallback is <strong>not</strong> enabled by default and must be enabled by providing a non-null
143178
* {@link ChannelFactory} for this method.
144179
*
@@ -155,7 +190,7 @@ public DnsNameResolverBuilder socketChannelFactory(ChannelFactory<? extends Sock
155190
* Sets the {@link ChannelFactory} as a {@link ReflectiveChannelFactory} of this type for
156191
* <a href="https://tools.ietf.org/html/rfc7766">TCP fallback</a> if needed.
157192
* Use as an alternative to {@link #socketChannelFactory(ChannelFactory)}.
158-
*
193+
* <p>
159194
* TCP fallback is <strong>not</strong> enabled by default and must be enabled by providing a non-null
160195
* {@code channelType} for this method.
161196
*
@@ -170,7 +205,7 @@ public DnsNameResolverBuilder socketChannelType(Class<? extends SocketChannel> c
170205
/**
171206
* Sets the {@link ChannelFactory} that will create a {@link SocketChannel} for
172207
* <a href="https://tools.ietf.org/html/rfc7766">TCP fallback</a> if needed.
173-
*
208+
* <p>
174209
* TCP fallback is <strong>not</strong> enabled by default and must be enabled by providing a non-null
175210
* {@link ChannelFactory} for this method.
176211
*
@@ -193,7 +228,7 @@ public DnsNameResolverBuilder socketChannelFactory(
193228
* Sets the {@link ChannelFactory} as a {@link ReflectiveChannelFactory} of this type for
194229
* <a href="https://tools.ietf.org/html/rfc7766">TCP fallback</a> if needed.
195230
* Use as an alternative to {@link #socketChannelFactory(ChannelFactory)}.
196-
*
231+
* <p>
197232
* TCP fallback is <strong>not</strong> enabled by default and must be enabled by providing a non-null
198233
* {@code channelType} for this method.
199234
*
@@ -603,7 +638,7 @@ public DnsNameResolver build() {
603638

604639
return new DnsNameResolver(
605640
eventLoop,
606-
channelFactory,
641+
datagramChannelFactory,
607642
socketChannelFactory,
608643
retryOnTimeout,
609644
resolveCache,
@@ -640,8 +675,8 @@ public DnsNameResolverBuilder copy() {
640675
copiedBuilder.eventLoop(eventLoop);
641676
}
642677

643-
if (channelFactory != null) {
644-
copiedBuilder.channelFactory(channelFactory);
678+
if (datagramChannelFactory != null) {
679+
copiedBuilder.datagramChannelFactory(datagramChannelFactory);
645680
}
646681

647682
copiedBuilder.socketChannelFactory(socketChannelFactory, retryOnTimeout);

resolver-dns/src/test/java/io/netty/resolver/dns/DnsAddressResolverGroupTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void testUseConfiguredEventLoop() throws InterruptedException {
4444
final EventLoop loop = group.next();
4545
DefaultEventLoopGroup defaultEventLoopGroup = new DefaultEventLoopGroup(1);
4646
DnsNameResolverBuilder builder = new DnsNameResolverBuilder()
47-
.eventLoop(loop).channelType(NioDatagramChannel.class);
47+
.eventLoop(loop).datagramChannelType(NioDatagramChannel.class);
4848
DnsAddressResolverGroup resolverGroup = new DnsAddressResolverGroup(builder);
4949
try {
5050
final Promise<?> promise = loop.newPromise();
@@ -77,7 +77,7 @@ public void testSharedDNSCacheAcrossEventLoops() throws InterruptedException, Ex
7777
NioEventLoopGroup group = new NioEventLoopGroup(1);
7878
final EventLoop loop = group.next();
7979
DnsNameResolverBuilder builder = new DnsNameResolverBuilder()
80-
.eventLoop(loop).channelType(NioDatagramChannel.class);
80+
.eventLoop(loop).datagramChannelType(NioDatagramChannel.class);
8181
DnsAddressResolverGroup resolverGroup = new DnsAddressResolverGroup(builder);
8282
DefaultEventLoopGroup defaultEventLoopGroup = new DefaultEventLoopGroup(2);
8383
EventLoop eventLoop1 = defaultEventLoopGroup.next();

resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverBuilderTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class DnsNameResolverBuilderTest {
4040

4141
@BeforeEach
4242
void setUp() {
43-
builder = new DnsNameResolverBuilder(GROUP.next()).channelType(NioDatagramChannel.class);
43+
builder = new DnsNameResolverBuilder(GROUP.next()).datagramChannelType(NioDatagramChannel.class);
4444
}
4545

4646
@AfterEach

resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverClientSubnetTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void testSubnetQuery() throws Exception {
5959

6060
private static DnsNameResolverBuilder newResolver(EventLoopGroup group) {
6161
return new DnsNameResolverBuilder(group.next())
62-
.channelType(NioDatagramChannel.class)
62+
.datagramChannelType(NioDatagramChannel.class)
6363
.nameServerProvider(
6464
new SingletonDnsServerAddressStreamProvider(SocketUtils.socketAddress("8.8.8.8", 53)))
6565
.maxQueriesPerResolve(1)

resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java

+12-12
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ private static DnsNameResolverBuilder newResolver(boolean decodeToUnicode,
396396
TestDnsServer dnsServer) {
397397
DnsNameResolverBuilder builder = new DnsNameResolverBuilder(group.next())
398398
.dnsQueryLifecycleObserverFactory(new TestRecursiveCacheDnsQueryLifecycleObserverFactory())
399-
.channelType(NioDatagramChannel.class)
399+
.datagramChannelType(NioDatagramChannel.class)
400400
.maxQueriesPerResolve(1)
401401
.decodeIdn(decodeToUnicode)
402402
.optResourceEnabled(false)
@@ -1155,7 +1155,7 @@ public void testResolveAllMx() {
11551155
@Test
11561156
public void testResolveAllHostsFile() {
11571157
final DnsNameResolver resolver = new DnsNameResolverBuilder(group.next())
1158-
.channelType(NioDatagramChannel.class)
1158+
.datagramChannelType(NioDatagramChannel.class)
11591159
.hostsFileEntriesResolver(new HostsFileEntriesResolver() {
11601160
@Override
11611161
public InetAddress address(String inetHost, ResolvedAddressTypes resolvedAddressTypes) {
@@ -1243,7 +1243,7 @@ private static void secondDnsServerShouldBeUsedBeforeCNAME(boolean startDnsServe
12431243
DnsNameResolverBuilder builder = new DnsNameResolverBuilder(group.next())
12441244
.dnsQueryLifecycleObserverFactory(lifecycleObserverFactory)
12451245
.resolvedAddressTypes(ResolvedAddressTypes.IPV4_ONLY)
1246-
.channelType(NioDatagramChannel.class)
1246+
.datagramChannelType(NioDatagramChannel.class)
12471247
.queryTimeoutMillis(1000) // We expect timeouts if startDnsServer1 is false
12481248
.optResourceEnabled(false)
12491249
.ndots(1);
@@ -1292,7 +1292,7 @@ public void aAndAAAAQueryShouldTryFirstDnsServerBeforeSecond() throws IOExceptio
12921292
DnsNameResolverBuilder builder = new DnsNameResolverBuilder(group.next())
12931293
.resolvedAddressTypes(ResolvedAddressTypes.IPV4_ONLY)
12941294
.dnsQueryLifecycleObserverFactory(lifecycleObserverFactory)
1295-
.channelType(NioDatagramChannel.class)
1295+
.datagramChannelType(NioDatagramChannel.class)
12961296
.optResourceEnabled(false)
12971297
.ndots(1);
12981298

@@ -2409,15 +2409,15 @@ public void testDnsNameResolverBuilderCopy() {
24092409
ChannelFactory<DatagramChannel> channelFactory =
24102410
new ReflectiveChannelFactory<DatagramChannel>(NioDatagramChannel.class);
24112411
DnsNameResolverBuilder builder = new DnsNameResolverBuilder(group.next())
2412-
.channelFactory(channelFactory);
2412+
.datagramChannelFactory(channelFactory);
24132413
DnsNameResolverBuilder copiedBuilder = builder.copy();
24142414

24152415
// change channel factory does not propagate to previously made copy
24162416
ChannelFactory<DatagramChannel> newChannelFactory =
24172417
new ReflectiveChannelFactory<DatagramChannel>(NioDatagramChannel.class);
2418-
builder.channelFactory(newChannelFactory);
2419-
assertEquals(channelFactory, copiedBuilder.channelFactory());
2420-
assertEquals(newChannelFactory, builder.channelFactory());
2418+
builder.datagramChannelFactory(newChannelFactory);
2419+
assertEquals(channelFactory, copiedBuilder.datagramChannelFactory());
2420+
assertEquals(newChannelFactory, builder.datagramChannelFactory());
24212421
}
24222422

24232423
@Test
@@ -2771,7 +2771,7 @@ public void testResolveACachedWithDotSearchDomain() throws Exception {
27712771
public void testChannelFactoryException() {
27722772
final IllegalStateException exception = new IllegalStateException();
27732773
try {
2774-
newResolver().channelFactory(new ChannelFactory<DatagramChannel>() {
2774+
newResolver().datagramChannelFactory(new ChannelFactory<DatagramChannel>() {
27752775
@Override
27762776
public DatagramChannel newChannel() {
27772777
throw exception;
@@ -3260,7 +3260,7 @@ public DatagramChannel newChannel() {
32603260
return datagramChannel;
32613261
}
32623262
};
3263-
builder.channelFactory(channelFactory);
3263+
builder.datagramChannelFactory(channelFactory);
32643264
if (tcpFallback) {
32653265
// If we are configured to use TCP as a fallback also bind a TCP socket
32663266
serverSocket = startDnsServerAndCreateServerSocket(dnsServer2);
@@ -3423,7 +3423,7 @@ public DatagramChannel newChannel() {
34233423
return datagramChannel;
34243424
}
34253425
};
3426-
builder.channelFactory(channelFactory);
3426+
builder.datagramChannelFactory(channelFactory);
34273427
serverSocket = startDnsServerAndCreateServerSocket(dnsServer2);
34283428
// If we are configured to use TCP as a fallback also bind a TCP socket
34293429
builder.socketChannelType(NioSocketChannel.class, true);
@@ -3507,7 +3507,7 @@ protected DnsMessage filterMessage(DnsMessage message) {
35073507
dnsServer2.localAddress());
35083508
final DnsNameResolver resolver = new DnsNameResolverBuilder(group.next())
35093509
.dnsQueryLifecycleObserverFactory(new TestRecursiveCacheDnsQueryLifecycleObserverFactory())
3510-
.channelType(NioDatagramChannel.class)
3510+
.datagramChannelType(NioDatagramChannel.class)
35113511
.optResourceEnabled(false)
35123512
.nameServerProvider(nameServerProvider)
35133513
.build();

resolver-dns/src/test/java/io/netty/resolver/dns/SearchDomainTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public class SearchDomainTest {
4545

4646
private DnsNameResolverBuilder newResolver() {
4747
return new DnsNameResolverBuilder(group.next())
48-
.channelType(NioDatagramChannel.class)
48+
.datagramChannelType(NioDatagramChannel.class)
4949
.nameServerProvider(new SingletonDnsServerAddressStreamProvider(dnsServer.localAddress()))
5050
.maxQueriesPerResolve(1)
5151
.optResourceEnabled(false)

transport-blockhound-tests/src/test/java/io/netty/util/internal/NettyBlockHoundIntegrationTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ public void testUnixResolverDnsServerAddressStreamProvider_ParseEtcResolverSearc
413413
NioEventLoopGroup group = new NioEventLoopGroup();
414414
try {
415415
DnsNameResolverBuilder builder = new DnsNameResolverBuilder(group.next())
416-
.channelFactory(NioDatagramChannel::new);
416+
.datagramChannelFactory(NioDatagramChannel::new);
417417
doTestParseResolverFilesAllowsBlockingCalls(builder::build);
418418
} finally {
419419
group.shutdownGracefully();

0 commit comments

Comments
 (0)