code: public ListenableFuture<Connection> getAsyncConnection(){
  
  		return this.asyncExecutor.submit(new Callable<Connection>() {
  
  			public Connection call() throws Exception {
  				return getConnection();
  			}});
  	}
docs: Obtain a connection asynchronously by queueing a request to obtain a connection in a separate thread.
  
  Use as follows:<p>
  Future&lt;Connection&gt; result = pool.getAsyncConnection();<p>
  ... do something else in your application here ...<p>
  Connection connection = result.get(); // get the connection<p>
  
  @return A Future task returning a connection.