org.alfresco.service.transaction
Interface TransactionService

All Known Implementing Classes:
DummyTransactionService, TransactionServiceImpl

public interface TransactionService

Contract for retrieving access to a user transaction.

Note that the implementation of the UserTransaction is not able to provide the full set of status codes available on the Status class.


Method Summary
 boolean getAllowWrite()
          Determine if the repository has been put into read only mode.
 javax.transaction.UserTransaction getNonPropagatingUserTransaction()
          Gets a user transaction that ensures a new transaction is created.
 javax.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly)
          Gets a user transaction that ensures a new transaction is created.
 javax.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)
          Gets a user transaction that ensures a new transaction is created.
 RetryingTransactionHelper getRetryingTransactionHelper()
          Get the standard instance of the helper object that supports transaction retrying.
 javax.transaction.UserTransaction getUserTransaction()
          Gets a user transaction that supports transaction propagation.
 javax.transaction.UserTransaction getUserTransaction(boolean readOnly)
          Gets a user transaction that supports transaction propagation.
 javax.transaction.UserTransaction getUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly)
          Gets a user transaction that supports transaction propagation.
 boolean isReadOnly()
          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.


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.