code: public static ConfigurableConnection create(ConnectionOptions options, Config config, ClassLoader classLoader)
        throws IOException, TimeoutException {
      Assert.notNull(options, "options");
      Assert.notNull(config, "config");
      Assert.notNull(classLoader, CLASS_LOADER_PARAMETER_NAME);
      ConnectionHandler handler = new ConnectionHandler(options.copy(), new Config(config), classLoader);
      ConfigurableConnection proxy = (ConfigurableConnection) Proxy.newProxyInstance(
          classLoader, CONNECTION_TYPES, handler);
      handler.createConnection(proxy);
      return proxy;
    }
docs: Creates and returns a new Lyra managed ConfigurableConnection for the given {@code options} and
  {@code config}. If the connection attempt fails, retries will be performed according to the
  {@link Config#getConnectRetryPolicy() configured RetryPolicy} before throwing the failure.
  
  @throws NullPointerException if {@code options} or {@code config} are null
  @throws IOException if the connection could not be created