|
Spring Data Neo4j | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.data.neo4j.transaction.JotmFactoryBean
public class JotmFactoryBean
FactoryBean that retrieves the JTA UserTransaction/TransactionManager for ObjectWeb's JOTM. Will retrieve an already active JOTM instance if found (e.g. if running in JOnAS), else create a new local JOTM instance.
With JOTM, the same object implements both the
UserTransaction and the
TransactionManager interface,
as returned by this FactoryBean.
A local JOTM instance is well-suited for working in conjunction with ObjectWeb's XAPool, e.g. with bean definitions like the following:
<bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"/> <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="userTransaction" ref="jotm"/> </bean> <bean id="innerDataSource" class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> <property name="transactionManager" ref="jotm"/> <property name="driverName" value="..."/> <property name="url" value="..."/> <property name="user" value="..."/> <property name="password" value="..."/> </bean> <bean id="dataSource" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> <property name="dataSource" ref="innerDataSource"/> <property name="user" value="..."/> <property name="password" value="..."/> <property name="maxSize" value="..."/> </bean>Note that Spring's
JtaTransactionManager will automatically detect
that the passed-in UserTransaction reference also implements the
TransactionManager interface. Hence, it is not necessary to specify a
separate reference for JtaTransactionManager's "transactionManager" property.
Implementation note: This FactoryBean uses JOTM's static access method
to obtain the JOTM Current object, which
implements both the UserTransaction and the TransactionManager interface,
as mentioned above.
JtaTransactionManager.setUserTransaction(javax.transaction.UserTransaction),
JtaTransactionManager.setTransactionManager(javax.transaction.TransactionManager),
Current| Constructor Summary | |
|---|---|
JotmFactoryBean()
|
|
| Method Summary | |
|---|---|
void |
afterPropertiesSet()
|
void |
destroy()
Stop the local JOTM instance, if created by this FactoryBean. |
org.objectweb.jotm.Jotm |
getJotm()
Return the JOTM instance created by this factory bean, if any. |
Object |
getObject()
|
Class |
getObjectType()
|
boolean |
isSingleton()
|
void |
setDefaultTimeout(int defaultTimeout)
Set the default transaction timeout for the JOTM instance. |
void |
setJotmHome(String jotmHome)
|
void |
setTransactionRecovery(boolean transactionRecovery)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public JotmFactoryBean()
| Method Detail |
|---|
public void setDefaultTimeout(int defaultTimeout)
Should only be called for a local JOTM instance, not when accessing an existing (shared) JOTM instance.
public void setTransactionRecovery(boolean transactionRecovery)
throws SystemException
SystemExceptionpublic void setJotmHome(String jotmHome)
jotmHome - the directory that contains conf/jotm.properties
public void afterPropertiesSet()
throws Exception
afterPropertiesSet in interface InitializingBeanExceptionpublic org.objectweb.jotm.Jotm getJotm()
null if an already active JOTM instance is used.
Application code should never need to access this.
public Object getObject()
getObject in interface FactoryBeanpublic Class getObjectType()
getObjectType in interface FactoryBeanpublic boolean isSingleton()
isSingleton in interface FactoryBeanpublic void destroy()
destroy in interface DisposableBean
|
Spring Data Neo4j | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||