You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2006/11/07 19:47:56 UTC

svn commit: r472199 - in /incubator/ode/trunk: axis2-war/ axis2/src/main/java/org/apache/ode/axis2/ bpel-store/ bpel-store/src/main/java/org/apache/ode/store/ bpel-store/src/main/java/org/apache/ode/store/dao/

Author: mriou
Date: Tue Nov  7 10:47:55 2006
New Revision: 472199

URL: http://svn.apache.org/viewvc?view=rev&rev=472199
Log:
Re-added some J2EE spec jars in the war to support deployment on Tomcat or Jetty easily. Optionnally providing a tx mgr to the conf store just so that it can decide whether it needs to manage its transaction itself or fit into an already started one.

Modified:
    incubator/ode/trunk/axis2-war/pom.xml
    incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
    incubator/ode/trunk/bpel-store/pom.xml
    incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
    incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/dao/ConfStoreConnectionHib.java

Modified: incubator/ode/trunk/axis2-war/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/axis2-war/pom.xml?view=diff&rev=472199&r1=472198&r2=472199
==============================================================================
--- incubator/ode/trunk/axis2-war/pom.xml (original)
+++ incubator/ode/trunk/axis2-war/pom.xml Tue Nov  7 10:47:55 2006
@@ -330,6 +330,18 @@
             <scope>runtime</scope>
         </dependency>
         <dependency>
+            <groupId>geronimo-spec</groupId>
+            <artifactId>geronimo-spec-jta</artifactId>
+            <version>1.0.1B-rc4</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>geronimo-spec</groupId>
+            <artifactId>geronimo-spec-j2ee-connector</artifactId>
+            <version>1.5-rc4</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
             <groupId>geronimo</groupId>
             <artifactId>geronimo-kernel</artifactId>
             <version>${geronimoVersion}</version>

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=472199&r1=472198&r2=472199
==============================================================================
--- 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 Tue Nov  7 10:47:55 2006
@@ -260,7 +260,7 @@
         String txFactoryName = _odeConfig.getTxFactoryClass();
         __log.debug("Initializing transaction manager using " + txFactoryName);
         try {
-            Class txFactClass = Class.forName(txFactoryName);
+            Class txFactClass = this.getClass().getClassLoader().loadClass(txFactoryName);
             Object txFact = txFactClass.newInstance();
             _txMgr = (TransactionManager) txFactClass.getMethod("getTransactionManager", (Class[]) null).invoke(txFact);
         } catch (Exception e) {
@@ -397,7 +397,7 @@
     }
 
     private void initProcessStore() {
-        _store = new ProcessStoreImpl(_workRoot, _datasource, true);
+        _store = new ProcessStoreImpl(_workRoot, _datasource, _txMgr);
     }
 
     private void initBpelServer() {

Modified: incubator/ode/trunk/bpel-store/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-store/pom.xml?view=diff&rev=472199&r1=472198&r2=472199
==============================================================================
--- incubator/ode/trunk/bpel-store/pom.xml (original)
+++ incubator/ode/trunk/bpel-store/pom.xml Tue Nov  7 10:47:55 2006
@@ -51,6 +51,11 @@
           <groupId>xmlbeans</groupId>
           <artifactId>xbean</artifactId>
         </dependency>
+        <dependency>
+            <groupId>geronimo-spec</groupId>
+            <artifactId>geronimo-spec-jta</artifactId>
+            <version>1.0.1B-rc4</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

Modified: incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java?view=diff&rev=472199&r1=472198&r2=472199
==============================================================================
--- incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java (original)
+++ incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java Tue Nov  7 10:47:55 2006
@@ -17,6 +17,7 @@
 import org.w3c.dom.Node;
 
 import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
 import javax.wsdl.Definition;
 import javax.xml.namespace.QName;
 import java.io.ByteArrayOutputStream;
@@ -46,17 +47,17 @@
     private File _appDir;
     private ConfStoreConnection _conn;
 
-    public ProcessStoreImpl(File appDir, DataSource ds, boolean transactional) {
-        this(appDir, ds, new DeploymentManagerImpl(new File(appDir, "processes")), transactional);
+    public ProcessStoreImpl(File appDir, DataSource ds, TransactionManager txMgr) {
+        this(appDir, ds, new DeploymentManagerImpl(new File(appDir, "processes")), txMgr);
     }
 
     // Both appdir and datasource could be null
-    public ProcessStoreImpl(File appDir, DataSource ds, DeploymentManager deployer, boolean transactional) {
+    public ProcessStoreImpl(File appDir, DataSource ds, DeploymentManager deployer, TransactionManager txMgr) {
         _deploymentManager = deployer;
         _appDir = appDir;
         _ds = ds;
         // TODO in-memory if no datasource given
-        if (_ds != null) _conn = new ConfStoreConnectionHib(_ds, appDir, transactional);
+        if (_ds != null) _conn = new ConfStoreConnectionHib(_ds, appDir, txMgr);
         else _conn = new ConfStoreConnectionInMem();
 
         reloadDeploymentUnits();

Modified: incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/dao/ConfStoreConnectionHib.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/dao/ConfStoreConnectionHib.java?view=diff&rev=472199&r1=472198&r2=472199
==============================================================================
--- incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/dao/ConfStoreConnectionHib.java (original)
+++ incubator/ode/trunk/bpel-store/src/main/java/org/apache/ode/store/dao/ConfStoreConnectionHib.java Tue Nov  7 10:47:55 2006
@@ -19,6 +19,7 @@
 import org.hibernate.dialect.DialectFactory;
 
 import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
 import javax.xml.namespace.QName;
 import java.io.BufferedInputStream;
 import java.io.File;
@@ -39,11 +40,11 @@
 
     private static DataSource _ds;
     private final SessionFactory _sessionFactory;
-    private boolean _transactional = false;
+    private TransactionManager _txMgr = null;
 
-    public ConfStoreConnectionHib(DataSource _ds, File appRoot, boolean transactional) {
+    public ConfStoreConnectionHib(DataSource _ds, File appRoot, TransactionManager txMgr) {
         org.apache.ode.store.dao.ConfStoreConnectionHib._ds = _ds;
-        _transactional = transactional;
+        _txMgr = txMgr;
         Properties properties = new Properties();
         properties.put(Environment.CONNECTION_PROVIDER, DataSourceConnectionProvider.class.getName());
         properties.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");
@@ -214,13 +215,15 @@
      * @return callable result
      */
     public <T> T exec(final Callable<T> callable) throws Exception {
+        boolean txStarted = _txMgr != null && _txMgr.getTransaction() != null;
+        System.out.println("### " + _txMgr.getTransaction());
         try {
-            if (!_transactional) _sessionFactory.getCurrentSession().beginTransaction();
+            if (!txStarted) _sessionFactory.getCurrentSession().beginTransaction();
             T result =  callable.run();
-            if (!_transactional) _sessionFactory.getCurrentSession().getTransaction().commit();
+            if (!txStarted) _sessionFactory.getCurrentSession().getTransaction().commit();
             return result;
         } catch (Exception e) {
-            if (!_transactional) _sessionFactory.getCurrentSession().getTransaction().rollback();
+            if (!txStarted) _sessionFactory.getCurrentSession().getTransaction().rollback();
             throw e;
         }
     }