Package io.micronaut.transaction.support
Class AbstractReactorTransactionOperations<C>
java.lang.Object
io.micronaut.transaction.support.AbstractReactorTransactionOperations<C>
- Type Parameters:
C- The connection type
- All Implemented Interfaces:
ReactiveTransactionOperations<C>,ReactorReactiveTransactionOperations<C>
@Internal
public abstract class AbstractReactorTransactionOperations<C>
extends Object
implements ReactorReactiveTransactionOperations<C>
Abstract Reactor transaction operations.
- Since:
- 4.0.0
- Author:
- Denis Stepanov
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static final classRepresents the current reactive transaction status.Nested classes/interfaces inherited from interface io.micronaut.transaction.reactive.ReactiveTransactionOperations
ReactiveTransactionOperations.TransactionalCallback<C,T> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractReactorTransactionOperations(ReactorConnectionOperations<C> connectionOperations) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract @NonNull org.reactivestreams.Publisher<Void>beginTransaction(@NonNull ConnectionStatus<C> connectionStatus, @NonNull TransactionDefinition transactionDefinition) protected abstract @NonNull org.reactivestreams.Publisher<Void>commitTransaction(@NonNull ConnectionStatus<C> connectionStatus, @NonNull TransactionDefinition transactionDefinition) protected @NonNull org.reactivestreams.Publisher<Void>doCancel(@NonNull AbstractReactorTransactionOperations.DefaultReactiveTransactionStatus<C> status) Cancels the TX operation.protected <R> @NonNull reactor.core.publisher.Flux<R>executeCallbackFlux(@NonNull ReactiveTransactionStatus<C> status, @NonNull ReactiveTransactionOperations.TransactionalCallback<C, R> handler) Execute the callback.protected <R> @NonNull reactor.core.publisher.Mono<R>executeCallbackMono(@NonNull ReactiveTransactionStatus<C> status, @NonNull Function<ReactiveTransactionStatus<C>, reactor.core.publisher.Mono<R>> handler) Execute the callback.protected <R> @NonNull reactor.core.publisher.Flux<R>executeTransactionFlux(@NonNull AbstractReactorTransactionOperations.DefaultReactiveTransactionStatus<C> txStatus, @NonNull ReactiveTransactionOperations.TransactionalCallback<C, R> handler) Execute the transaction.protected <R> @NonNull reactor.core.publisher.Mono<R>executeTransactionMono(@NonNull AbstractReactorTransactionOperations.DefaultReactiveTransactionStatus<C> txStatus, @NonNull Function<ReactiveTransactionStatus<C>, reactor.core.publisher.Mono<R>> handler) Execute the transaction.final Optional<ReactiveTransactionStatus<C>>findTransactionStatus(reactor.util.context.ContextView contextView) Retrieve the transaction status associated to the current transaction manager from the Reactor context.final TransactionDefinitiongetTransactionDefinition(reactor.util.context.ContextView contextView) Retrieve the transaction definition associated to the current transaction from the Reactor context.final ReactiveTransactionStatus<C>getTransactionStatus(reactor.util.context.ContextView contextView) Retrieve the transaction status associated to the current transaction manager from the Reactor context.protected abstract @NonNull org.reactivestreams.Publisher<Void>rollbackTransaction(@NonNull ConnectionStatus<C> connectionStatus, @NonNull TransactionDefinition transactionDefinition) final <T> @NonNull reactor.core.publisher.Flux<T>withTransaction(@NonNull TransactionDefinition definition, @NonNull ReactiveTransactionOperations.TransactionalCallback<C, T> handler) Execute the given handler with a new transaction.protected <T> reactor.core.publisher.Flux<T>withTransactionFlux(ReactiveTransactionStatus<C> transactionStatus, TransactionDefinition definition, ReactiveTransactionOperations.TransactionalCallback<C, T> handler) Execute the transaction with provided transaction status.<T> reactor.core.publisher.Mono<T>withTransactionMono(TransactionDefinition definition, Function<ReactiveTransactionStatus<C>, reactor.core.publisher.Mono<T>> handler) Execute the given handler with a new transaction.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.transaction.reactive.ReactorReactiveTransactionOperations
withTransaction, withTransactionFlux, withTransactionFlux, withTransactionMono
-
Constructor Details
-
AbstractReactorTransactionOperations
protected AbstractReactorTransactionOperations(@Parameter ReactorConnectionOperations<C> connectionOperations)
-
-
Method Details
-
beginTransaction
@NonNull protected abstract @NonNull org.reactivestreams.Publisher<Void> beginTransaction(@NonNull @NonNull ConnectionStatus<C> connectionStatus, @NonNull @NonNull TransactionDefinition transactionDefinition) -
commitTransaction
@NonNull protected abstract @NonNull org.reactivestreams.Publisher<Void> commitTransaction(@NonNull @NonNull ConnectionStatus<C> connectionStatus, @NonNull @NonNull TransactionDefinition transactionDefinition) -
rollbackTransaction
@NonNull protected abstract @NonNull org.reactivestreams.Publisher<Void> rollbackTransaction(@NonNull @NonNull ConnectionStatus<C> connectionStatus, @NonNull @NonNull TransactionDefinition transactionDefinition) -
findTransactionStatus
public final Optional<ReactiveTransactionStatus<C>> findTransactionStatus(reactor.util.context.ContextView contextView) Description copied from interface:ReactorReactiveTransactionOperationsRetrieve the transaction status associated to the current transaction manager from the Reactor context.- Specified by:
findTransactionStatusin interfaceReactorReactiveTransactionOperations<C>- Parameters:
contextView- The context view- Returns:
- the key
-
getTransactionStatus
public final ReactiveTransactionStatus<C> getTransactionStatus(reactor.util.context.ContextView contextView) Description copied from interface:ReactorReactiveTransactionOperationsRetrieve the transaction status associated to the current transaction manager from the Reactor context.- Specified by:
getTransactionStatusin interfaceReactorReactiveTransactionOperations<C>- Parameters:
contextView- The context view- Returns:
- the key
-
getTransactionDefinition
public final TransactionDefinition getTransactionDefinition(reactor.util.context.ContextView contextView) Description copied from interface:ReactorReactiveTransactionOperationsRetrieve the transaction definition associated to the current transaction from the Reactor context.- Specified by:
getTransactionDefinitionin interfaceReactorReactiveTransactionOperations<C>- Parameters:
contextView- The context view- Returns:
- the key
-
withTransaction
@NonNull public final <T> @NonNull reactor.core.publisher.Flux<T> withTransaction(@NonNull @NonNull TransactionDefinition definition, @NonNull @NonNull ReactiveTransactionOperations.TransactionalCallback<C, T> handler) Description copied from interface:ReactiveTransactionOperationsExecute the given handler with a new transaction.- Specified by:
withTransactionin interfaceReactiveTransactionOperations<C>- Specified by:
withTransactionin interfaceReactorReactiveTransactionOperations<C>- Type Parameters:
T- The emitted type- Parameters:
definition- The definitionhandler- The handler- Returns:
- A publisher that emits the result type
-
withTransactionFlux
protected <T> reactor.core.publisher.Flux<T> withTransactionFlux(ReactiveTransactionStatus<C> transactionStatus, TransactionDefinition definition, ReactiveTransactionOperations.TransactionalCallback<C, T> handler) Execute the transaction with provided transaction status.- Type Parameters:
T- The transaction type- Parameters:
transactionStatus- The transaction statusdefinition- The definitionhandler- The handler- Returns:
- The published result
-
withTransactionMono
public <T> reactor.core.publisher.Mono<T> withTransactionMono(TransactionDefinition definition, Function<ReactiveTransactionStatus<C>, reactor.core.publisher.Mono<T>> handler) Description copied from interface:ReactorReactiveTransactionOperationsExecute the given handler with a new transaction.- Specified by:
withTransactionMonoin interfaceReactorReactiveTransactionOperations<C>- Type Parameters:
T- The emitted type- Parameters:
definition- The definitionhandler- The handler- Returns:
- A publisher that emits the result type
-
executeTransactionFlux
@NonNull protected <R> @NonNull reactor.core.publisher.Flux<R> executeTransactionFlux(@NonNull @NonNull AbstractReactorTransactionOperations.DefaultReactiveTransactionStatus<C> txStatus, @NonNull @NonNull ReactiveTransactionOperations.TransactionalCallback<C, R> handler) Execute the transaction.- Type Parameters:
R- The callback result type- Parameters:
txStatus- The transaction statushandler- The callback- Returns:
- The callback result
-
executeTransactionMono
@NonNull protected <R> @NonNull reactor.core.publisher.Mono<R> executeTransactionMono(@NonNull @NonNull AbstractReactorTransactionOperations.DefaultReactiveTransactionStatus<C> txStatus, @NonNull @NonNull Function<ReactiveTransactionStatus<C>, reactor.core.publisher.Mono<R>> handler) Execute the transaction.- Type Parameters:
R- The callback result type- Parameters:
txStatus- The transaction statushandler- The callback- Returns:
- The callback result
-
executeCallbackFlux
@NonNull protected <R> @NonNull reactor.core.publisher.Flux<R> executeCallbackFlux(@NonNull @NonNull ReactiveTransactionStatus<C> status, @NonNull @NonNull ReactiveTransactionOperations.TransactionalCallback<C, R> handler) Execute the callback.- Type Parameters:
R- The callback result type- Parameters:
status- The transaction statushandler- The callback- Returns:
- The callback result
-
executeCallbackMono
@NonNull protected <R> @NonNull reactor.core.publisher.Mono<R> executeCallbackMono(@NonNull @NonNull ReactiveTransactionStatus<C> status, @NonNull @NonNull Function<ReactiveTransactionStatus<C>, reactor.core.publisher.Mono<R>> handler) Execute the callback.- Type Parameters:
R- The callback result type- Parameters:
status- The transaction statushandler- The callback- Returns:
- The callback result
-
doCancel
@NonNull protected @NonNull org.reactivestreams.Publisher<Void> doCancel(@NonNull @NonNull AbstractReactorTransactionOperations.DefaultReactiveTransactionStatus<C> status) Cancels the TX operation.- Parameters:
status- The TX status- Returns:
- the canceling publisher
-