Class TransactionServiceImpl

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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()
      Creates a new helper instance.
      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.
      void setAllowWrite​(boolean allowWrite)
      Set the read-only mode for all generated transactions.
      void setAllowWrite​(boolean allowWrite, org.alfresco.service.namespace.QName nameOfVeto)
      Set the read-only mode for all generated transactions.
      void setMaxRetries​(int maxRetries)  
      void setMaxRetryWaitMs​(int maxRetryWaitMs)  
      void setMinRetryWaitMs​(int minRetryWaitMs)  
      void setRetryWaitIncrementMs​(int retryWaitIncrementMs)  
      void setTransactionManager​(org.springframework.transaction.PlatformTransactionManager transactionManager)
      Set the transaction manager to use
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TransactionServiceImpl

        public TransactionServiceImpl()
        Construct defaults
    • 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:
        getAllowWrite in interface TransactionService
        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-only
        nameOfVeto - 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:
        isReadOnly in interface TransactionService
        Returns:
        Returns true if all transactions are read-only AND the current user is not the 'System' user.
      • getUserTransaction

        public javax.transaction.UserTransaction getUserTransaction()
        Description copied from interface: TransactionService
        Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.
        Specified by:
        getUserTransaction in interface TransactionService
        Returns:
        the user transaction
        See Also:
        TransactionDefinition.PROPAGATION_REQUIRED
      • getUserTransaction

        public javax.transaction.UserTransaction getUserTransaction​(boolean readOnly)
        Description copied from interface: TransactionService
        Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.
        Specified by:
        getUserTransaction in interface TransactionService
        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: TransactionService
        Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.
        Specified by:
        getUserTransaction in interface TransactionService
        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: TransactionService
        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.
        Specified by:
        getNonPropagatingUserTransaction in interface TransactionService
        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: TransactionService
        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.
        Specified by:
        getNonPropagatingUserTransaction in interface TransactionService
        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: TransactionService
        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.
        Specified by:
        getNonPropagatingUserTransaction in interface TransactionService
        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:
        getRetryingTransactionHelper in interface TransactionService
        Returns:
        Returns a helper object that executes units of work transactionally. The helper can be reused or altered as required.