Example usage for org.springframework.transaction.reactive TransactionSynchronizationManager initSynchronization

List of usage examples for org.springframework.transaction.reactive TransactionSynchronizationManager initSynchronization

Introduction

In this page you can find the example usage for org.springframework.transaction.reactive TransactionSynchronizationManager initSynchronization.

Prototype

public void initSynchronization() throws IllegalStateException 

Source Link

Document

Activate transaction synchronization for the current context.

Usage

From source file:org.springframework.transaction.reactive.AbstractReactiveTransactionManager.java

/**
 * Initialize transaction synchronization as appropriate.
 *///  ww  w  . j av  a2 s  .co m
private void prepareSynchronization(TransactionSynchronizationManager synchronizationManager,
        GenericReactiveTransaction status, TransactionDefinition definition) {

    if (status.isNewSynchronization()) {
        synchronizationManager.setActualTransactionActive(status.hasTransaction());
        synchronizationManager.setCurrentTransactionIsolationLevel(
                definition.getIsolationLevel() != TransactionDefinition.ISOLATION_DEFAULT
                        ? definition.getIsolationLevel()
                        : null);
        synchronizationManager.setCurrentTransactionReadOnly(definition.isReadOnly());
        synchronizationManager.setCurrentTransactionName(definition.getName());
        synchronizationManager.initSynchronization();
    }
}

From source file:org.springframework.transaction.reactive.AbstractReactiveTransactionManager.java

/**
 * Reactivate transaction synchronization for the current transaction context
 * and resume all given synchronizations.
 * @param synchronizationManager the synchronization manager bound to the current transaction
 * @param suspendedSynchronizations a List of TransactionSynchronization objects
 *//*from  ww w  .  j a va 2  s.com*/
private Mono<Void> doResumeSynchronization(TransactionSynchronizationManager synchronizationManager,
        List<TransactionSynchronization> suspendedSynchronizations) {

    synchronizationManager.initSynchronization();
    return Flux.fromIterable(suspendedSynchronizations)
            .concatMap(synchronization -> synchronization.resume()
                    .doOnSuccess(ignore -> synchronizationManager.registerSynchronization(synchronization)))
            .then();
}