Repository: ode Updated Branches: refs/heads/ode-1.3.x 67c45f04a -> 37e7297da
ODE-666: Ported remaining testcases which were on HSQL to H2 Project: http://git-wip-us.apache.org/repos/asf/ode/repo Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/37e7297d Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/37e7297d Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/37e7297d Branch: refs/heads/ode-1.3.x Commit: 37e7297da361ad7e4e46319c27ea3b8261a7adcf Parents: 67c45f0 Author: sathwik <[email protected]> Authored: Thu Aug 6 13:49:12 2015 +0530 Committer: sathwik <[email protected]> Committed: Thu Aug 6 13:49:12 2015 +0530 ---------------------------------------------------------------------- Rakefile | 12 ++++---- .../jdbc/JdbcExternalVariableEngineTest.java | 12 +++----- .../org/apache/ode/store/ProcessStoreImpl.java | 29 ++++++++++---------- .../java/org/apache/ode/store/hib/DaoTest.java | 17 ++++++------ .../ode/dao/jpa/test/InsertObjectTest.java | 14 ++++------ .../ode/dao/jpa/test/SelectObjectTest.java | 14 ++++------ .../ode/scheduler/simple/DelegateSupport.java | 16 +++++------ .../simple/GeronimoDelegateSupport.java | 2 +- .../src/test/resources/simplesched-h2.sql | 28 +++++++++++++++++++ 9 files changed, 79 insertions(+), 65 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/Rakefile ---------------------------------------------------------------------- diff --git a/Rakefile b/Rakefile index 3736586..d28c18f 100644 --- a/Rakefile +++ b/Rakefile @@ -232,7 +232,7 @@ define "ode" do test.with projects("scheduler-simple", "dao-jpa", "dao-hibernate", "bpel-epr"), BACKPORT, COMMONS.pool, COMMONS.lang, COMMONS.io, DERBY, JAVAX.connector, JAVAX.transaction, - GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, TRANQL, HSQLDB, JAVAX.ejb, + GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, TRANQL, HSQLDB, H2::REQUIRES, JAVAX.ejb, OPENJPA, XERCES, XALAN, LOG4J, SLF4J, DOM4J, HIBERNATE, "tranql:tranql-connector-derby-common:jar:1.1" @@ -243,8 +243,8 @@ define "ode" do desc "ODE Simple Scheduler" define "scheduler-simple" do compile.with projects("bpel-api", "utils"), COMMONS.collections, COMMONS.logging, JAVAX.transaction, LOG4J - test.compile.with HSQLDB, GERONIMO.kernel, GERONIMO.transaction - test.with HSQLDB, JAVAX.transaction, JAVAX.resource, JAVAX.connector, LOG4J, + test.compile.with HSQLDB, H2::REQUIRES, GERONIMO.kernel, GERONIMO.transaction + test.with HSQLDB, H2::REQUIRES, JAVAX.transaction, JAVAX.resource, JAVAX.connector, LOG4J, GERONIMO.kernel, GERONIMO.transaction, GERONIMO.connector, TRANQL, BACKPORT, JAVAX.ejb package :jar end @@ -266,7 +266,7 @@ define "ode" do define "bpel-store" do compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-obj", "bpel-schemas", "bpel-epr", "dao-hibernate", "dao-jpa", "utils"), - COMMONS.logging, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, HIBERNATE, HSQLDB, XMLBEANS, XERCES, WSDL4J, OPENJPA, SPRING + COMMONS.logging, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, HIBERNATE, HSQLDB, H2::REQUIRES, XMLBEANS, XERCES, WSDL4J, OPENJPA, SPRING compile { open_jpa_enhance } resources hibernate_doclet(:package=>"org.apache.ode.store.hib", :excludedtags=>"@version,@author,@todo") @@ -285,7 +285,7 @@ define "ode" do test.with projects("bpel-obj", "jacob", "bpel-schemas", "bpel-scripts", "scheduler-simple"), COMMONS.collections, COMMONS.lang, COMMONS.logging, DERBY, JAVAX.connector, - JAVAX.stream, JAVAX.transaction, JAXEN, HSQLDB, LOG4J, SAXON, XERCES, XMLBEANS, XALAN, GERONIMO.transaction, SPRING, HIBERNATE, SLF4J, DOM4J + JAVAX.stream, JAVAX.transaction, JAXEN, HSQLDB, H2::REQUIRES, LOG4J, SAXON, XERCES, XMLBEANS, XALAN, GERONIMO.transaction, SPRING, HIBERNATE, SLF4J, DOM4J package :jar end @@ -389,7 +389,7 @@ define "ode" do test.with projects("bpel-api", "bpel-dao", "bpel-obj", "bpel-epr", "dao-jpa", "utils"), BACKPORT, COMMONS.collections, COMMONS.lang, COMMONS.logging, GERONIMO.transaction, - GERONIMO.kernel, GERONIMO.connector, HSQLDB, JAVAX.connector, JAVAX.ejb, JAVAX.persistence, + GERONIMO.kernel, GERONIMO.connector, HSQLDB, H2::REQUIRES, JAVAX.connector, JAVAX.ejb, JAVAX.persistence, JAVAX.transaction, LOG4J, OPENJPA, XERCES, WSDL4J build derby_db http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/bpel-runtime/src/test/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableEngineTest.java ---------------------------------------------------------------------- diff --git a/bpel-runtime/src/test/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableEngineTest.java b/bpel-runtime/src/test/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableEngineTest.java index 0b2ed62..e93896c 100644 --- a/bpel-runtime/src/test/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableEngineTest.java +++ b/bpel-runtime/src/test/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableEngineTest.java @@ -33,7 +33,7 @@ import org.apache.ode.utils.DOMUtils; import org.apache.ode.utils.GUID; import org.apache.ode.bpel.evar.ExternalVariableModule.Locator; import org.apache.ode.bpel.evar.ExternalVariableModule.Value; -import org.hsqldb.jdbc.JDBCDataSource; +import org.h2.jdbcx.JdbcDataSource; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -55,18 +55,14 @@ public class JdbcExternalVariableEngineTest extends TestCase { final QName _varType = new QName("foo", "foobar"); ExternalVariableConf _econf; - JDBCDataSource _ds; + JdbcDataSource _ds; JdbcExternalVariableModule _engine; Element _el1; public void setUp() throws Exception { - _ds = new org.hsqldb.jdbc.JDBCDataSource(); - _ds.setDatabase("jdbc:hsqldb:mem:" + new GUID().toString()); + _ds = new org.h2.jdbcx.JdbcDataSource(); + _ds.setURL("jdbc:h2:mem:" + new GUID().toString()+";DB_CLOSE_DELAY=-1"); _ds.setUser("sa"); - //this is to allow column names to start with underscores. - Properties prop = new Properties(); - prop.setProperty("sql.regular_names", "false"); - _ds.setProperties(prop); Connection conn = _ds.getConnection(); Statement s = conn.createStatement(); http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java ---------------------------------------------------------------------- diff --git a/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java b/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java index 4c1670a..a0cbc22 100644 --- a/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java +++ b/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java @@ -29,7 +29,7 @@ import org.apache.ode.store.DeploymentUnitDir.CBPInfo; import org.apache.ode.utils.DOMUtils; import org.apache.ode.utils.GUID; import org.apache.ode.utils.msg.MessageBundle; -import org.hsqldb.jdbc.JDBCDataSource; +import org.h2.jdbcx.JdbcDataSource; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -49,7 +49,7 @@ import java.util.regex.Pattern; /** * <p> - * JDBC-based implementation of a process store. Also provides an "in-memory" store by way of HSQL database. + * JDBC-based implementation of a process store. Also provides an "in-memory" store by way of H2 database. * </p> * * <p> @@ -119,15 +119,15 @@ public class ProcessStoreImpl implements ProcessStore { _cf = new org.apache.ode.store.jpa.DbConfStoreConnectionFactory(ds, props.getProperties(), createDatamodel, props.getTxFactoryClass()); } } else { - // If the datasource is not provided, then we create a HSQL-based + // If the datasource is not provided, then we create a H2-based // in-memory database. Makes testing a bit simpler. - DataSource hsqlds = createInternalDS(new GUID().toString()); + DataSource h2 = createInternalDS(new GUID().toString()); if ("hibernate".equalsIgnoreCase(persistenceType)) { - _cf = new org.apache.ode.store.hib.DbConfStoreConnectionFactory(hsqlds, props.getProperties(), createDatamodel, props.getTxFactoryClass()); + _cf = new org.apache.ode.store.hib.DbConfStoreConnectionFactory(h2, props.getProperties(), createDatamodel, props.getTxFactoryClass()); } else { - _cf = new org.apache.ode.store.jpa.DbConfStoreConnectionFactory(hsqlds, props.getProperties(), createDatamodel, props.getTxFactoryClass()); + _cf = new org.apache.ode.store.jpa.DbConfStoreConnectionFactory(h2, props.getProperties(), createDatamodel, props.getTxFactoryClass()); } - _inMemDs = hsqlds; + _inMemDs = h2; } @@ -139,10 +139,10 @@ public class ProcessStoreImpl implements ProcessStore { */ public ProcessStoreImpl(EndpointReferenceContext eprContext, DataSource inMemDs) { this.eprContext = eprContext; - DataSource hsqlds = createInternalDS(new GUID().toString()); + DataSource h2 = createInternalDS(new GUID().toString()); //when in memory we always create the model as we are starting from scratch - _cf = new org.apache.ode.store.jpa.DbConfStoreConnectionFactory(hsqlds, true, OdeConfigProperties.DEFAULT_TX_FACTORY_CLASS_NAME); - _inMemDs = hsqlds; + _cf = new org.apache.ode.store.jpa.DbConfStoreConnectionFactory(h2, true, OdeConfigProperties.DEFAULT_TX_FACTORY_CLASS_NAME); + _inMemDs = h2; } public void shutdown() { @@ -861,11 +861,10 @@ public class ProcessStoreImpl implements ProcessStore { } public static DataSource createInternalDS(String guid) { - JDBCDataSource hsqlds = new JDBCDataSource(); - hsqlds.setDatabase("jdbc:hsqldb:mem:" + guid); - hsqlds.setUser("sa"); - hsqlds.setPassword(""); - return hsqlds; + JdbcDataSource h2 = new JdbcDataSource(); + h2.setURL("jdbc:h2:mem:" + new GUID().toString()+";DB_CLOSE_DELAY=-1"); + h2.setUser("sa"); + return h2; } public static void shutdownInternalDB(DataSource ds) { http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/bpel-store/src/test/java/org/apache/ode/store/hib/DaoTest.java ---------------------------------------------------------------------- diff --git a/bpel-store/src/test/java/org/apache/ode/store/hib/DaoTest.java b/bpel-store/src/test/java/org/apache/ode/store/hib/DaoTest.java index 57de78c..5dfe899 100644 --- a/bpel-store/src/test/java/org/apache/ode/store/hib/DaoTest.java +++ b/bpel-store/src/test/java/org/apache/ode/store/hib/DaoTest.java @@ -25,26 +25,25 @@ import org.apache.ode.store.ConfStoreConnection; import org.apache.ode.store.ConfStoreConnectionFactory; import org.apache.ode.store.DeploymentUnitDAO; import org.apache.ode.store.ProcessConfDAO; -import org.hsqldb.jdbc.JDBCDataSource; +import org.apache.ode.utils.GUID; +import org.h2.jdbcx.JdbcDataSource; import java.util.Properties; import javax.xml.namespace.QName; public class DaoTest extends TestCase { - JDBCDataSource hsqlds; + JdbcDataSource h2; ConfStoreConnectionFactory cf; public void setUp() throws Exception { - hsqlds = new JDBCDataSource(); - hsqlds.setDatabase("jdbc:hsqldb:mem:test"); - hsqlds.setUser("sa"); - hsqlds.setPassword(""); - - cf = new DbConfStoreConnectionFactory(hsqlds, new Properties(), true, OdeConfigProperties.DEFAULT_TX_FACTORY_CLASS_NAME); + h2 = new JdbcDataSource(); + h2.setURL("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1"); + h2.setUser("sa"); + cf = new DbConfStoreConnectionFactory(h2, new Properties(), true, OdeConfigProperties.DEFAULT_TX_FACTORY_CLASS_NAME); } public void tearDown() throws Exception { - hsqlds.getConnection().createStatement().execute("SHUTDOWN"); + h2.getConnection().createStatement().execute("SHUTDOWN"); } public void testEmpty() { http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java ---------------------------------------------------------------------- diff --git a/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java b/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java index 3850820..19878be 100644 --- a/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java +++ b/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java @@ -37,7 +37,7 @@ 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.h2.jdbcx.JdbcDataSource; import org.xml.sax.SAXException; import javax.sql.DataSource; @@ -62,14 +62,10 @@ public class InsertObjectTest extends TestCase { @Override protected void setUp() throws Exception { - JDBCDataSource hsqlds = new JDBCDataSource(); - hsqlds.setDatabase("jdbc:hsqldb:mem:" + new GUID().toString()); - hsqlds.setUser("sa"); - hsqlds.setPassword(""); - Properties prop = new Properties(); - prop.setProperty("sql.enforce_size", "false"); - hsqlds.setProperties(prop); - _ds = hsqlds; + JdbcDataSource h2 = new JdbcDataSource(); + h2.setURL("jdbc:h2:mem:" + new GUID().toString()+";DB_CLOSE_DELAY=-1"); + h2.setUser("sa"); + _ds = h2; _txm = new EmbeddedGeronimoFactory().getTransactionManager(); http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java ---------------------------------------------------------------------- diff --git a/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java b/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java index c73c90d..4e3be80 100644 --- a/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java +++ b/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java @@ -39,7 +39,7 @@ 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 org.h2.jdbcx.JdbcDataSource; import javax.persistence.EntityManager; import javax.sql.DataSource; @@ -65,14 +65,10 @@ public class SelectObjectTest extends TestCase { @Override protected void setUp() throws Exception { - JDBCDataSource hsqlds = new JDBCDataSource(); - hsqlds.setDatabase("jdbc:hsqldb:mem:" + new GUID().toString()); - hsqlds.setUser("sa"); - hsqlds.setPassword(""); - Properties prop = new Properties(); - prop.setProperty("sql.enforce_size", "false"); - hsqlds.setProperties(prop); - _ds = hsqlds; + JdbcDataSource h2 = new JdbcDataSource(); + h2.setURL("jdbc:h2:mem:" + new GUID().toString()+";DB_CLOSE_DELAY=-1"); + h2.setUser("sa"); + _ds = h2; _txm = new EmbeddedGeronimoFactory().getTransactionManager(); http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java ---------------------------------------------------------------------- diff --git a/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java b/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java index 739fed1..2462567 100644 --- a/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java +++ b/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java @@ -26,7 +26,8 @@ import javax.sql.DataSource; import javax.transaction.TransactionManager; import org.apache.ode.utils.GUID; -import org.hsqldb.jdbc.JDBCDataSource; +import org.h2.jdbcx.JdbcDataSource; + /** @@ -48,11 +49,10 @@ public class DelegateSupport { } protected void initialize(TransactionManager txm) throws Exception { - JDBCDataSource ds = new JDBCDataSource(); - ds.setDatabase("jdbc:hsqldb:mem:" + new GUID().toString()); - ds.setUser("sa"); - ds.setPassword(""); - _ds = ds; + JdbcDataSource h2 = new JdbcDataSource(); + h2.setURL("jdbc:h2:mem:" + new GUID().toString()+";DB_CLOSE_DELAY=-1"); + h2.setUser("sa"); + _ds = h2; setup(); _del = new JdbcDelegate(_ds); @@ -68,14 +68,14 @@ public class DelegateSupport { StringBuffer sql = new StringBuffer(); { - InputStream in = getClass().getResourceAsStream("/simplesched-hsql.sql"); + InputStream in = getClass().getResourceAsStream("/simplesched-h2.sql"); int v; while ((v = in.read()) != -1) { sql.append((char) v); } } - c.createStatement().executeUpdate("CREATE FUNCTION mod(a BIGINT, b BIGINT) RETURNS BIGINT LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME 'CLASSPATH:org.apache.ode.scheduler.simple.DelegateSupport.mod';"); + //c.createStatement().executeUpdate("CREATE FUNCTION mod(a BIGINT, b BIGINT) RETURNS BIGINT LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME 'CLASSPATH:org.apache.ode.scheduler.simple.DelegateSupport.mod';"); c.createStatement().executeUpdate(sql.toString()); } finally { c.close(); http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java ---------------------------------------------------------------------- diff --git a/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java b/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java index da7e967..6596cea 100644 --- a/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java +++ b/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java @@ -45,7 +45,7 @@ public class GeronimoDelegateSupport extends DelegateSupport { @Override protected void initialize(TransactionManager txm) throws Exception { - _ds = createGeronimoDataSource(txm, "jdbc:hsqldb:mem:" + new GUID().toString(), "org.hsqldb.jdbcDriver", "sa", ""); + _ds = createGeronimoDataSource(txm, "jdbc:h2:mem:" + new GUID().toString(), "org.h2.Driver", "sa", ""); setup(); _del = new JdbcDelegate(_ds); } http://git-wip-us.apache.org/repos/asf/ode/blob/37e7297d/scheduler-simple/src/test/resources/simplesched-h2.sql ---------------------------------------------------------------------- diff --git a/scheduler-simple/src/test/resources/simplesched-h2.sql b/scheduler-simple/src/test/resources/simplesched-h2.sql new file mode 100644 index 0000000..a2c0929 --- /dev/null +++ b/scheduler-simple/src/test/resources/simplesched-h2.sql @@ -0,0 +1,28 @@ +-- Apache ODE - SimpleScheduler Database Schema +-- +-- Apache H2 scripts by Maciej Szefler. +-- +-- +CREATE TABLE ODE_JOB ( + jobid CHAR(64) NOT NULL DEFAULT '', + ts BIGINT NOT NULL DEFAULT 0, + nodeid char(64) NULL, + scheduled int NOT NULL DEFAULT 0, + transacted int NOT NULL DEFAULT 0, + + instanceId BIGINT, + mexId varchar(255), + processId varchar(255), + type varchar(255), + channel varchar(255), + correlatorId varchar(255), + correlationKeySet varchar(255), + retryCount int, + inMem int, + detailsExt blob(4096), + + PRIMARY KEY(jobid) +); + +create index IDX_ODE_JOB_TS on ODE_JOB(ts); +create index IDX_ODE_JOB_NODEID on ODE_JOB(nodeid); \ No newline at end of file
