Author: mszefler
Date: Mon Jan 15 12:41:43 2007
New Revision: 496474

URL: http://svn.apache.org/viewvc?view=rev&rev=496474
Log:
Removed dependency on DAO layer impl from the axis2 module.

Modified:
    
incubator/ode/trunk/dao-jpa-ojpa/src/main/java/org/apache/ode/dao/jpa/ojpa/BPELDAOConnectionFactoryImpl.java

Modified: 
incubator/ode/trunk/dao-jpa-ojpa/src/main/java/org/apache/ode/dao/jpa/ojpa/BPELDAOConnectionFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa-ojpa/src/main/java/org/apache/ode/dao/jpa/ojpa/BPELDAOConnectionFactoryImpl.java?view=diff&rev=496474&r1=496473&r2=496474
==============================================================================
--- 
incubator/ode/trunk/dao-jpa-ojpa/src/main/java/org/apache/ode/dao/jpa/ojpa/BPELDAOConnectionFactoryImpl.java
 (original)
+++ 
incubator/ode/trunk/dao-jpa-ojpa/src/main/java/org/apache/ode/dao/jpa/ojpa/BPELDAOConnectionFactoryImpl.java
 Mon Jan 15 12:41:43 2007
@@ -17,82 +17,94 @@
  * under the License.
  */
 
-
 package org.apache.ode.dao.jpa.ojpa;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
 
 import org.apache.ode.bpel.dao.BpelDAOConnection;
-import org.apache.ode.bpel.dao.BpelDAOConnectionFactory;
+import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
 import org.apache.ode.dao.jpa.BPELDAOConnectionImpl;
+import org.apache.openjpa.ee.ManagedRuntime;
 
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.Query;
-import java.util.List;
-import java.util.Properties;
+public class BPELDAOConnectionFactoryImpl implements 
BpelDAOConnectionFactoryJDBC {
+
+    private EntityManagerFactory _emf;
+
+    private TransactionManager _tm;
+
+    private DataSource _ds;
+
+    private Object _dbdictionary;
+
+    private DataSource _unmanagedDS;
+
+    public BPELDAOConnectionFactoryImpl() {
+    }
+
+    public BpelDAOConnection getConnection() {
+        return new BPELDAOConnectionImpl(_emf.createEntityManager());
+    }
+
+    @SuppressWarnings("unchecked")
+    public void init(Properties properties) {
+        HashMap<String, Object> propMap = new HashMap<String,Object>();
+
+        propMap.put("openjpa.ManagedRuntime", new TxMgrProvider());
+//        propMap.put("openjpa.ConnectionDriverName", 
org.apache.derby.jdbc.EmbeddedDriver.class.getName());
+        propMap.put("javax.persistence.nonJtaDataSource", _unmanagedDS == null 
? _ds : _unmanagedDS);
+        propMap.put("javax.persistence.DataSource", _ds);
+        propMap.put("openjpa.Log", "DefaultLevel=TRACE");
+        propMap.put("openjpa.jdbc.DBDictionary", 
"org.apache.openjpa.jdbc.sql.DerbyDictionary");
+        if (_dbdictionary != null)
+            propMap.put("openjpa.jdbc.DBDictionary", _dbdictionary);
+
+        if (properties != null)
+            propMap.putAll((Map<? extends String, ? extends Object>) 
properties);
+        
+        _emf = Persistence.createEntityManagerFactory("ode-dao", propMap);
+    }
+
+    public void setTransactionManager(TransactionManager tm) {
+        _tm = tm;
+    }
+
+    public void setDataSource(DataSource datasource) {
+        _ds = datasource;
+
+    }
+
+    public void setDBDictionary(String dbd) {
+        _dbdictionary = dbd;
+    }
+
+    public void setTransactionManager(Object tm) {
+        _tm = (TransactionManager) tm;
+        
+    }
+
+    public void setUnmanagedDataSource(DataSource ds) {
+        _unmanagedDS = ds;
+    }
 
-public class BPELDAOConnectionFactoryImpl implements BpelDAOConnectionFactory {
+    public void shutdown() {
+        _emf.close();
+    }
+    
 
-       private EntityManager em;
-       private BPELDAOConnectionImpl conn;
-       
-       public BPELDAOConnectionFactoryImpl(EntityManager em) {
-               this.em = em;
-       }
-       
-       public BpelDAOConnection getConnection() {
-               
-               if ( conn == null ) {
-                       List<BpelDAOConnection> conns = null;
-                       
-                       Query q = em.createQuery("SELECT x FROM 
org.apache.ode.dao.jpa.BPELDAOConnectionImpl x order by x._id asc");
-                       
-                       try {
-                               conns = 
(List<BpelDAOConnection>)q.getResultList();
-                               if ( conns.size() < 1 ) {
-                                       conn = new BPELDAOConnectionImpl(new 
Long(1),em);
-                               } else {
-                                       conn = 
(BPELDAOConnectionImpl)conns.get(conns.size()-1);
-                                       conn.setEntityManger(em);
-                               }
-                               
-                       } catch (NoResultException e) {
-                               conn = new BPELDAOConnectionImpl(new 
Long(1),em);
-                       }
-               }
-               
-               return conn;
-       }
-       
-       public BpelDAOConnection getConnection(Long connID) {
-               if ( conn != null && conn.getID().equals(connID) ) {
-                       return conn;
-               }
-               
-               BPELDAOConnectionImpl tmpConn = null;
-               
-               Query q = em.createQuery("SELECT x FROM 
org.apache.ode.dao.jpa.BPELDAOConnectionImpl x WHERE x._id = ?1");
-               q.setParameter(1, connID);
-               
-               try {
-                       tmpConn = (BPELDAOConnectionImpl)q.getSingleResult();
-                       tmpConn.setEntityManger(em);
-               } catch (NoResultException e){}
-               
-               if ( tmpConn == null ) {
-                       conn = new BPELDAOConnectionImpl(connID,em);
-                       tmpConn = conn;
-               }
-               
-               return tmpConn;
-       }
-       
-       public Long getConnectionId(BpelDAOConnection conn) {
-               BPELDAOConnectionImpl oConn = (BPELDAOConnectionImpl)conn;
-               return oConn.getID();
-       }
+    private class TxMgrProvider implements ManagedRuntime {
+        public TxMgrProvider() {
+        }
 
-       public void init(Properties properties) {
-       }
+        public TransactionManager getTransactionManager() throws Exception {
+            return _tm;
+        }
+    }
 
 }


Reply via email to