org.springframework.ldap.transaction.compensating.manager
Class ContextSourceAndHibernateTransactionManager

java.lang.Object
  extended by org.springframework.transaction.support.AbstractPlatformTransactionManager
      extended by org.springframework.orm.hibernate3.HibernateTransactionManager
          extended by org.springframework.ldap.transaction.compensating.manager.ContextSourceAndHibernateTransactionManager
All Implemented Interfaces:
java.io.Serializable, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, org.springframework.transaction.PlatformTransactionManager, org.springframework.transaction.support.ResourceTransactionManager

public class ContextSourceAndHibernateTransactionManager
extends org.springframework.orm.hibernate3.HibernateTransactionManager

A Transaction Manager to manage LDAP and Hibernate 3 operations within the same transaction. Note that even though the same logical transaction is used, this is not a JTA XA transaction; no two-phase commit will be performed, and thus commit and rollback may yield unexpected results.
This Transaction Manager is as good as it gets when you are using in LDAP in combination with a Hibernate 3 and unable to use XA transactions because LDAP is not transactional by design to begin with.
Furthermore, this manager does not support nested transactions

Since:
1.2.2
Author:
Hans Westerbeek
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager
logger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
 
Constructor Summary
ContextSourceAndHibernateTransactionManager()
           
 
Method Summary
protected  void doBegin(java.lang.Object transaction, org.springframework.transaction.TransactionDefinition definition)
           
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  java.lang.Object doSuspend(java.lang.Object transaction)
           
 ContextSource getContextSource()
           
protected  boolean isExistingTransaction(java.lang.Object transaction)
           
 void setContextSource(ContextSource contextSource)
           
protected  void setRenamingStrategy(TempEntryRenamingStrategy renamingStrategy)
           
 
Methods inherited from class org.springframework.orm.hibernate3.HibernateTransactionManager
afterPropertiesSet, convertHibernateAccessException, convertJdbcAccessException, doSetRollbackOnly, getDataSource, getDefaultJdbcExceptionTranslator, getEntityInterceptor, getJdbcExceptionTranslator, getResourceFactory, getSessionFactory, isSameConnectionForEntireSession, prepareForCommit, setAutodetectDataSource, setBeanFactory, setDataSource, setEarlyFlushBeforeCommit, setEntityInterceptor, setEntityInterceptorBeanName, setHibernateManagedSession, setJdbcExceptionTranslator, setPrepareConnection, setSessionFactory
 
Methods inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager
commit, determineTimeout, getDefaultTimeout, getTransaction, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, newTransactionStatus, 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
 
Methods inherited from interface org.springframework.transaction.PlatformTransactionManager
commit, getTransaction, rollback
 

Constructor Detail

ContextSourceAndHibernateTransactionManager

public ContextSourceAndHibernateTransactionManager()
Method Detail

isExistingTransaction

protected boolean isExistingTransaction(java.lang.Object transaction)
Overrides:
isExistingTransaction in class org.springframework.orm.hibernate3.HibernateTransactionManager

doGetTransaction

protected java.lang.Object doGetTransaction()
                                     throws org.springframework.transaction.TransactionException
Overrides:
doGetTransaction in class org.springframework.orm.hibernate3.HibernateTransactionManager
Throws:
org.springframework.transaction.TransactionException

doBegin

protected void doBegin(java.lang.Object transaction,
                       org.springframework.transaction.TransactionDefinition definition)
                throws org.springframework.transaction.TransactionException
Overrides:
doBegin in class org.springframework.orm.hibernate3.HibernateTransactionManager
Throws:
org.springframework.transaction.TransactionException

doCleanupAfterCompletion

protected void doCleanupAfterCompletion(java.lang.Object transaction)
Overrides:
doCleanupAfterCompletion in class org.springframework.orm.hibernate3.HibernateTransactionManager

doCommit

protected void doCommit(org.springframework.transaction.support.DefaultTransactionStatus status)
                 throws org.springframework.transaction.TransactionException
Overrides:
doCommit in class org.springframework.orm.hibernate3.HibernateTransactionManager
Throws:
org.springframework.transaction.TransactionException

doRollback

protected void doRollback(org.springframework.transaction.support.DefaultTransactionStatus status)
                   throws org.springframework.transaction.TransactionException
Overrides:
doRollback in class org.springframework.orm.hibernate3.HibernateTransactionManager
Throws:
org.springframework.transaction.TransactionException

getContextSource

public ContextSource getContextSource()

setContextSource

public void setContextSource(ContextSource contextSource)

setRenamingStrategy

protected void setRenamingStrategy(TempEntryRenamingStrategy renamingStrategy)

doSuspend

protected java.lang.Object doSuspend(java.lang.Object transaction)
                              throws org.springframework.transaction.TransactionException
Overrides:
doSuspend in class org.springframework.orm.hibernate3.HibernateTransactionManager
Throws:
org.springframework.transaction.TransactionException

doResume

protected void doResume(java.lang.Object transaction,
                        java.lang.Object suspendedResources)
                 throws org.springframework.transaction.TransactionException
Overrides:
doResume in class org.springframework.orm.hibernate3.HibernateTransactionManager
Throws:
org.springframework.transaction.TransactionException