@Override
    protected AddressResolver<InetSocketAddress> newResolver(EventExecutor executor) throws Exception {
        assert executor instanceof EventLoop;
        final EventLoop eventLoop = (EventLoop) executor;
        final DnsNameResolverBuilder builder = new DnsNameResolverBuilder(eventLoop);
        if (resolvedAddressTypes != null) {
            builder.resolvedAddressTypes(resolvedAddressTypes);
        }
        resolverConfigurator.accept(builder);
        final DefaultDnsResolver resolver = DefaultDnsResolver.of(builder.build(), dnsResolverCache, executor,
                                                                  searchDomains, ndots, queryTimeoutMillis,
                                                                  hostsFileEntriesResolver);
        return new RefreshingAddressResolver(eventLoop, resolver, dnsRecordTypes, addressResolverCache,
                                             dnsResolverCache, negativeTtl, autoRefresh,
                                             autoRefreshBackoff, autoRefreshTimeoutFunction);
    }
Creates and manages refreshing {@link AddressResolver}s and the DNS cache.
core/src/main/java/com/linecorp/armeria/client/RefreshingAddressResolverGroup.java