Author: mriou
Date: Wed Apr  4 17:58:43 2007
New Revision: 525666

URL: http://svn.apache.org/viewvc?view=rev&rev=525666
Log:
Fixed a bug in JPA (it's good to have tests). dao-jpa-derby test half pass 
(working on the other half).

Added:
    
incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/OdeJbiComponentLifeCycleTest.java
      - copied, changed from r525627, 
incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/TestOdeJbiComponentLifeCycle.java
Removed:
    
incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/TestOdeJbiComponentLifeCycle.java
Modified:
    incubator/ode/trunk/Rakefile
    
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java
    
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java
    
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ActivityRecoveryDAOImpl.java
    
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
    
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java

Modified: incubator/ode/trunk/Rakefile
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/Rakefile?view=diff&rev=525666&r1=525665&r2=525666
==============================================================================
--- incubator/ode/trunk/Rakefile (original)
+++ incubator/ode/trunk/Rakefile Wed Apr  4 17:58:43 2007
@@ -57,7 +57,7 @@
                        "net.sourceforge.serp:serp:jar:1.12.0"]
 QUARTZ              = "quartz:quartz:jar:1.5.2"
 SAXON               = group("saxon", "saxon-xpath", "saxon-dom", 
:under=>"net.sf.saxon", :version=>"8.7")
-SERVICEMIX          = group("servicemix-core", "servicemix-shared", 
:under=>"org.apache.servicemix", :version=>"3.1-incubating")
+SERVICEMIX          = group("servicemix-core", "servicemix-shared", 
"servicemix-services", :under=>"org.apache.servicemix", 
:version=>"3.1-incubating")
 TRANQL              = [ "tranql:tranql-connector:jar:1.1", 
"axion:axion:jar:1.0-M3-dev", COMMONS.primitives ]
 "regexp:regexp:jar:1.3"
 WOODSTOX            = "woodstox:wstx-asl:jar:3.0.1"
@@ -331,8 +331,12 @@
     derby_sql = concat(path_to(:target_dir, "derby.sql")=>[partial_sql, 
quartz_sql])
     derby_db = Derby.create(path_to(:target_dir, "derby/jpadb")=>derby_sql)
 
-    tests.compile.with projects("ode:bpel-api", "ode:bpel-dao", 
"ode:bpel-obj", "ode:dao-jpa", "ode:utils"),
-      COMMONS.collections, COMMONS.logging, JAVAX.persistence, 
JAVAX.transaction, OPENJPA, XERCES, WSDL4J
+    tests.compile.with projects("ode:bpel-api", "ode:bpel-dao", 
"ode:bpel-obj", 
+      "ode:bpel-epr", "ode:dao-jpa", "ode:utils"),
+      HSQLDB, COMMONS.collections, COMMONS.logging, JAVAX.persistence, 
+      JAVAX.transaction, OPENJPA, XERCES, WSDL4J
+    tests.run.with GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector,
+      BACKPORT, JAVAX.connector, JAVAX.ejb, COMMONS.lang, LOG4J
 
     build derby_db
     package :zip, :include=>derby_db
@@ -411,7 +415,8 @@
       jbi.merge project("ode:dao-hibernate-db").package(:zip)
       jbi.merge project("ode:dao-jpa-ojpa-derby").package(:zip)
     end
-    tests.compile.with SERVICEMIX
+    tests.compile.with SERVICEMIX, GERONIMO.kernel, GERONIMO.transaction, 
+      JAVAX.transaction, JAVAX.connector, JBI, BACKPORT
   end
 
   desc "ODE JCA Resource Archive"

Modified: 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java?view=diff&rev=525666&r1=525665&r2=525666
==============================================================================
--- 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java
 (original)
+++ 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java
 Wed Apr  4 17:58:43 2007
@@ -32,64 +32,69 @@
 import org.apache.ode.bpel.dao.ScopeDAO;
 import org.apache.ode.bpel.dao.ScopeStateEnum;
 import org.apache.ode.bpel.dao.XmlDataDAO;
+import org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl;
+import org.apache.ode.il.EmbeddedGeronimoFactory;
 import org.apache.ode.utils.DOMUtils;
+import org.apache.ode.utils.GUID;
+import org.hsqldb.jdbc.jdbcDataSource;
 import org.xml.sax.SAXException;
 
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
+import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
 import javax.xml.namespace.QName;
 import java.io.IOException;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
+import java.util.Properties;
 
 public class InsertObjectTest extends TestCase {
        
-       private EntityManager em;
        private static final String TEST_NS = "http://org.apache.ode.jpa.test";;
        private static final String CORRELATOR_ID1 = "testCorrelator1";
        private static final String CORRELATOR_ID2 = "testCorrelator2";
        private static final Calendar cal = new GregorianCalendar();
 
-       
-       
-       @Override
+    TransactionManager _txm;
+    DataSource _ds;
+    BPELDAOConnectionFactoryImpl factory;
+
+    @Override
        protected void setUp() throws Exception {
-               
-               try {
-                       EntityManagerFactory emf = 
Persistence.createEntityManagerFactory("ode-unit-test");
-                       em = emf.createEntityManager();
-               
-               } catch ( Exception e ) {
-                       e.printStackTrace();
-                       fail();
-               }
-               
-               
-       }
+        jdbcDataSource hsqlds = new jdbcDataSource();
+        hsqlds.setDatabase("jdbc:hsqldb:mem:" + new GUID().toString());
+        hsqlds.setUser("sa");
+        hsqlds.setPassword("");
+        _ds = hsqlds;
+
+        _txm = new EmbeddedGeronimoFactory().getTransactionManager();
+
+        factory = new BPELDAOConnectionFactoryImpl();
+        factory.setDataSource(_ds);
+        factory.setTransactionManager(_txm);
+        Properties props = new Properties();
+        props.put("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(ForeignKeys=false)");
+        factory.init(props);
+
+        _txm.begin();
+    }
        
        public void testStart() throws Exception {
+        createStuff(factory);
+    }
 
-               em.getTransaction().begin();
-               
-               BPELDAOConnectionFactoryImpl factory = new 
BPELDAOConnectionFactoryImpl(em);
-               BpelDAOConnection conn = factory.getConnection();
-               
-               ProcessDAO p1 = createProcess(conn,"testPID1","testType");
+    void createStuff(BPELDAOConnectionFactoryImpl factory) throws Exception {
+        BpelDAOConnection conn = factory.getConnection();
+
+        ProcessDAO p1 = createProcess(conn,"testPID1","testType");
                ProcessInstanceDAO pi1 = createProcessInstance(p1, 
CORRELATOR_ID1);
-               
-               
-               em.persist(conn);
-                               
-               //em.flush();
-               em.getTransaction().commit();
-               
-       }
+    }
 
-       @Override
+    @Override
        protected void tearDown() throws Exception {
-               em.close();
-       }
+        _txm.commit();
+               _ds = null;
+        _txm = null;
+    }
        
        private MessageExchangeDAO createMessageExchange(ProcessDAO p, 
ProcessInstanceDAO pi, PartnerLinkDAO pl ) throws SAXException, IOException {
                MessageExchangeDAO me = 
pi.getConnection().createMessageExchange('0');
@@ -99,7 +104,7 @@
                me.setCorrelationId("testCorrelationId");
                me.setCorrelationStatus("testCorrelationStatus");
                me.setEPR(DOMUtils.stringToDOM("<testEPR>EPR</testEPR>"));
-               me.setFault("testFault");
+               me.setFault(new QName("testFault"));
                me.setFaultExplanation("testFaultExplanation");
                me.setInstance(pi);
                me.setOperation("testOperation");
@@ -128,12 +133,9 @@
        
        private ProcessDAO createProcess(BpelDAOConnection conn, String pid, 
String type) {
                ProcessDAO p = null;
-               
-               p = conn.createProcess(new QName(TEST_NS,pid), new 
QName(TEST_NS,type),"GUID1");
+               p = conn.createProcess(new QName(TEST_NS,pid), new 
QName(TEST_NS,type),"GUID1",1);
                p.addCorrelator(CORRELATOR_ID1);
                p.addCorrelator(CORRELATOR_ID2);
-               
-               
                return p;
        }
        

Modified: 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java?view=diff&rev=525666&r1=525665&r2=525666
==============================================================================
--- 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java
 (original)
+++ 
incubator/ode/trunk/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java
 Wed Apr  4 17:58:43 2007
@@ -35,12 +35,17 @@
 import org.apache.ode.bpel.dao.ScopeDAO;
 import org.apache.ode.bpel.dao.ScopeStateEnum;
 import org.apache.ode.bpel.dao.XmlDataDAO;
+import org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl;
+import org.apache.ode.il.EmbeddedGeronimoFactory;
+import org.apache.ode.utils.GUID;
+import org.hsqldb.jdbc.jdbcDataSource;
 
 import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
+import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
 import javax.xml.namespace.QName;
 import java.util.Collection;
+import java.util.Properties;
 
 public class SelectObjectTest extends TestCase {
        
@@ -52,27 +57,37 @@
        private static final String CORRELATOR_ID1 = "testCorrelator1";
        private static final String CORRELATOR_ID2 = "testCorrelator2";
 
+    TransactionManager _txm;
+    DataSource _ds;
+    BPELDAOConnectionFactoryImpl factory;
 
-
-       @Override
+    @Override
        protected void setUp() throws Exception {
-               
-               try {
-                       EntityManagerFactory emf = 
Persistence.createEntityManagerFactory("ode-unit-test");
-                       em = emf.createEntityManager();
-               
-               } catch ( Exception e ) {
-                       e.printStackTrace();
-                       fail();
-               }
-               
-               
+        jdbcDataSource hsqlds = new jdbcDataSource();
+        hsqlds.setDatabase("jdbc:hsqldb:mem:" + new GUID().toString());
+        hsqlds.setUser("sa");
+        hsqlds.setPassword("");
+        _ds = hsqlds;
+
+        _txm = new EmbeddedGeronimoFactory().getTransactionManager();
+
+        factory = new BPELDAOConnectionFactoryImpl();
+        factory.setDataSource(_ds);
+        factory.setTransactionManager(_txm);
+        Properties props = new Properties();
+        props.put("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(ForeignKeys=false)");
+        factory.init(props);
+
+        _txm.begin();
        }
        
        public void testGetObject() throws Exception {
-               
-               BPELDAOConnectionFactoryImpl factory = new 
BPELDAOConnectionFactoryImpl(em);
-               BpelDAOConnection conn = factory.getConnection();
+        new InsertObjectTest().createStuff(factory);
+
+        _txm.commit();
+        _txm.begin();        
+
+        BpelDAOConnection conn = factory.getConnection();
                
                // Assert the ProcessDAO
                ProcessDAO p = conn.getProcess(new QName(TEST_NS,"testPID1"));
@@ -111,7 +126,6 @@
                        Long mon = inst.genMonotonic();
                        assertEquals(inst.getActivityFailureCount() , 2);
                        assertNotNull(inst.getActivityFailureDateTime() );
-                       assertSame(inst.getConnection() , conn);
                        assertNotNull(inst.getCreateTime() );
                        assertTrue(inst.getExecutionState().length > 0 );
                        assertNotNull(inst.getLastActiveTime() );
@@ -267,16 +281,14 @@
                        assertEquals(vars[0].getProperty("key1"),"prop1");
                        assertSame(vars[0].getScopeDAO(),childS);
                        
-               } 
-               
-               
-               conn.close();
-
+               }
        }
 
        @Override
        protected void tearDown() throws Exception {
-               em.close();
-       }
+        _txm.commit();
+               _txm = null;
+        _ds = null;
+    }
        
 }

Modified: 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ActivityRecoveryDAOImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ActivityRecoveryDAOImpl.java?view=diff&rev=525666&r1=525665&r2=525666
==============================================================================
--- 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ActivityRecoveryDAOImpl.java
 (original)
+++ 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ActivityRecoveryDAOImpl.java
 Wed Apr  4 17:58:43 2007
@@ -58,7 +58,7 @@
     // _instances is unused because this is a one-way relationship at the 
database level
     @SuppressWarnings("unused")
     @ManyToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST}) 
@Column(name="INSTANCE_ID")
-    private ProcessDAOImpl _instance;
+    private ProcessInstanceDAOImpl _instance;
 
        
     public ActivityRecoveryDAOImpl() {}
@@ -77,8 +77,7 @@
             alist += " " + actions[i];
                _actions = alist;
                
-               _retries = retries;
-               
+               _retries = retries;             
        }
        
        public String getActions() {
@@ -121,4 +120,11 @@
                return _retries;
        }
 
+    public ProcessInstanceDAOImpl getInstance() {
+        return _instance;
+    }
+
+    public void setInstance(ProcessInstanceDAOImpl instance) {
+        _instance = instance;
+    }
 }

Modified: 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java?view=diff&rev=525666&r1=525665&r2=525666
==============================================================================
--- 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
 (original)
+++ 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
 Wed Apr  4 17:58:43 2007
@@ -48,7 +48,7 @@
 @Entity
 @Table(name="ODE_PROCESS")
 @NamedQueries({
-    @NamedQuery(name="InstanceByCKey", query="SELECT cs._scope._instance FROM 
CorrelationSetDAOImpl as cs WHERE cs._correlationKey = :ckey"),
+    @NamedQuery(name="InstanceByCKey", query="SELECT 
cs._scope._processInstance FROM CorrelationSetDAOImpl as cs WHERE 
cs._correlationKey = :ckey"),
     @NamedQuery(name="CorrelatorByKey", query="SELECT c FROM CorrelatorDAOImpl 
as c WHERE c._correlatorKey = :ckey")
 })
 public class ProcessDAOImpl extends OpenJPADAO implements ProcessDAO {

Modified: 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java?view=diff&rev=525666&r1=525665&r2=525666
==============================================================================
--- 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
 (original)
+++ 
incubator/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
 Wed Apr  4 17:58:43 2007
@@ -106,9 +106,10 @@
                        String reason, Date dateTime, Element data, String[] 
actions,
                        int retries) {
 
-               ActivityRecoveryDAO ar = new ActivityRecoveryDAOImpl(channel, 
activityId, reason, dateTime, data, actions, retries);
+               ActivityRecoveryDAOImpl ar = new 
ActivityRecoveryDAOImpl(channel, activityId, reason, dateTime, data, actions, 
retries);
                _recoveries.add(ar);
-               _lastRecovery = dateTime;
+        ar.setInstance(this);
+        _lastRecovery = dateTime;
        }
 
        public ScopeDAO createScope(ScopeDAO parentScope, String name, int 
scopeModelId) {

Copied: 
incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/OdeJbiComponentLifeCycleTest.java
 (from r525627, 
incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/TestOdeJbiComponentLifeCycle.java)
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/OdeJbiComponentLifeCycleTest.java?view=diff&rev=525666&p1=incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/TestOdeJbiComponentLifeCycle.java&r1=525627&p2=incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/OdeJbiComponentLifeCycleTest.java&r2=525666
==============================================================================
--- 
incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/TestOdeJbiComponentLifeCycle.java
 (original)
+++ 
incubator/ode/trunk/jbi/src/test/java/org/apache/ode/jbi/OdeJbiComponentLifeCycleTest.java
 Wed Apr  4 17:58:43 2007
@@ -18,24 +18,20 @@
  */
 package org.apache.ode.jbi;
 
-import java.io.ByteArrayInputStream;
-import java.io.File;
-
-import javax.jbi.messaging.ExchangeStatus;
-import javax.jbi.messaging.InOut;
-import javax.xml.namespace.QName;
-import javax.xml.transform.stream.StreamSource;
-
+import junit.framework.TestCase;
 import org.apache.ode.il.EmbeddedGeronimoFactory;
-import org.apache.ode.utils.DOMUtils;
 import org.apache.servicemix.client.DefaultServiceMixClient;
 import org.apache.servicemix.jbi.container.ActivationSpec;
 import org.apache.servicemix.jbi.container.JBIContainer;
-import org.xml.sax.InputSource;
 
-import junit.framework.TestCase;
+import javax.jbi.messaging.ExchangeStatus;
+import javax.jbi.messaging.InOut;
+import javax.transaction.TransactionManager;
+import javax.xml.namespace.QName;
+import javax.xml.transform.stream.StreamSource;
+import java.io.File;
 
-public class TestOdeJbiComponentLifeCycle extends TestCase {
+public class OdeJbiComponentLifeCycleTest extends TestCase {
 
     JBIContainer container;
     File rootDir, installDir, odeDir;


Reply via email to