Interface Transaction

All Known Implementing Classes:
ReadOnlyTransaction

public interface Transaction
The Fedora Transaction abstraction
Author:
mohideen
  • Method Details

    • commit

      void commit()
      Commit the transaction
    • commitIfShortLived

      Commit the transaction only if the transaction is shortLived
    • isCommitted

      boolean isCommitted()
      Returns:
      returns true if this transaction has already been committed
    • rollback

      void rollback()
      Rollback the transaction
    • fail

      void fail()
      Marks the transaction as failed. Failed transactions cannot be committed but may be rolledback.
    • isRolledBack

      boolean isRolledBack()
      Returns:
      true if this transaction has been rolled back
    • isOpenLongRunning

      Returns:
      true if the tx is a long-running tx that has not expired and is not in a COMMITTED, ROLLEDBACK, or FAILED state
    • isOpen

      boolean isOpen()
      Returns:
      true if the tx is in an OPEN state and has not expired
    • ensureCommitting

      Throws an exception if the tx is not in a COMMITTING state
      Throws:
      TransactionRuntimeException - when not in committing
    • isReadOnly

      boolean isReadOnly()
      Returns:
      true the tx is read-only
    • getId

      Get the transaction id
      Returns:
      the transaction id.
    • isShortLived

      boolean isShortLived()
      Check if the transaction is short-lived.
      Returns:
      is the transaction short-lived.
    • setShortLived

      void setShortLived(boolean shortLived)
      Set transaction short-lived state.
      Parameters:
      shortLived - boolean true (short-lived) or false (not short-lived)
    • expire

      void expire()
      Expire a transaction
    • hasExpired

      boolean hasExpired()
      Has the transaction expired?
      Returns:
      true if expired
    • updateExpiry

      Update the expiry by the provided amount
      Parameters:
      amountToAdd - the amount of time to add
      Returns:
      the new expiration date
    • getExpires

      Get the date this session expires
      Returns:
      expiration date, if one exists
    • refresh

      void refresh()
      Refresh the transaction to extend its expiration window.
    • lockResource

      void lockResource(FedoraId resourceId)
      Acquires an exclusive lock on the specified resource for this transaction.
      Parameters:
      resourceId - the resource to lock
      Throws:
      ConcurrentUpdateException - if the lock cannot be acquired
    • lockResourceNonExclusive

      Acquires a non-exclusive lock on the specified resource for this transaction.
      Parameters:
      resourceId - the resource to lock
      Throws:
      ConcurrentUpdateException - if the lock cannot be acquired
    • lockResourceAndGhostNodes

      Acquire an exclusive lock on the specified resource and any ghost nodes above it for this transaction.
      Parameters:
      resourceId - the resource to lock
      Throws:
      ConcurrentUpdateException - if the lock cannot be acquired
    • releaseResourceLocksIfShortLived

      Releases any resource locks held by the transaction if the session is short-lived. This method should always be called after handling a request, regardless of the outcome, so that any held locks are released immediately without having to wait for the short-lived transaction to expire.
    • doInTx

      void doInTx(Runnable runnable)
      Executes the runnable within the tx. While there are active runnables being executed, the tx may not be committed or rolledback. Runnables may only be executed when the tx is in an OPEN state and has not expired.
      Parameters:
      runnable - the code to execute within the tx
    • setBaseUri

      void setBaseUri(String baseUri)
      Sets the baseUri on the transaction
      Parameters:
      baseUri - the baseUri of the requests
    • setUserAgent

      void setUserAgent(String userAgent)
      Sets the user-agent on the transaction
      Parameters:
      userAgent - the request's user-agent
    • suppressEvents

      After invoking, any accumulated events will be suppressed.