Package org.alfresco.repo.transaction
Class TransactionServiceImpl
- java.lang.Object
-
- org.alfresco.repo.transaction.TransactionServiceImpl
-
- All Implemented Interfaces:
TransactionService
public class TransactionServiceImpl extends java.lang.Object implements TransactionService
Default implementation of Transaction Service.Default retry behaviour: see
RetryingTransactionHelper()- Author:
- David Caruana
-
-
Constructor Summary
Constructors Constructor Description TransactionServiceImpl()Construct defaults
-
Method Summary
All Methods Instance Methods Concrete 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()Creates a new helper instance.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.voidsetAllowWrite(boolean allowWrite)Set the read-only mode for all generated transactions.voidsetAllowWrite(boolean allowWrite, org.alfresco.service.namespace.QName nameOfVeto)Set the read-only mode for all generated transactions.voidsetMaxRetries(int maxRetries)voidsetMaxRetryWaitMs(int maxRetryWaitMs)voidsetMinRetryWaitMs(int minRetryWaitMs)voidsetRetryWaitIncrementMs(int retryWaitIncrementMs)voidsetTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager)Set the transaction manager to use
-
-
-
Method Detail
-
setTransactionManager
public void setTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager)
Set the transaction manager to use
-
getAllowWrite
public boolean getAllowWrite()
Determine if the repository has been put into read only mode. This is independent of the current user.- Specified by:
getAllowWritein interfaceTransactionService- Returns:
- true if the repository is allowed to perform write operations
-
setAllowWrite
public void setAllowWrite(boolean allowWrite)
Set the read-only mode for all generated transactions.Intended for use by spring configuration only. Alfresco code should call the method which specifies a veto name.
- Parameters:
allowWrite- false if all transactions must be read-only
-
setAllowWrite
public void setAllowWrite(boolean allowWrite, org.alfresco.service.namespace.QName nameOfVeto)Set the read-only mode for all generated transactions.By default read/write transactions are allowed however vetos may be applied that make the transactions read only.
Prevent writes by calling allowWrite with false and a given veto name.
The veto is removed by calling allowWrite with true for the given veto name when all vetos are removed then read/write transactions are allowed.
- Parameters:
allowWrite- false if all transactions must be read-onlynameOfVeto- the name of the veto
-
isReadOnly
public boolean isReadOnly()
Determine if ALL user transactions will be read-only. The 'System' user is always allowed to write.- Specified by:
isReadOnlyin interfaceTransactionService- Returns:
- Returns true if all transactions are read-only AND the current user is not the 'System' user.
-
setMaxRetries
public void setMaxRetries(int maxRetries)
-
setMinRetryWaitMs
public void setMinRetryWaitMs(int minRetryWaitMs)
-
setMaxRetryWaitMs
public void setMaxRetryWaitMs(int maxRetryWaitMs)
-
setRetryWaitIncrementMs
public void setRetryWaitIncrementMs(int retryWaitIncrementMs)
-
getUserTransaction
public javax.transaction.UserTransaction getUserTransaction()
Description copied from interface:TransactionServiceGets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Specified by:
getUserTransactionin interfaceTransactionService- Returns:
- the user transaction
- See Also:
TransactionDefinition.PROPAGATION_REQUIRED
-
getUserTransaction
public javax.transaction.UserTransaction getUserTransaction(boolean readOnly)
Description copied from interface:TransactionServiceGets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Specified by:
getUserTransactionin interfaceTransactionService- 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
- See Also:
TransactionDefinition.PROPAGATION_REQUIRED
-
getUserTransaction
public javax.transaction.UserTransaction getUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)Description copied from interface:TransactionServiceGets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Specified by:
getUserTransactionin interfaceTransactionService- 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
- See Also:
TransactionDefinition.PROPAGATION_REQUIRED
-
getNonPropagatingUserTransaction
public javax.transaction.UserTransaction getNonPropagatingUserTransaction()
Description copied from interface:TransactionServiceGets 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.- Specified by:
getNonPropagatingUserTransactionin interfaceTransactionService- Returns:
- Returns a non-propagating user transaction
- See Also:
TransactionDefinition.PROPAGATION_REQUIRES_NEW
-
getNonPropagatingUserTransaction
public javax.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly)
Description copied from interface:TransactionServiceGets 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.- Specified by:
getNonPropagatingUserTransactionin interfaceTransactionService- 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
- See Also:
TransactionDefinition.PROPAGATION_REQUIRES_NEW
-
getNonPropagatingUserTransaction
public javax.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)Description copied from interface:TransactionServiceGets 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.- Specified by:
getNonPropagatingUserTransactionin interfaceTransactionService- 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
- See Also:
TransactionDefinition.PROPAGATION_REQUIRES_NEW
-
getRetryingTransactionHelper
public RetryingTransactionHelper getRetryingTransactionHelper()
Creates a new helper instance. It can be reused or customized by the client code: each instance is new and initialized afresh.- Specified by:
getRetryingTransactionHelperin interfaceTransactionService- Returns:
- Returns a helper object that executes units of work transactionally. The helper can be reused or altered as required.
-
-