public static <T extends StatefulConnection<?, ?>> BoundedAsyncPool<T> createBoundedObjectPool(
            Supplier<CompletionStage<T>> connectionSupplier, BoundedPoolConfig config) {
        return createBoundedObjectPool(connectionSupplier, config, true);
    }
public static < T extends StatefulConnection < ? , ? > > BoundedAsyncPool < T > createBoundedObjectPool ( Supplier < CompletionStage < T > > connectionSupplier , BoundedPoolConfig config ) { return createBoundedObjectPool ( connectionSupplier , config , true ) ; }
Creates a new {@link BoundedAsyncPool} using the {@link Supplier}. Allocated instances are wrapped and must not be
returned with {@link AsyncPool#release(Object)}.

@param connectionSupplier must not be {@literal null}.
@param config must not be {@literal null}.
@param <T> connection type.
@return the connection pool.