Author: mriou
Date: Mon Oct 9 17:35:49 2006
New Revision: 454573
URL: http://svn.apache.org/viewvc?view=rev&rev=454573
Log:
Using a separate, configurable class to get the transaction manager (with
default being Jotm).
Added:
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/util/JotmFactory.java
Modified:
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
Modified:
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java?view=diff&rev=454573&r1=454572&r2=454573
==============================================================================
---
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java
(original)
+++
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEConfigProperties.java
Mon Oct 9 17:35:49 2006
@@ -35,11 +35,10 @@
private static final Log __log =
LogFactory.getLog(ODEConfigProperties.class);
private static final Messages __msgs =
Messages.getMessages(Messages.class);
private static final String CONFIG_FILE_NAME = "ode-axis2.properties";
- private static final String PROP_NAMESPACE = "ode-axis2.pidNamespace";
- private static final String PROP_ALLOW_INCOMPLETE_DEPLOYMENT =
"ode-axis2.allowIncompleteDeployment";
private static final String PROP_DB_MODE = "ode-axis2.db.mode";
private static final String PROP_DB_EXTERNAL_DS =
"ode-axis2.db.ext.dataSource";
private static final String PROP_DB_EMBEDDED_NAME =
"ode-axis2.db.emb.name";
+ private static final String PROP_TX_FACTORY_CLASS =
"ode-axis2.tx.factory.class";
private static final String PROP_POOL_MAX = "ode-axis2.db.pool.max";
private static final String PROP_POOL_MIN = "ode-axis2.db.pool.min";
private static final String PROP_CONNECTOR_PORT = "ode-axis2.jca.port";
@@ -128,6 +127,10 @@
public String getWorkingDir() {
return getProperty(ODEConfigProperties.PROP_WORKING_DIR);
+ }
+
+ public String getTxFactoryClass() {
+ return getProperty(ODEConfigProperties.PROP_TX_FACTORY_CLASS,
"org.apache.ode.axis2.util.JotmFactory");
}
}
Modified:
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java?view=diff&rev=454573&r1=454572&r2=454573
==============================================================================
--- incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
(original)
+++ incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
Mon Oct 9 17:35:49 2006
@@ -259,36 +259,14 @@
}
private void initTxMgr() throws ServletException {
- InitialContext ctx;
+ String txFactoryName = _odeConfig.getTxFactoryClass();
+ __log.debug("Initializing transaction manager using " + txFactoryName);
try {
- ctx = new InitialContext();
- } catch (NamingException e) {
- throw new ServletException("Couldn't find any JNDI to lookup.", e);
- }
- try {
- // First try
- _txMgr = (TransactionManager)
ctx.lookup("javax.transaction.TransactionManager");
- } catch (NamingException e) {
- try {
- // Second try
- _txMgr = (TransactionManager)
ctx.lookup("javax.transaction.TransactionManager");
- } catch (NamingException ex) {
- __log.info("Couldn't find a transaction manager, using the
default (JOTM).");
- // Giving up: couldn't find a proper transaction manager,
fallback to Jotm.
- try {
- Jotm jotm = new Jotm(true, false);
- jotm.getTransactionManager().setTransactionTimeout(30);
- _txMgr = jotm.getTransactionManager();
- } catch (Exception e1) {
- throw new ServletException("Couldn't initialize a proper
transaction manager!", e);
- }
- }
- } finally {
- try {
- ctx.close();
- } catch (NamingException e) {
- __log.error(e);
- }
+ Class txFactClass = Class.forName(txFactoryName);
+ Object txFact = txFactClass.newInstance();
+ _txMgr = (TransactionManager)
txFactClass.getMethod("getTransactionManager", null).invoke(txFact);
+ } catch (Exception e) {
+ throw new ServletException("Couldn't initialize a transaction
manager!", e);
}
}
Added:
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/util/JotmFactory.java
URL:
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/util/JotmFactory.java?view=auto&rev=454573
==============================================================================
---
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/util/JotmFactory.java
(added)
+++
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/util/JotmFactory.java
Mon Oct 9 17:35:49 2006
@@ -0,0 +1,22 @@
+package org.apache.ode.axis2.util;
+
+import org.objectweb.jotm.Jotm;
+
+import javax.transaction.TransactionManager;
+import javax.servlet.ServletException;
+
+/**
+ * @author mriou
+ */
+public class JotmFactory {
+
+ public TransactionManager getTransactionManager() {
+ try {
+ Jotm jotm = new Jotm(true, false);
+ jotm.getTransactionManager().setTransactionTimeout(30);
+ return jotm.getTransactionManager();
+ } catch (Exception e) {
+ throw new RuntimeException("Couldn't initialize a proper
transaction manager!", e);
+ }
+ }
+}