/**
  * Construct a new instance with a specified callback executor.
  *
  * @param callbackExecutor an optional executor to invoke user callbacks that otherwise will be
  *     invoked by scheduler executor.
  * @param shutdownCallbackExecutor if true, the callback executor will be shut down when this
  *     factory is shut down
  */
 public HttpClientFactory(ExecutorService callbackExecutor, boolean shutdownCallbackExecutor) {
   this(
       FilterChains.empty(),
       new NioEventLoopGroup(
           0 /* use default settings */, new NamedThreadFactory("R2 Nio Event Loop")),
       true,
       Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory("R2 Netty Scheduler")),
       true,
       callbackExecutor,
       shutdownCallbackExecutor);
 }
 /** Construct a new instance using an empty filter chain. */
 public HttpClientFactory() {
   this(FilterChains.empty());
 }