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;