org.springframework.transaction.support

## Class TransactionSynchronizationUtils

- java.lang.Object
- - org.springframework.transaction.support.TransactionSynchronizationUtils

-     public abstract class TransactionSynchronizationUtils
      extends Object

  Utility methods for triggering specific `TransactionSynchronization` callback methods on all currently registered synchronizations.
  Since:
    2.0
  Author:
    Juergen Hoeller
  See Also:
    `TransactionSynchronization`, `TransactionSynchronizationManager.getSynchronizations()`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TransactionSynchronizationUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `invokeAfterCommit(List<TransactionSynchronization> synchronizations)` Actually invoke the `afterCommit` methods of the given Spring TransactionSynchronization objects.
    `static void` | `invokeAfterCompletion(List<TransactionSynchronization> synchronizations, int completionStatus)` Actually invoke the `afterCompletion` methods of the given Spring TransactionSynchronization objects.
    `static boolean` | `sameResourceFactory(ResourceTransactionManager tm, Object resourceFactory)` Check whether the given resource transaction manager refers to the given (underlying) resource factory.
    `static void` | `triggerAfterCommit()` Trigger `afterCommit` callbacks on all currently registered synchronizations.
    `static void` | `triggerAfterCompletion(int completionStatus)` Trigger `afterCompletion` callbacks on all currently registered synchronizations.
    `static void` | `triggerBeforeCommit(boolean readOnly)` Trigger `beforeCommit` callbacks on all currently registered synchronizations.
    `static void` | `triggerBeforeCompletion()` Trigger `beforeCompletion` callbacks on all currently registered synchronizations.
    `static void` | `triggerFlush()` Trigger `flush` callbacks on all currently registered synchronizations.
    `static Object` | `unwrapResourceIfNecessary(Object resource)` Unwrap the given resource handle if necessary; otherwise return the given handle as-is.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TransactionSynchronizationUtils

          public TransactionSynchronizationUtils()

  - ### Method Detail

    - #### sameResourceFactory

          public static boolean sameResourceFactory(ResourceTransactionManager tm,
                                                    Object resourceFactory)

      Check whether the given resource transaction manager refers to the given (underlying) resource factory.
      See Also:
        `ResourceTransactionManager.getResourceFactory()`, `InfrastructureProxy.getWrappedObject()`

    - #### unwrapResourceIfNecessary

          public static Object unwrapResourceIfNecessary(Object resource)

      Unwrap the given resource handle if necessary; otherwise return the given handle as-is.
      Since:
        5.3.4
      See Also:
        `InfrastructureProxy.getWrappedObject()`

    - #### triggerFlush

          public static void triggerFlush()

      Trigger `flush` callbacks on all currently registered synchronizations.
      Throws:
        `RuntimeException` - if thrown by a `flush` callback
      See Also:
        `TransactionSynchronization.flush()`

    - #### triggerBeforeCommit

          public static void triggerBeforeCommit(boolean readOnly)

      Trigger `beforeCommit` callbacks on all currently registered synchronizations.
      Parameters:
        `readOnly` - whether the transaction is defined as read-only transaction
      Throws:
        `RuntimeException` - if thrown by a `beforeCommit` callback
      See Also:
        `TransactionSynchronization.beforeCommit(boolean)`

    - #### triggerBeforeCompletion

          public static void triggerBeforeCompletion()

      Trigger `beforeCompletion` callbacks on all currently registered synchronizations.
      See Also:
        `TransactionSynchronization.beforeCompletion()`

    - #### triggerAfterCommit

          public static void triggerAfterCommit()

      Trigger `afterCommit` callbacks on all currently registered synchronizations.
      Throws:
        `RuntimeException` - if thrown by a `afterCommit` callback
      See Also:
        `TransactionSynchronizationManager.getSynchronizations()`, `TransactionSynchronization.afterCommit()`

    - #### invokeAfterCommit

          public static void invokeAfterCommit(@Nullable
                                               List<TransactionSynchronization> synchronizations)

      Actually invoke the `afterCommit` methods of the given Spring TransactionSynchronization objects.
      Parameters:
        `synchronizations` - a List of TransactionSynchronization objects
      See Also:
        `TransactionSynchronization.afterCommit()`

    - #### triggerAfterCompletion

          public static void triggerAfterCompletion(int completionStatus)

      Trigger `afterCompletion` callbacks on all currently registered synchronizations.
      Parameters:
        `completionStatus` - the completion status according to the constants in the TransactionSynchronization interface
      See Also:
        `TransactionSynchronizationManager.getSynchronizations()`, `TransactionSynchronization.afterCompletion(int)`, `TransactionSynchronization.STATUS_COMMITTED`, `TransactionSynchronization.STATUS_ROLLED_BACK`, `TransactionSynchronization.STATUS_UNKNOWN`

    - #### invokeAfterCompletion

          public static void invokeAfterCompletion(@Nullable
                                                   List<TransactionSynchronization> synchronizations,
                                                   int completionStatus)

      Actually invoke the `afterCompletion` methods of the given Spring TransactionSynchronization objects.
      Parameters:
        `synchronizations` - a List of TransactionSynchronization objects
        `completionStatus` - the completion status according to the constants in the TransactionSynchronization interface
      See Also:
        `TransactionSynchronization.afterCompletion(int)`, `TransactionSynchronization.STATUS_COMMITTED`, `TransactionSynchronization.STATUS_ROLLED_BACK`, `TransactionSynchronization.STATUS_UNKNOWN`