diff --git a/redisson-hibernate/pom.xml b/redisson-hibernate/pom.xml index 0c26f385a..3c7a03cca 100644 --- a/redisson-hibernate/pom.xml +++ b/redisson-hibernate/pom.xml @@ -43,12 +43,6 @@ 3.11.1 test - - junit - junit - 4.13.1 - test - com.h2database h2 @@ -56,12 +50,6 @@ test - - org.testcontainers - testcontainers - test - - ch.qos.logback logback-classic diff --git a/redisson-hibernate/redisson-hibernate-4/pom.xml b/redisson-hibernate/redisson-hibernate-4/pom.xml index 900489885..2f1fa225d 100644 --- a/redisson-hibernate/redisson-hibernate-4/pom.xml +++ b/redisson-hibernate/redisson-hibernate-4/pom.xml @@ -33,6 +33,14 @@ + + + + org.testcontainers + testcontainers + test + + diff --git a/redisson-hibernate/redisson-hibernate-5/pom.xml b/redisson-hibernate/redisson-hibernate-5/pom.xml index 71f2cfaa4..49ac4371b 100644 --- a/redisson-hibernate/redisson-hibernate-5/pom.xml +++ b/redisson-hibernate/redisson-hibernate-5/pom.xml @@ -53,6 +53,12 @@ test + + org.testcontainers + testcontainers + test + + diff --git a/redisson-hibernate/redisson-hibernate-52/pom.xml b/redisson-hibernate/redisson-hibernate-52/pom.xml index 1533054bd..ec6d2303a 100644 --- a/redisson-hibernate/redisson-hibernate-52/pom.xml +++ b/redisson-hibernate/redisson-hibernate-52/pom.xml @@ -46,6 +46,13 @@ 2.3.1 test + + + org.testcontainers + testcontainers + test + + diff --git a/redisson-hibernate/redisson-hibernate-6/pom.xml b/redisson-hibernate/redisson-hibernate-6/pom.xml index 39acadcb2..e47960d83 100644 --- a/redisson-hibernate/redisson-hibernate-6/pom.xml +++ b/redisson-hibernate/redisson-hibernate-6/pom.xml @@ -33,21 +33,12 @@ test - @@ -58,7 +49,6 @@ maven-surefire-plugin true - 2 true ${argLine} diff --git a/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/CollectionTest.java b/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/CollectionTest.java index e10fac9a6..f3950d02c 100644 --- a/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/CollectionTest.java +++ b/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/CollectionTest.java @@ -1,17 +1,18 @@ package org.redisson.hibernate; +import jakarta.persistence.*; import org.hibernate.Session; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; -import org.hibernate.cfg.Configuration; -import org.hibernate.cfg.Environment; import org.hibernate.stat.Statistics; -import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; -import org.junit.*; - -import jakarta.persistence.*; +import org.hibernate.testing.orm.junit.BaseSessionFactoryFunctionalTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.FixedHostPortGenericContainer; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; import java.io.Serializable; import java.util.ArrayList; @@ -24,14 +25,15 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Nikita Koksharov * */ -public class CollectionTest extends BaseCoreFunctionalTestCase { +@Testcontainers +public class CollectionTest extends BaseSessionFactoryFunctionalTest { - @ClassRule - public static GenericContainer H2 = new FixedHostPortGenericContainer("oscarfonts/h2:latest") + @Container + public static final GenericContainer H2 = new FixedHostPortGenericContainer("oscarfonts/h2:latest") .withFixedExposedPort(1521, 1521); - @ClassRule - public static GenericContainer REDIS = new FixedHostPortGenericContainer("redis:latest") + @Container + public static final GenericContainer REDIS = new FixedHostPortGenericContainer("redis:latest") .withFixedExposedPort(6379, 6379); @Entity @@ -65,23 +67,7 @@ public class CollectionTest extends BaseCoreFunctionalTestCase { return new Class[] { A.class, B.class }; } - @Override - protected void configure(Configuration cfg) { - super.configure(cfg); -// cfg.setProperty(Environment.DRIVER, org.h2.Driver.class.getName()); -// cfg.setProperty(Environment.URL, "jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;"); -// cfg.setProperty(Environment.USER, "sa"); -// cfg.setProperty(Environment.PASS, ""); - cfg.setProperty(Environment.CACHE_REGION_PREFIX, ""); - cfg.setProperty(Environment.GENERATE_STATISTICS, "true"); - - cfg.setProperty(Environment.SHOW_SQL, "true"); - cfg.setProperty(Environment.USE_SECOND_LEVEL_CACHE, "true"); - cfg.setProperty(Environment.USE_QUERY_CACHE, "true"); - cfg.setProperty(Environment.CACHE_REGION_FACTORY, RedissonRegionFactory.class.getName()); - } - - @Before + @BeforeEach public void before() { sessionFactory().getCache().evictEntityData(); sessionFactory().getStatistics().clear(); @@ -91,7 +77,7 @@ public class CollectionTest extends BaseCoreFunctionalTestCase { public void testQuery() { Statistics stats = sessionFactory().getStatistics(); - Session s = openSession(); + Session s = sessionFactory().openSession(); s.beginTransaction(); A a = new A(); @@ -105,16 +91,15 @@ public class CollectionTest extends BaseCoreFunctionalTestCase { s.flush(); s.getTransaction().commit(); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); A a1 = s.get(A.class, 1L); - System.out.println("here1"); assertThat(a1.bs).hasSize(1); s.getTransaction().commit(); - Assert.assertEquals(0, stats.getDomainDataRegionStatistics("org.redisson.hibernate.CollectionTest$A.bs").getHitCount()); + Assertions.assertEquals(0, stats.getDomainDataRegionStatistics("org.redisson.hibernate.CollectionTest$A.bs").getHitCount()); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); A a2 = s.get(A.class, 1L); B b2 = a2.bs.iterator().next(); @@ -123,7 +108,7 @@ public class CollectionTest extends BaseCoreFunctionalTestCase { s.close(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("org.redisson.hibernate.CollectionTest$A.bs").getHitCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("org.redisson.hibernate.CollectionTest$A.bs").getHitCount()); stats.logSummary(); diff --git a/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/ReadWriteTest.java b/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/ReadWriteTest.java index 2fe0e687e..5d946c891 100644 --- a/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/ReadWriteTest.java +++ b/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/ReadWriteTest.java @@ -1,31 +1,34 @@ package org.redisson.hibernate; -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.Arrays; - -import org.hibernate.query.Query; import org.hibernate.Session; -import org.hibernate.cfg.Configuration; -import org.hibernate.cfg.Environment; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.query.Query; import org.hibernate.stat.Statistics; -import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; -import org.junit.Assert; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; +import org.hibernate.testing.orm.junit.BaseSessionFactoryFunctionalTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.FixedHostPortGenericContainer; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import java.util.Arrays; /** * * @author Nikita Koksharov * */ -public class ReadWriteTest extends BaseCoreFunctionalTestCase { +@Testcontainers +public class ReadWriteTest extends BaseSessionFactoryFunctionalTest { + + @Container + public static final GenericContainer H2 = new FixedHostPortGenericContainer("oscarfonts/h2:latest") + .withFixedExposedPort(1521, 1521); - @ClassRule - public static GenericContainer REDIS = new FixedHostPortGenericContainer("redis:latest") + @Container + public static final GenericContainer REDIS = new FixedHostPortGenericContainer("redis:latest") .withFixedExposedPort(6379, 6379); @Override @@ -34,25 +37,13 @@ public class ReadWriteTest extends BaseCoreFunctionalTestCase { } @Override - protected void configure(Configuration cfg) { - super.configure(cfg); -// cfg.setProperty(Environment.DRIVER, org.h2.Driver.class.getName()); -// cfg.setProperty(Environment.URL, "jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;"); -// cfg.setProperty(Environment.USER, "sa"); -// cfg.setProperty(Environment.PASS, ""); - cfg.setProperty(Environment.CACHE_REGION_PREFIX, ""); - cfg.setProperty(Environment.GENERATE_STATISTICS, "true"); - - cfg.setProperty(Environment.USE_SECOND_LEVEL_CACHE, "true"); - cfg.setProperty(Environment.USE_QUERY_CACHE, "true"); - cfg.setProperty(Environment.CACHE_REGION_FACTORY, RedissonRegionFactory.class.getName()); - - cfg.setProperty("hibernate.cache.redisson.item.eviction.max_entries", "100"); - cfg.setProperty("hibernate.cache.redisson.item.expiration.time_to_live", "1500"); - cfg.setProperty("hibernate.cache.redisson.item.expiration.max_idle_time", "1000"); + protected void applySettings(StandardServiceRegistryBuilder builder) { + builder.applySetting("hibernate.cache.redisson.item.eviction.max_entries", "100"); + builder.applySetting("hibernate.cache.redisson.item.expiration.time_to_live", "1500"); + builder.applySetting("hibernate.cache.redisson.item.expiration.max_idle_time", "1000"); } - @Before + @BeforeEach public void before() { sessionFactory().getCache().evictAllRegions(); sessionFactory().getStatistics().clear(); @@ -62,7 +53,7 @@ public class ReadWriteTest extends BaseCoreFunctionalTestCase { public void testQuery() { Statistics stats = sessionFactory().getStatistics(); - Session s = openSession(); + Session s = sessionFactory().openSession(); s.beginTransaction(); ItemReadWrite item = new ItemReadWrite("data"); item.getEntries().addAll(Arrays.asList("a", "b", "c")); @@ -70,7 +61,7 @@ public class ReadWriteTest extends BaseCoreFunctionalTestCase { s.flush(); s.getTransaction().commit(); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); Query query = s.getNamedQuery("testQuery"); query.setCacheable(true); @@ -80,9 +71,9 @@ public class ReadWriteTest extends BaseCoreFunctionalTestCase { s.getTransaction().commit(); s.close(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("myTestQuery").getPutCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("myTestQuery").getPutCount()); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); Query query2 = s.getNamedQuery("testQuery"); query2.setCacheable(true); @@ -92,8 +83,8 @@ public class ReadWriteTest extends BaseCoreFunctionalTestCase { s.delete(item); s.getTransaction().commit(); s.close(); - - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("myTestQuery").getHitCount()); + + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("myTestQuery").getHitCount()); stats.logSummary(); } diff --git a/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/TransactionalTest.java b/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/TransactionalTest.java index f7e3cc579..8e1b45bb2 100644 --- a/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/TransactionalTest.java +++ b/redisson-hibernate/redisson-hibernate-6/src/test/java/org/redisson/hibernate/TransactionalTest.java @@ -1,31 +1,35 @@ package org.redisson.hibernate; -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.Arrays; - import org.hibernate.Session; -import org.hibernate.cfg.Configuration; -import org.hibernate.cfg.Environment; import org.hibernate.query.Query; import org.hibernate.stat.Statistics; -import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; -import org.junit.Assert; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; +import org.hibernate.testing.orm.junit.BaseSessionFactoryFunctionalTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.FixedHostPortGenericContainer; import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import java.util.Arrays; + +import static org.assertj.core.api.Assertions.assertThat; /** * * @author Nikita Koksharov * */ -public class TransactionalTest extends BaseCoreFunctionalTestCase { +@Testcontainers +public class TransactionalTest extends BaseSessionFactoryFunctionalTest { + + @Container + public static final GenericContainer H2 = new FixedHostPortGenericContainer("oscarfonts/h2:latest") + .withFixedExposedPort(1521, 1521); - @ClassRule - public static GenericContainer REDIS = new FixedHostPortGenericContainer("redis:latest") + @Container + public static final GenericContainer REDIS = new FixedHostPortGenericContainer("redis:latest") .withFixedExposedPort(6379, 6379); @Override @@ -33,22 +37,7 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { return new Class[] { ItemTransactional.class}; } - @Override - protected void configure(Configuration cfg) { - super.configure(cfg); -// cfg.setProperty(Environment.DRIVER, org.h2.Driver.class.getName()); -// cfg.setProperty(Environment.URL, "jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;"); -// cfg.setProperty(Environment.USER, "sa"); -// cfg.setProperty(Environment.PASS, ""); - cfg.setProperty(Environment.CACHE_REGION_PREFIX, ""); - cfg.setProperty(Environment.GENERATE_STATISTICS, "true"); - - cfg.setProperty(Environment.USE_SECOND_LEVEL_CACHE, "true"); - cfg.setProperty(Environment.USE_QUERY_CACHE, "true"); - cfg.setProperty(Environment.CACHE_REGION_FACTORY, RedissonRegionFactory.class.getName()); - } - - @Before + @BeforeEach public void before() { sessionFactory().getCache().evictAllRegions(); sessionFactory().getStatistics().clear(); @@ -58,7 +47,7 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { public void testQuery() { Statistics stats = sessionFactory().getStatistics(); - Session s = openSession(); + Session s = sessionFactory().openSession(); s.beginTransaction(); ItemTransactional item = new ItemTransactional("data"); item.getEntries().addAll(Arrays.asList("a", "b", "c")); @@ -66,7 +55,7 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { s.flush(); s.getTransaction().commit(); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); Query query = s.getNamedQuery("testQuery"); query.setCacheable(true); @@ -76,9 +65,9 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { s.getTransaction().commit(); s.close(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("myTestQuery").getPutCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("myTestQuery").getPutCount()); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); Query query2 = s.getNamedQuery("testQuery"); query2.setCacheable(true); @@ -89,7 +78,7 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { s.getTransaction().commit(); s.close(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("myTestQuery").getHitCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("myTestQuery").getHitCount()); stats.logSummary(); @@ -100,7 +89,7 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { Long id = null; Statistics stats = sessionFactory().getStatistics(); - Session s = openSession(); + Session s = sessionFactory().openSession(); s.beginTransaction(); ItemTransactional item = new ItemTransactional("data"); item.getEntries().addAll(Arrays.asList("a", "b", "c")); @@ -108,16 +97,16 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { s.flush(); s.getTransaction().commit(); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); item = (ItemTransactional) s.get(ItemTransactional.class, id); assertThat(item.getEntries()).containsExactly("a", "b", "c"); s.getTransaction().commit(); s.close(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("item_entries").getPutCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("item_entries").getPutCount()); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); item = (ItemTransactional) s.get(ItemTransactional.class, id); assertThat(item.getEntries()).containsExactly("a", "b", "c"); @@ -125,13 +114,13 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { s.getTransaction().commit(); s.close(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("item_entries").getHitCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("item_entries").getHitCount()); } @Test public void testNaturalId() { Statistics stats = sessionFactory().getStatistics(); - Session s = openSession(); + Session s = sessionFactory().openSession(); s.beginTransaction(); ItemTransactional item = new ItemTransactional("data"); item.setNid("123"); @@ -139,10 +128,10 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { s.flush(); s.getTransaction().commit(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("item").getPutCount()); - Assert.assertEquals(1, stats.getNaturalIdStatistics(ItemTransactional.class.getName()).getCachePutCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("item").getPutCount()); + Assertions.assertEquals(1, stats.getNaturalIdStatistics(ItemTransactional.class.getName()).getCachePutCount()); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); item = (ItemTransactional) s.bySimpleNaturalId(ItemTransactional.class).load("123"); assertThat(item).isNotNull(); @@ -150,8 +139,8 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { s.getTransaction().commit(); s.close(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("item").getHitCount()); - Assert.assertEquals(1, stats.getNaturalIdStatistics(ItemTransactional.class.getName()).getCacheHitCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("item").getHitCount()); + Assertions.assertEquals(1, stats.getNaturalIdStatistics(ItemTransactional.class.getName()).getCacheHitCount()); sessionFactory().getStatistics().logSummary(); } @@ -160,16 +149,16 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { public void testUpdateWithRefreshThenRollback() { Statistics stats = sessionFactory().getStatistics(); Long id = null; - Session s = openSession(); + Session s = sessionFactory().openSession(); s.beginTransaction(); ItemTransactional item = new ItemTransactional( "data" ); id = (Long) s.save( item ); s.flush(); s.getTransaction().commit(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("item").getPutCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("item").getPutCount()); - s = openSession(); + s = sessionFactory().openSession(); s.beginTransaction(); item = (ItemTransactional) s.get(ItemTransactional.class, id); item.setName("newdata"); @@ -180,7 +169,7 @@ public class TransactionalTest extends BaseCoreFunctionalTestCase { s.clear(); s.close(); - Assert.assertEquals(1, stats.getDomainDataRegionStatistics("item").getHitCount()); + Assertions.assertEquals(1, stats.getDomainDataRegionStatistics("item").getHitCount()); } diff --git a/redisson-hibernate/redisson-hibernate-6/src/test/resources/hibernate.properties b/redisson-hibernate/redisson-hibernate-6/src/test/resources/hibernate.properties index 65b0aad32..7ff682db1 100644 --- a/redisson-hibernate/redisson-hibernate-6/src/test/resources/hibernate.properties +++ b/redisson-hibernate/redisson-hibernate-6/src/test/resources/hibernate.properties @@ -2,4 +2,11 @@ hibernate.connection.driver_class=org.h2.Driver hibernate.connection.url=jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1 hibernate.connection.username=sa hibernate.connection.password= -hibernate.dialect=org.hibernate.dialect.H2Dialect \ No newline at end of file +hibernate.dialect=org.hibernate.dialect.H2Dialect + +hibernate.cache.region_prefix= +hibernate.generate_statistics=true +hibernate.show_sql=true +hibernate.cache.use_second_level_cache=true +hibernate.cache.use_query_cache=true +hibernate.cache.region.factory_class=org.redisson.hibernate.RedissonRegionFactory \ No newline at end of file