Now properly restoring Thread interrupted state on InterruptedException.
Now supports Java 9+ modules with included module-info.class.
Maven artifact relocated from com.aoindustries:ao-sql-pool to com.aoapps:ao-sql-pool.
Package renamed from com.aoindustries.sql.pool to com.aoapps.sql.pool.
New project split from AO Hodgepodge for legacy AO JDBC
Now logs SQLWarning before both reset and/or close.
Previously, warnings were only logged on reset.
Now rolls-back transaction when connection is not auto-commit
during both reset and close. This is done to not rely on underlying JDBC driver
implementation specifics, and to always rollback a transaction unless explicitly
New static methods defaultLogConnection(Connection, Logger) and
defaultResetConnection(Connection), which can be used to log and reset
connections in a compatible way.
New constant IDLE_READ_ONLY that defines the read-only state of connections
when reset, set to true. Connections are reset when first created and before
being released back to the pool. Previously, various parts of the code would assume reset
to read-only - this centralizes that assumption.
Deprecated AOPool.releaseConnection(C) in favor of
AutoCloseable.close() for use in try-with-resources:
New protected method AOPool.release(C) that performs the release.
Every pooled object must now implement AutoCloseable in a way that
results in a call to AOPool.release(C) without the underlying
Internally uses the new AO SQL Tracker project to
a close all connection-related resources before returning to the pool.
Connections from AOConnectionPool may now be safely shared between threads.
When a connection is shared between threads, the maxConnections calculation,
along with associated warnings and constraints, is relative to the allocating thread.