Hi Andreas,
Andreas Bohnert wrote:
hi,
I wonder if OJB supports Geronimo. I haven't found an TransactionManager
in /org/apache/ojb/broker/transaction/tm, also I haven't found any
geronimo topics in the mailing list or the documentation.
Are there any Geronimo users here?
I try to migrate from jboss to geronimo, but now I'm doubtful, if I will
be sucessful, if there is no transactionmager to use ...
Sorry Geronimo support is on my todo-list, but it slipped my mind.
To implement the TransactionManagerFactory I this document about
JBoss/Hibernate migration (scroll down to GeronimoTransactionManagerLookup)
http://cwiki.apache.org/GMOxDOC10/jboss-to-geronimo-hibernate-migration.html
The OJB version (compatible with current sources) will look like this:
public class GeronimoTransactionManagerFactory implements
TransactionManagerFactory
{
public static final String
TransactionMgrGBeanName="geronimo.server:J2EEApplication=null," +
"J2EEModule=geronimo/j2ee-server/1.0/car,J2EEServer=geronimo,j2eeType=TransactionManager,"
+
"name=TransactionManager";
private TransactionManager tm;
public TransactionManager getTransactionManager() throws
TransactionManagerFactoryException
{
if(tm == null)
{
tm = lookupManager();
}
return tm;
}
private TransactionManager lookupManager() throws
TransactionManagerFactoryException
{
try
{
Class kernelClass =
ClassHelper.getClass("org.apache.geronimo.kernel.Kernel");
Class kernelRegistryClass =
ClassHelper.getClass("org.apache.geronimo.kernel.KernelRegistry");
Class proxyManagerClass =
ClassHelper.getClass("org.apache.geronimo.kernel.proxy.ProxyManager");
Class objectNameClass =
ClassHelper.getClass("javax.management.ObjectName");
Object transactionManagerName = ClassHelper.newInstance(
objectNameClass, String.class,
TransactionMgrGBeanName);
Object kernel =
kernelRegistryClass.getMethod("getSingleKernel", null).invoke(null, null);
Object proxyManager =
kernelClass.getMethod("getProxyManager", null).invoke(kernel, null);
Class[] clzArray = {objectNameClass, Class.class};
Object[] objArray = {transactionManagerName,
TransactionManager.class};
return (TransactionManager)
proxyManagerClass.getMethod("createProxy", clzArray)
.invoke(proxyManager, objArray);
}
catch(Exception e)
{
throw new TransactionManagerFactoryException("Geronimo
Transaction Manager Lookup Failed", e);
}
}
}
It would be great if you could check this class.
regards,
Armin
Thanks for your help,
andreas
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]