Class AsyncResponseTransaction

All Implemented Interfaces:

public class AsyncResponseTransaction extends Object implements KeycloakTransaction
When using AsyncResponse.resume(Object) directly in the code, the response is returned before all changes done withing this execution are committed. Therefore we need some mechanism that resumes the AsyncResponse after all changes are successfully committed. This can be achieved by enlisting an instance of AsyncResponseTransaction into the main transaction using KeycloakTransactionManager.enlistAfterCompletion(KeycloakTransaction).
  • Method Details

    • finishAsyncResponseInTransaction

      public static void finishAsyncResponseInTransaction(KeycloakSession session, responseToFinishInTransaction, responseToSend)
      This method creates a new AsyncResponseTransaction instance that resumes provided AsyncResponse responseToFinishInTransaction with given Response responseToSend. The transaction is enlisted to KeycloakTransactionManager.
      session - Current KeycloakSession
      responseToFinishInTransaction - AsyncResponse to be resumed on KeycloakTransactionManager commit/rollback.
      responseToSend - Response to be sent
    • begin

      public void begin()
      Specified by:
      begin in interface KeycloakTransaction
    • commit

      public void commit()
      Specified by:
      commit in interface KeycloakTransaction
    • rollback

      public void rollback()
      Specified by:
      rollback in interface KeycloakTransaction
    • setRollbackOnly

      public void setRollbackOnly()
      Specified by:
      setRollbackOnly in interface KeycloakTransaction
    • getRollbackOnly

      public boolean getRollbackOnly()
      Specified by:
      getRollbackOnly in interface KeycloakTransaction
    • isActive

      public boolean isActive()
      Specified by:
      isActive in interface KeycloakTransaction