code: public ClientFactory build() {
          final Function<? super EventLoopGroup,
                         ? extends AddressResolverGroup<? extends InetSocketAddress>> addressResolverGroupFactory;
          if (this.addressResolverGroupFactory != null) {
              addressResolverGroupFactory = this.addressResolverGroupFactory;
          } else {
              addressResolverGroupFactory = new DefaultAddressResolverGroupFactory(
                      firstNonNull(domainNameResolverCustomizers, ImmutableList.of()));
          }
  
          return new DefaultClientFactory(new HttpClientFactory(
                  workerGroup, shutdownWorkerGroupOnClose, channelOptions, sslContextCustomizer,
                  addressResolverGroupFactory, http2InitialConnectionWindowSize, http2InitialStreamWindowSize,
                  http2MaxFrameSize, http2MaxHeaderListSize, http1MaxInitialLineLength, http1MaxHeaderSize,
                  http1MaxChunkSize, idleTimeoutMillis, useHttp2Preface,
                  useHttp1Pipelining, connectionPoolListener, meterRegistry));
      }
docs: Returns a newly-created {@link ClientFactory} based on the properties of this builder.