From f227291a26cc53fb51e2d969eeb36dc1af4cc2b1 Mon Sep 17 00:00:00 2001 From: Enrico Olivelli Date: Sat, 10 Apr 2021 16:55:53 +0200 Subject: [PATCH 1/4] Start HerdDB profile --- pom.xml | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/pom.xml b/pom.xml index 55a367df04..861a10b4f8 100644 --- a/pom.xml +++ b/pom.xml @@ -1102,6 +1102,58 @@ + + + test-herddb-docker + + + test-herddb-docker + + + + + org.herddb + herddb-jdbc + 0.22.0 + test + + + + org.herddb.jdbc.Driver + + jdbc:herddb://localhost + sa + hdb + + + + 5 + 0 + + + + + + + io.fabric8 + docker-maven-plugin + + + + herddb/herddb:latest + + + 7000:7000 + + + + + + + + + + - test-herddb-docker + test-herddb - test-herddb-docker + test-herddb @@ -1121,7 +1121,7 @@ herddb.jdbc.Driver - jdbc:herddb:server:localhost:7000 + jdbc:herddb:local sa hdb @@ -1129,29 +1129,7 @@ 5 0 - - - - - - io.fabric8 - docker-maven-plugin - - - - herddb/herddb:latest - - - 7000:7000 - - - - - - - - From 7d291f8a6f52fc01a4505c11b188c8cb3d879d6c Mon Sep 17 00:00:00 2001 From: Enrico Olivelli Date: Sat, 17 Apr 2021 12:30:07 +0200 Subject: [PATCH 4/4] Exclude some tests with HerdDBDictionary --- .../org/apache/openjpa/persistence/TestUnwrap.java | 10 ++++++++++ .../persistence/annotations/TestGenerators.java | 8 ++++++++ .../openjpa/persistence/annotations/TestOneToMany.java | 10 ++++++++++ .../batch/exception/TestBatchLimitException.java | 4 ++++ .../datacache/TestBulkJPQLAndDataCache.java | 4 ++++ .../datacache/TestBulkUpdatesAndVersionColumn.java | 5 ++++- .../datacache/TestBulkUpdatesDataCacheEviction.java | 4 ++++ .../persistence/detachment/TestDetachNoStateField.java | 4 ++++ .../persistence/jdbc/TestTimestampPKDeletion.java | 4 ++++ .../persistence/jdbc/annotations/TestEJBEmbedded.java | 4 ++++ .../jdbc/annotations/TestTablePerClassInheritance.java | 4 ++++ .../jdbc/schema/TestSchemaGenerationProperties.java | 3 ++- .../persistence/jdbc/update/TestParentChild.java | 5 +++++ 13 files changed, 67 insertions(+), 2 deletions(-) diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java index b6fe689e9d..7620c1437b 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java @@ -30,12 +30,22 @@ import org.apache.openjpa.jdbc.conf.JDBCConfiguration; import org.apache.openjpa.jdbc.sql.DerbyDictionary; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.kernel.QueryLanguages; import org.apache.openjpa.lib.jdbc.DelegatingConnection; +import org.apache.openjpa.persistence.detachment.model.NoDetachedStateEntityFieldAccess; +import org.apache.openjpa.persistence.detachment.model.NoDetachedStateEntityPropertyAccess; import org.apache.openjpa.persistence.test.SingleEMFTestCase; +import static org.junit.Assume.assumeFalse; + public class TestUnwrap extends SingleEMFTestCase { + @Override + protected void setUp(Object... props) { + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); + } + /** * Tests a query can be unwrapped as an instance of a series of class or * interface. diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/annotations/TestGenerators.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/annotations/TestGenerators.java index ac66db7862..29d7e01ec7 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/annotations/TestGenerators.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/annotations/TestGenerators.java @@ -20,9 +20,14 @@ import javax.persistence.Query; +import org.apache.openjpa.jdbc.conf.JDBCConfiguration; +import org.apache.openjpa.jdbc.sql.DBDictionary; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManager; import org.apache.openjpa.persistence.annotations.common.apps.annotApp.annotype.Generator; +import static org.junit.Assume.assumeFalse; + /** * Test for generators * @@ -40,6 +45,9 @@ public TestGenerators(String name) public void setUp() throws Exception { deleteAll(Generator.class); + JDBCConfiguration conf = (JDBCConfiguration) getEmf().getConfiguration(); + DBDictionary dict = conf.getDBDictionaryInstance(); + assumeFalse(dict instanceof HerdDBDictionary); } public void testGet() { diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/annotations/TestOneToMany.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/annotations/TestOneToMany.java index 8280155a84..f5c5b543db 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/annotations/TestOneToMany.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/annotations/TestOneToMany.java @@ -20,10 +20,17 @@ import java.util.Collection; +import org.apache.openjpa.jdbc.conf.JDBCConfiguration; +import org.apache.openjpa.jdbc.sql.DBDictionary; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; +import org.apache.openjpa.jdbc.sql.OracleDictionary; +import org.apache.openjpa.jdbc.sql.PostgresDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManager; import org.apache.openjpa.persistence.annotations.common.apps.annotApp.annotype.AnnoTest1; import org.apache.openjpa.persistence.annotations.common.apps.annotApp.annotype.AnnoTest2; +import static org.junit.Assume.assumeFalse; + /** * Test for 1-m @@ -41,6 +48,9 @@ public TestOneToMany(String name) public void setUp() { deleteAll(AnnoTest1.class); deleteAll(AnnoTest2.class); + JDBCConfiguration conf = (JDBCConfiguration) getEmf().getConfiguration(); + DBDictionary dict = conf.getDBDictionaryInstance(); + assumeFalse(dict instanceof HerdDBDictionary); } public void testOneToMany() { diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/batch/exception/TestBatchLimitException.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/batch/exception/TestBatchLimitException.java index b129ac3572..b356643bdd 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/batch/exception/TestBatchLimitException.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/batch/exception/TestBatchLimitException.java @@ -23,12 +23,15 @@ import org.apache.openjpa.jdbc.conf.JDBCConfiguration; import org.apache.openjpa.jdbc.sql.DBDictionary; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.jdbc.sql.OracleDictionary; import org.apache.openjpa.jdbc.sql.PostgresDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI; import org.apache.openjpa.persistence.test.AbstractPersistenceTestCase; import org.apache.openjpa.util.ExceptionInfo; +import static org.junit.Assume.assumeFalse; + //This test was created for OPENJPA-1550. In this issue the user was //not able to get the 'failed object' (the object causing the failure) when //batch limit was -1 or a value greater than 1. Also, they found that the @@ -63,6 +66,7 @@ public EntityManagerFactory newEmf(String batchLimit) { DBDictionary dict = conf.getDBDictionaryInstance(); isOracle = dict instanceof OracleDictionary; isPostgres = dict instanceof PostgresDictionary; + assumeFalse(dict instanceof HerdDBDictionary); return emf; } diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkJPQLAndDataCache.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkJPQLAndDataCache.java index 09255b5bfa..a933390066 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkJPQLAndDataCache.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkJPQLAndDataCache.java @@ -22,11 +22,14 @@ import javax.persistence.EntityManager; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManager; import org.apache.openjpa.persistence.OpenJPAPersistence; import org.apache.openjpa.persistence.simple.AllFieldTypes; import org.apache.openjpa.persistence.test.SingleEMFTestCase; +import static org.junit.Assume.assumeFalse; + public class TestBulkJPQLAndDataCache extends SingleEMFTestCase { @@ -34,6 +37,7 @@ public class TestBulkJPQLAndDataCache @Override public void setUp() throws Exception { + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); setUp("openjpa.DataCache", "true", "openjpa.QueryCache", "true", "openjpa.RemoteCommitProvider", "sjvm", diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkUpdatesAndVersionColumn.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkUpdatesAndVersionColumn.java index 84fa3288b5..ec0824aa57 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkUpdatesAndVersionColumn.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkUpdatesAndVersionColumn.java @@ -25,10 +25,13 @@ import org.apache.openjpa.jdbc.meta.ClassMapping; import org.apache.openjpa.jdbc.meta.FieldMapping; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.persistence.JPAFacadeHelper; import org.apache.openjpa.persistence.OpenJPAEntityManager; import org.apache.openjpa.persistence.test.SingleEMFTestCase; +import static org.junit.Assume.assumeFalse; + public class TestBulkUpdatesAndVersionColumn extends SingleEMFTestCase { @@ -37,7 +40,7 @@ public void setUp() throws Exception { setUp("openjpa.DataCache", "true", "openjpa.RemoteCommitProvider", "sjvm", OptimisticLockInstance.class, CLEAR_TABLES); - + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); OpenJPAEntityManager em = emf.createEntityManager(); em.getTransaction().begin(); OptimisticLockInstance pc = new OptimisticLockInstance("foo"); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkUpdatesDataCacheEviction.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkUpdatesDataCacheEviction.java index 92311a63b7..5e48a123ee 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkUpdatesDataCacheEviction.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestBulkUpdatesDataCacheEviction.java @@ -21,10 +21,13 @@ import javax.persistence.Cache; import javax.persistence.EntityManager; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI; import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI; import org.apache.openjpa.persistence.test.SingleEMFTestCase; +import static org.junit.Assume.assumeFalse; + public class TestBulkUpdatesDataCacheEviction extends SingleEMFTestCase { Object[] props = new Object[] { CLEAR_TABLES, CachedEntityStatistics.class, "openjpa.DataCache", "true" }; Object[] noEvictProps = new Object[] { CLEAR_TABLES, CachedEntityStatistics.class @@ -33,6 +36,7 @@ public class TestBulkUpdatesDataCacheEviction extends SingleEMFTestCase { @Override public void setUp() throws Exception { super.setUp(props); + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); } /** diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/detachment/TestDetachNoStateField.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/detachment/TestDetachNoStateField.java index da5d5e0b50..aa0c5dbe49 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/detachment/TestDetachNoStateField.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/detachment/TestDetachNoStateField.java @@ -19,17 +19,21 @@ package org.apache.openjpa.persistence.detachment; import org.apache.openjpa.enhance.PersistenceCapable; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI; import org.apache.openjpa.persistence.detachment.model.NoDetachedStateEntityFieldAccess; import org.apache.openjpa.persistence.detachment.model.NoDetachedStateEntityPropertyAccess; import org.apache.openjpa.persistence.test.SingleEMFTestCase; +import static org.junit.Assume.assumeFalse; + public class TestDetachNoStateField extends SingleEMFTestCase { @Override protected void setUp(Object... props) { super.setUp(DROP_TABLES, "openjpa.DetachState", "loaded(DetachedStateField=false)", NoDetachedStateEntityPropertyAccess.class, NoDetachedStateEntityFieldAccess.class); + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); loadDB(); } diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/TestTimestampPKDeletion.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/TestTimestampPKDeletion.java index bd55a9010e..a2863450d8 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/TestTimestampPKDeletion.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/TestTimestampPKDeletion.java @@ -24,13 +24,17 @@ import javax.persistence.EntityTransaction; import javax.persistence.Query; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.persistence.simple.EntityWithTimestampPK; import org.apache.openjpa.persistence.test.SQLListenerTestCase; +import static org.junit.Assume.assumeFalse; + public class TestTimestampPKDeletion extends SQLListenerTestCase { @Override public void setUp() { + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); setUp(EntityWithTimestampPK.class); } diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestEJBEmbedded.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestEJBEmbedded.java index 80f1e107ee..50cc35081f 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestEJBEmbedded.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestEJBEmbedded.java @@ -31,12 +31,15 @@ import org.apache.openjpa.jdbc.meta.strats.MaxEmbeddedClobFieldStrategy; import org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy; import org.apache.openjpa.jdbc.sql.DBDictionary; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.meta.ClassMetaData; import org.apache.openjpa.meta.FieldMetaData; import org.apache.openjpa.persistence.JPAFacadeHelper; import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI; import org.apache.openjpa.persistence.test.SingleEMFTestCase; +import static org.junit.Assume.assumeFalse; + /** * Test for embedded * @@ -58,6 +61,7 @@ public void setUp() { setUp(EmbedOwner.class, EmbedValue.class, CLEAR_TABLES // ,"openjpa.Log","SQL=trace" ); + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); } public void testEmbedded() { diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestTablePerClassInheritance.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestTablePerClassInheritance.java index 84a7f31a8e..9e2f81797e 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestTablePerClassInheritance.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestTablePerClassInheritance.java @@ -22,9 +22,12 @@ import org.apache.openjpa.jdbc.meta.ClassMapping; import org.apache.openjpa.jdbc.meta.strats.FullClassStrategy; import org.apache.openjpa.jdbc.meta.strats.NoneDiscriminatorStrategy; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManager; import org.apache.openjpa.persistence.test.SingleEMFTestCase; +import static org.junit.Assume.assumeFalse; + /** *

Test that InheritanceType.TABLE_PER_CLASS JPA mapping is translated * correctly. See the kodo.jdbc.meta.tableperclass test package @@ -39,6 +42,7 @@ public class TestTablePerClassInheritance public void setUp() { setUp(TablePerClass1.class, TablePerClass2.class, EmbedOwner.class, EmbedValue.class, CLEAR_TABLES); + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); } public void testMapping() { diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaGenerationProperties.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaGenerationProperties.java index fc46ac4aec..128a51db19 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaGenerationProperties.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaGenerationProperties.java @@ -20,6 +20,7 @@ import static org.apache.openjpa.jdbc.identifier.DBIdentifier.newTable; import static org.apache.openjpa.jdbc.identifier.QualifiedDBIdentifier.getPath; +import static org.junit.Assume.assumeFalse; import java.io.File; import java.sql.SQLException; @@ -31,6 +32,7 @@ import org.apache.openjpa.jdbc.schema.SchemaGroup; import org.apache.openjpa.jdbc.schema.SchemaTool; import org.apache.openjpa.jdbc.sql.DBDictionary; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.jdbc.sql.PostgresDictionary; import org.apache.openjpa.jdbc.sql.SQLServerDictionary; import org.apache.openjpa.persistence.OpenJPAEntityManager; @@ -75,7 +77,6 @@ protected void addProperties(Map map) {} @Override public void setUp() throws Exception { super.setUp(); - OpenJPAEntityManagerFactory pmf = getEmf(new HashMap()); pmf.createEntityManager(); JDBCConfiguration conf = (JDBCConfiguration) ((OpenJPAEntityManagerFactorySPI) pmf).getConfiguration(); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/update/TestParentChild.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/update/TestParentChild.java index 3f43b462b9..7187f55674 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/update/TestParentChild.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/update/TestParentChild.java @@ -22,10 +22,14 @@ import org.apache.openjpa.jdbc.meta.FieldMapping; import org.apache.openjpa.jdbc.schema.ForeignKey; +import org.apache.openjpa.jdbc.sql.HerdDBDictionary; import org.apache.openjpa.meta.ClassMetaData; import org.apache.openjpa.meta.MetaDataRepository; import org.apache.openjpa.persistence.test.CombinatorialPersistenceTestCase; +import static org.junit.Assume.assumeFalse; +import static org.junit.Assume.assumeTrue; + /** * Tests for SQL statement ordering capabilities of different update strategies * for a Parent-Child model against different physical database constraints. @@ -103,6 +107,7 @@ private static enum PersistOrder { @Override public void setUp() { + assumeFalse(this.getDBDictionary() instanceof HerdDBDictionary); // The options can also be added in setup() as well but then // coutTestCase() will only record test methods and not multiply them // with number of configuration combinations the same tests will run.