# Package org.apache.cayenne.datasource

- Interface Summary
  Interface | Description
  --- | ---
  PoolingDataSource | A `DataSource` that pools connections and requires to be explicitly closed.

- Class Summary
  Class | Description
  --- | ---
  DataSourceBuilder | A builder class that allows to build a `DataSource` with optional pooling.
  DriverDataSource | A non-pooling DataSource implementation wrapping a JDBC driver.
  ManagedPoolingDataSource | A wrapper for `UnmanagedPoolingDataSource` that automatically manages the underlying connection pool size.
  PoolAwareConnection | A `Connection` wrapper that interacts with the `UnmanagedPoolingDataSource`, allowing to recycle connections and track failures.
  PoolingDataSourceBuilder | Turns unpooled DataSource to a connection pool.
  PoolingDataSourceParameters | A collection of pooling parameters used by `UnmanagedPoolingDataSource`.
  UnmanagedPoolingDataSource | A non-blocking `DataSource` with a pool of connections.

- Exception Summary
  Exception | Description
  --- | ---
  BadValidationQueryException | Thrown when the pool fails to validate a fresh connection that is known to be in a good state.
  UnmanagedPoolingDataSource.ConnectionUnavailableException | An exception indicating that a connection request waiting in the queue timed out and was unable to obtain a connection.