Package org.alfresco.service.transaction
Interface TransactionService
-
- All Known Implementing Classes:
DummyTransactionService,TransactionServiceImpl
public interface TransactionServiceContract for retrieving access to a user transaction.Note that the implementation of the
javax.transaction.UserTransactionis not able to provide the full set of status codes available on thejavax.transaction.Statusclass.- Author:
- David Caruana
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleangetAllowWrite()Determine if the repository has been put into read only mode.javax.transaction.UserTransactiongetNonPropagatingUserTransaction()Gets a user transaction that ensures a new transaction is created.javax.transaction.UserTransactiongetNonPropagatingUserTransaction(boolean readOnly)Gets a user transaction that ensures a new transaction is created.javax.transaction.UserTransactiongetNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)Gets a user transaction that ensures a new transaction is created.RetryingTransactionHelpergetRetryingTransactionHelper()Get the standard instance of the helper object that supports transaction retrying.javax.transaction.UserTransactiongetUserTransaction()Gets a user transaction that supports transaction propagation.javax.transaction.UserTransactiongetUserTransaction(boolean readOnly)Gets a user transaction that supports transaction propagation.javax.transaction.UserTransactiongetUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)Gets a user transaction that supports transaction propagation.booleanisReadOnly()Determine if ALL user transactions will be read-only.
-
-
-
Method Detail
-
getAllowWrite
boolean getAllowWrite()
Determine if the repository has been put into read only mode. This is independent of the current user.- Returns:
- true if the repository is allowed to perform write operations
-
isReadOnly
@NotAuditable boolean isReadOnly()
Determine if ALL user transactions will be read-only. The 'System' user is always allowed to write.- Returns:
- Returns true if all transactions are read-only AND the current user is not the 'System' user.
-
getUserTransaction
@NotAuditable javax.transaction.UserTransaction getUserTransaction()
Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Returns:
- the user transaction
-
getUserTransaction
@NotAuditable javax.transaction.UserTransaction getUserTransaction(boolean readOnly)
Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Parameters:
readOnly- Set true for a READONLY transaction instance, false otherwise. Note that it is not always possible to force a write transaction if the system is in read-only mode.- Returns:
- the user transaction
-
getUserTransaction
@NotAuditable javax.transaction.UserTransaction getUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Parameters:
readOnly- Set true for a READONLY transaction instance, false otherwise.ignoreSystemReadOnly- true to force the read-only flag to be respected regardless of the system read-only mode.- Returns:
- the user transaction
-
getNonPropagatingUserTransaction
@NotAuditable javax.transaction.UserTransaction getNonPropagatingUserTransaction()
Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.- Returns:
- Returns a non-propagating user transaction
-
getNonPropagatingUserTransaction
@NotAuditable javax.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly)
Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.- Parameters:
readOnly- Set true for a READONLY transaction instance, false otherwise. Note that it is not always possible to force a write transaction if the system is in read-only mode.- Returns:
- Returns a non-propagating user transaction
-
getNonPropagatingUserTransaction
@NotAuditable javax.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.- Parameters:
readOnly- Set true for a READONLY transaction instance, false otherwise.ignoreSystemReadOnly- true to force the read-only flag to be respected regardless of the system read-only mode.- Returns:
- Returns a non-propagating user transaction
-
getRetryingTransactionHelper
@NotAuditable RetryingTransactionHelper getRetryingTransactionHelper()
Get the standard instance of the helper object that supports transaction retrying.- Returns:
- Returns a helper object that executes units of work transactionally. The helper can be reused or altered as required.
-
-