org.springframework.extensions.jcr.jackrabbit
Class LocalTransactionManager

java.lang.Object
  extended by org.springframework.transaction.support.AbstractPlatformTransactionManager
      extended by org.springframework.extensions.jcr.jackrabbit.LocalTransactionManager
All Implemented Interfaces:
java.io.Serializable, org.springframework.beans.factory.InitializingBean, org.springframework.transaction.PlatformTransactionManager

public class LocalTransactionManager
extends org.springframework.transaction.support.AbstractPlatformTransactionManager
implements org.springframework.beans.factory.InitializingBean

PlatformTransactionManager implementation for a single JCR SessionFactory. Binds a Jcr session from the specified SessionFactory to the thread, potentially allowing for one thread session per session factory.

This local strategy is an alternative to executing JCR operations within JTA transactions. Its advantage is that it is able to work in any environment, for example a standalone application or a test suite. It is not able to provide XA transactions, for example to share transactions with data access.

JcrTemplate will auto-detect such thread-bound connection/session pairs and automatically participate in them. There is currently no support for letting plain JCR code participate in such transactions.

This transaction strategy will typically be used in combination with a single JCR Repository for all JCR access to save resources, typically in a standalone application.

Author:
Costin Leau, Guillaume Bort , Sergio Bossa, Salvatore Incandela
See Also:
org.apache.jackrabbit.XASession, RepositoryException, AbstractPlatformTransactionManager, Serialized Form

Field Summary
 
Fields inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager
logger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
 
Constructor Summary
LocalTransactionManager()
          Create a new JcrTransactionManager instance.
LocalTransactionManager(SessionFactory sessionFactory)
          Create a new JcrTransactionManager instance.
 
Method Summary
 void afterPropertiesSet()
           
protected  void doBegin(java.lang.Object transaction, org.springframework.transaction.TransactionDefinition transactionDefinition)
           
protected  void doCleanupAfterCompletion(java.lang.Object transaction)
           
protected  void doCommit(org.springframework.transaction.support.DefaultTransactionStatus status)
           
protected  java.lang.Object doGetTransaction()
           
protected  void doResume(java.lang.Object transaction, java.lang.Object suspendedResources)
           
protected  void doRollback(org.springframework.transaction.support.DefaultTransactionStatus status)
           
protected  void doSetRollbackOnly(org.springframework.transaction.support.DefaultTransactionStatus status)
           
protected  java.lang.Object doSuspend(java.lang.Object transaction)
           
 SessionFactory getSessionFactory()
           
protected  boolean isExistingTransaction(java.lang.Object transaction)
           
 void setSessionFactory(SessionFactory sessionFactory)
           
 
Methods inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager
commit, determineTimeout, getDefaultTimeout, getTransaction, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, newTransactionStatus, prepareForCommit, registerAfterCompletionWithExistingTransaction, resume, rollback, setDefaultTimeout, setFailEarlyOnGlobalRollbackOnly, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, setTransactionSynchronization, setTransactionSynchronizationName, setValidateExistingTransaction, shouldCommitOnGlobalRollbackOnly, suspend, triggerBeforeCommit, triggerBeforeCompletion, useSavepointForNestedTransaction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LocalTransactionManager

public LocalTransactionManager()
Create a new JcrTransactionManager instance.


LocalTransactionManager

public LocalTransactionManager(SessionFactory sessionFactory)
Create a new JcrTransactionManager instance.

Parameters:
sessionFactory - Repository to manage transactions for
Method Detail

getSessionFactory

public SessionFactory getSessionFactory()
Returns:
Returns the sessionFactory.

afterPropertiesSet

public void afterPropertiesSet()
                        throws java.lang.Exception
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
Throws:
java.lang.Exception

doGetTransaction

protected java.lang.Object doGetTransaction()
                                     throws org.springframework.transaction.TransactionException
Specified by:
doGetTransaction in class org.springframework.transaction.support.AbstractPlatformTransactionManager
Throws:
org.springframework.transaction.TransactionException

isExistingTransaction

protected boolean isExistingTransaction(java.lang.Object transaction)
                                 throws org.springframework.transaction.TransactionException
Overrides:
isExistingTransaction in class org.springframework.transaction.support.AbstractPlatformTransactionManager
Throws:
org.springframework.transaction.TransactionException

doBegin

protected void doBegin(java.lang.Object transaction,
                       org.springframework.transaction.TransactionDefinition transactionDefinition)
                throws org.springframework.transaction.TransactionException
Specified by:
doBegin in class org.springframework.transaction.support.AbstractPlatformTransactionManager
Throws:
org.springframework.transaction.TransactionException

doSuspend

protected java.lang.Object doSuspend(java.lang.Object transaction)
Overrides:
doSuspend in class org.springframework.transaction.support.AbstractPlatformTransactionManager

doResume

protected void doResume(java.lang.Object transaction,
                        java.lang.Object suspendedResources)
Overrides:
doResume in class org.springframework.transaction.support.AbstractPlatformTransactionManager

doCommit

protected void doCommit(org.springframework.transaction.support.DefaultTransactionStatus status)
Specified by:
doCommit in class org.springframework.transaction.support.AbstractPlatformTransactionManager

doRollback

protected void doRollback(org.springframework.transaction.support.DefaultTransactionStatus status)
Specified by:
doRollback in class org.springframework.transaction.support.AbstractPlatformTransactionManager

doSetRollbackOnly

protected void doSetRollbackOnly(org.springframework.transaction.support.DefaultTransactionStatus status)
Overrides:
doSetRollbackOnly in class org.springframework.transaction.support.AbstractPlatformTransactionManager

doCleanupAfterCompletion

protected void doCleanupAfterCompletion(java.lang.Object transaction)
Overrides:
doCleanupAfterCompletion in class org.springframework.transaction.support.AbstractPlatformTransactionManager

setSessionFactory

public void setSessionFactory(SessionFactory sessionFactory)
Parameters:
sessionFactory - The sessionFactory to set.


Copyright © 2009. All Rights Reserved.