|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.transaction.jta.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
Field Summary | |
---|---|
private org.objectweb.jotm.Jotm |
jotm
|
private org.objectweb.jotm.Current |
jotmCurrent
|
Constructor Summary | |
---|---|
JotmFactoryBean()
|
Method Summary | |
---|---|
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. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private org.objectweb.jotm.Current jotmCurrent
private org.objectweb.jotm.Jotm jotm
Constructor Detail |
---|
public JotmFactoryBean() throws NamingException
NamingException
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 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 org.springframework.beans.factory.FactoryBean
public Class getObjectType()
getObjectType
in interface org.springframework.beans.factory.FactoryBean
public boolean isSingleton()
isSingleton
in interface org.springframework.beans.factory.FactoryBean
public void destroy()
destroy
in interface org.springframework.beans.factory.DisposableBean
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |