Class TransactionSynchronizationRegistryWrapper

java.lang.Object
io.quarkus.narayana.jta.runtime.internal.tsr.TransactionSynchronizationRegistryWrapper
All Implemented Interfaces:
jakarta.transaction.TransactionSynchronizationRegistry

public class TransactionSynchronizationRegistryWrapper extends Object implements jakarta.transaction.TransactionSynchronizationRegistry
Agroal registers an interposed synchronization which validates that connections have been released. Components such as hibernate release connections in an interposed synchronization. Therefore, we must ensure that Agroal runs last.

This wrapper re-orders interposed synchronizations as follows: [other, hibernate-orm, agroal].

Synchronizations are placed into groups according to their package name and the groups are ordered which means that all hibernate synchronizations run before Agroal ones and all other synchs run before the hibernate ones.

See AgroalOrderedLastSynchronizationList for details of the re-ordering.

  • Constructor Details

    • TransactionSynchronizationRegistryWrapper

      public TransactionSynchronizationRegistryWrapper(com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple transactionSynchronizationRegistryImple)
  • Method Details

    • registerInterposedSynchronization

      public void registerInterposedSynchronization(jakarta.transaction.Synchronization sync)
      Specified by:
      registerInterposedSynchronization in interface jakarta.transaction.TransactionSynchronizationRegistry
    • getTransactionKey

      public Object getTransactionKey()
      Specified by:
      getTransactionKey in interface jakarta.transaction.TransactionSynchronizationRegistry
    • getTransactionStatus

      public int getTransactionStatus()
      Specified by:
      getTransactionStatus in interface jakarta.transaction.TransactionSynchronizationRegistry
    • getRollbackOnly

      public boolean getRollbackOnly()
      Specified by:
      getRollbackOnly in interface jakarta.transaction.TransactionSynchronizationRegistry
    • setRollbackOnly

      public void setRollbackOnly()
      Specified by:
      setRollbackOnly in interface jakarta.transaction.TransactionSynchronizationRegistry
    • getResource

      public Object getResource(Object key)
      Specified by:
      getResource in interface jakarta.transaction.TransactionSynchronizationRegistry
    • putResource

      public void putResource(Object key, Object value)
      Specified by:
      putResource in interface jakarta.transaction.TransactionSynchronizationRegistry