DnsAddressResolverGroupTest Class — netty Architecture
Architecture documentation for the DnsAddressResolverGroupTest class in DnsAddressResolverGroupTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 7de44a2b_93e5_48a5_c515_7968f4e2b9e0["DnsAddressResolverGroupTest"] 72eb81d4_18b7_5732_ea47_8b087acd92ae["DnsAddressResolverGroupTest.java"] 7de44a2b_93e5_48a5_c515_7968f4e2b9e0 -->|defined in| 72eb81d4_18b7_5732_ea47_8b087acd92ae 17ad9576_75c4_5cdb_b86b_aa07026d7c42["testUseConfiguredEventLoop()"] 7de44a2b_93e5_48a5_c515_7968f4e2b9e0 -->|method| 17ad9576_75c4_5cdb_b86b_aa07026d7c42 9f99cb47_90bc_f4d4_7c6e_f22e5c818709["testSharedDNSCacheAcrossEventLoops()"] 7de44a2b_93e5_48a5_c515_7968f4e2b9e0 -->|method| 9f99cb47_90bc_f4d4_7c6e_f22e5c818709 35749a68_0504_eb58_9876_d08a56ea8070["InetAddress()"] 7de44a2b_93e5_48a5_c515_7968f4e2b9e0 -->|method| 35749a68_0504_eb58_9876_d08a56ea8070
Relationship Graph
Source Code
resolver-dns/src/test/java/io/netty/resolver/dns/DnsAddressResolverGroupTest.java lines 41–115
public class DnsAddressResolverGroupTest {
@Test
public void testUseConfiguredEventLoop() throws InterruptedException {
EventLoopGroup group = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory());
final EventLoop loop = group.next();
EventLoopGroup defaultEventLoopGroup = new MultiThreadIoEventLoopGroup(1, LocalIoHandler.newFactory());
DnsNameResolverBuilder builder = new DnsNameResolverBuilder()
.eventLoop(loop).datagramChannelType(NioDatagramChannel.class);
DnsAddressResolverGroup resolverGroup = new DnsAddressResolverGroup(builder);
try {
final Promise<?> promise = loop.newPromise();
AddressResolver<?> resolver = resolverGroup.getResolver(defaultEventLoopGroup.next());
resolver.resolve(new SocketAddress() {
private static final long serialVersionUID = 3169703458729818468L;
}).addListener((FutureListener<Object>) future -> {
try {
assertInstanceOf(UnsupportedAddressTypeException.class, future.cause());
assertTrue(loop.inEventLoop());
promise.setSuccess(null);
} catch (Throwable cause) {
promise.setFailure(cause);
}
}).await();
promise.sync();
} finally {
resolverGroup.close();
group.shutdownGracefully();
defaultEventLoopGroup.shutdownGracefully();
}
}
@Test
public void testSharedDNSCacheAcrossEventLoops() throws InterruptedException, ExecutionException {
MultiThreadIoEventLoopGroup group = new MultiThreadIoEventLoopGroup(1, NioIoHandler.newFactory());
final EventLoop loop = group.next();
DnsNameResolverBuilder builder = new DnsNameResolverBuilder()
.eventLoop(loop).datagramChannelType(NioDatagramChannel.class);
DnsAddressResolverGroup resolverGroup = new DnsAddressResolverGroup(builder);
EventLoopGroup defaultEventLoopGroup = new MultiThreadIoEventLoopGroup(1, LocalIoHandler.newFactory());
EventLoop eventLoop1 = defaultEventLoopGroup.next();
EventLoop eventLoop2 = defaultEventLoopGroup.next();
try {
final Promise<InetSocketAddress> promise1 = loop.newPromise();
InetSocketAddressResolver resolver1 = (InetSocketAddressResolver) resolverGroup.getResolver(eventLoop1);
InetAddress address1 =
resolve(resolver1, InetSocketAddress.createUnresolved("netty.io", 80), promise1);
final Promise<InetSocketAddress> promise2 = loop.newPromise();
InetSocketAddressResolver resolver2 = (InetSocketAddressResolver) resolverGroup.getResolver(eventLoop2);
InetAddress address2 =
resolve(resolver2, InetSocketAddress.createUnresolved("netty.io", 80), promise2);
assertSame(address1, address2);
} finally {
resolverGroup.close();
group.shutdownGracefully();
defaultEventLoopGroup.shutdownGracefully();
}
}
private InetAddress resolve(InetSocketAddressResolver resolver, SocketAddress socketAddress,
final Promise<InetSocketAddress> promise)
throws InterruptedException, ExecutionException {
resolver.resolve(socketAddress)
.addListener((FutureListener<InetSocketAddress>) future -> {
try {
promise.setSuccess(future.get());
} catch (Throwable cause) {
promise.setFailure(cause);
}
}).await();
promise.sync();
InetSocketAddress inetSocketAddress = promise.get();
return inetSocketAddress.getAddress();
}
}
Source
Frequently Asked Questions
What is the DnsAddressResolverGroupTest class?
DnsAddressResolverGroupTest is a class in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsAddressResolverGroupTest.java.
Where is DnsAddressResolverGroupTest defined?
DnsAddressResolverGroupTest is defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsAddressResolverGroupTest.java at line 41.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free