Author: lwaterman
Date: Tue Nov 28 00:36:23 2006
New Revision: 479945

URL: http://svn.apache.org/viewvc?view=rev&rev=479945
Log:
Add connection control

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=479945&r1=479944&r2=479945
==============================================================================
--- 
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
 Tue Nov 28 00:36:23 2006
@@ -1,16 +1,54 @@
 package org.apache.ode.dao.jpa.ojpa;
 
 
+import java.util.List;
 import java.util.Properties;
 
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactory;
 import org.apache.ode.dao.jpa.BPELDAOConnectionImpl;
 
 public class BPELDAOConnectionFactoryImpl implements BpelDAOConnectionFactory {
 
+       private EntityManager em;
+       
+       public BPELDAOConnectionFactoryImpl(EntityManager em) {
+               this.em = em;
+       }
+       
        public BpelDAOConnection getConnection() {
-               return new BPELDAOConnectionImpl();
+               
+               Query q = em.createQuery("SELECT x FROM BPELDAOConnectionImpl x 
order by x._id asc");
+               
+               List<BpelDAOConnection> conns = 
(List<BpelDAOConnection>)q.getResultList();
+               
+               if ( conns.size() < 1 ) {
+                       return new BPELDAOConnectionImpl(new Long(1));
+               }
+               
+               return conns.get(conns.size()-1);
+       }
+       
+       public BpelDAOConnection getConnection(Long connID) {
+               
+               Query q = em.createQuery("SELECT x FROM BPELDAOConnectionImpl x 
WHERE x._id = ?1");
+               q.setParameter(1, connID);
+               
+               BpelDAOConnection conn = (BpelDAOConnection)q.getSingleResult();
+               
+               if ( conn == null ) {
+                       conn = new BPELDAOConnectionImpl(connID);
+               }
+               
+               return conn;
+       }
+       
+       public Long getConnectionId(BpelDAOConnection conn) {
+               BPELDAOConnectionImpl oConn = (BPELDAOConnectionImpl)conn;
+               return oConn.getID();
        }
 
        public void init(Properties properties) {


Reply via email to