public interface ConnectionFactory
Connection
.
Implementors are required to make the implementation of this interface thread-safe.
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.CompletionStage<Connection> |
getConnection()
Returns a
CompletionStage of a Connection . |
java.util.concurrent.CompletionStage<Connection> |
getConnection(java.time.Duration timeout)
Returns a
CompletionStage of a Connection . |
java.util.concurrent.CompletionStage<java.lang.Void> |
shutdown()
Shuts down this connection factory.
|
<T> java.util.concurrent.CompletionStage<T> |
withConnection(java.time.Duration connGetTimeout,
ThrowingFunction<Connection,java.util.concurrent.CompletionStage<T>> body)
Executes a function in a context of a connection.
|
<T> java.util.concurrent.CompletionStage<T> |
withConnection(ThrowingFunction<Connection,java.util.concurrent.CompletionStage<T>> body)
Executes a function in a context of a connection.
|
<T> java.util.concurrent.CompletionStage<T> |
withTransaction(java.time.Duration txManageTimeout,
ThrowingFunction<Connection,java.util.concurrent.CompletionStage<T>> body)
Executes a function in a context of a transaction.
|
<T> java.util.concurrent.CompletionStage<T> |
withTransaction(ThrowingFunction<Connection,java.util.concurrent.CompletionStage<T>> body)
Executes a function in a context of a transaction.
|
java.util.concurrent.CompletionStage<Connection> getConnection()
CompletionStage
of a Connection
.java.util.concurrent.CompletionStage<Connection> getConnection(java.time.Duration timeout)
CompletionStage
of a Connection
.<T> java.util.concurrent.CompletionStage<T> withConnection(ThrowingFunction<Connection,java.util.concurrent.CompletionStage<T>> body)
Executes a function in a context of
a connection obtained via connection
method, and releases
the connection afterwards.
<T> java.util.concurrent.CompletionStage<T> withConnection(java.time.Duration connGetTimeout, ThrowingFunction<Connection,java.util.concurrent.CompletionStage<T>> body)
Executes a function in a context of
a connection obtained via connection
method, and releases
the connection afterwards.
connGetTimeout
- Timeout for obtaining new connection.<T> java.util.concurrent.CompletionStage<T> withTransaction(ThrowingFunction<Connection,java.util.concurrent.CompletionStage<T>> body)
Executes a function in a context
of a connection obtained via connection
method. Before the function is
executed, transaction is started. After the function finishes, transaction
is committed in case of a success and rolled back in case of a
failure - after that, the connection is released.
<T> java.util.concurrent.CompletionStage<T> withTransaction(java.time.Duration txManageTimeout, ThrowingFunction<Connection,java.util.concurrent.CompletionStage<T>> body)
Executes a function in a context
of a connection obtained via connection
method. Before the function is
executed, transaction is started. After the function finishes, transaction
is committed in case of a success and rolled back in case of a
failure - after that, the connection is released.
txManageTimeout
- Timeout for operations managing transaction state.java.util.concurrent.CompletionStage<java.lang.Void> shutdown()
Returned CompletionStage
never fails - it completes on finished shutdown attempt.
After the factory is shut down it is illegal to request new connections from it.