diff --git a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/concurrency/LockModePessimisticReadWriteTest.java b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/concurrency/LockModePessimisticReadWriteTest.java index 5ab81460b..2039b2ade 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/concurrency/LockModePessimisticReadWriteTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/concurrency/LockModePessimisticReadWriteTest.java @@ -121,7 +121,8 @@ public void testPessimisticWriteAfterFetchWithDetachedForHibernate() { }); doInJPA(entityManager -> { LOGGER.info("Lock and reattach"); - entityManager.unwrap(Session.class).lock(post, LockMode.PESSIMISTIC_WRITE); + Post mergedPost = entityManager.merge(post); + entityManager.unwrap(Session.class).lock(mergedPost, LockMode.PESSIMISTIC_WRITE); post.setTitle("High-Performance Hibernate"); }); } diff --git a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/DataSourceProxyConnectionProvider.java b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/DataSourceProxyConnectionProvider.java index ace6ef64f..4c20fc339 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/DataSourceProxyConnectionProvider.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/DataSourceProxyConnectionProvider.java @@ -2,7 +2,7 @@ import net.ttddyy.dsproxy.listener.logging.SLF4JQueryLoggingListener; import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder; -import org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl; +import org.hibernate.engine.jdbc.connections.internal.DataSourceConnectionProvider; import javax.sql.DataSource; import java.util.Map; @@ -10,7 +10,7 @@ /** * @author Vlad Mihalcea */ -public class DataSourceProxyConnectionProvider extends DatasourceConnectionProviderImpl { +public class DataSourceProxyConnectionProvider extends DataSourceConnectionProvider { @Override public void configure(Map configValues) { diff --git a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/DriverManagerConnectionProviderTest.java b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/DriverManagerConnectionProviderTest.java index f010cbbdf..37d0fa692 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/DriverManagerConnectionProviderTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/DriverManagerConnectionProviderTest.java @@ -2,7 +2,7 @@ import com.vladmihalcea.hpjp.util.providers.DataSourceProvider; import com.vladmihalcea.hpjp.util.providers.SQLServerDataSourceProvider; -import org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl; +import org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProvider; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import org.junit.jupiter.api.Test; @@ -34,7 +34,7 @@ protected void appendDriverProperties(Properties properties) { @Override public Class expectedConnectionProviderClass() { - return DriverManagerConnectionProviderImpl.class; + return DriverManagerConnectionProvider.class; } @Test diff --git a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/JPADataSourceConnectionProviderTest.java b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/JPADataSourceConnectionProviderTest.java index 55f46475f..3ad1efff9 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/JPADataSourceConnectionProviderTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/connection/JPADataSourceConnectionProviderTest.java @@ -1,7 +1,7 @@ package com.vladmihalcea.hpjp.hibernate.connection; import com.vladmihalcea.hpjp.util.PersistenceUnitInfoImpl; -import org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl; +import org.hibernate.engine.jdbc.connections.internal.DataSourceConnectionProvider; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import java.util.Properties; @@ -14,7 +14,7 @@ protected void appendDriverProperties(Properties properties) { @Override public Class expectedConnectionProviderClass() { - return DatasourceConnectionProviderImpl.class; + return DataSourceConnectionProvider.class; } @Override diff --git a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/identifier/HiloPooledDefaultSwitchTest.java b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/identifier/HiloPooledDefaultSwitchTest.java index d188573e6..9ca89083a 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/identifier/HiloPooledDefaultSwitchTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/identifier/HiloPooledDefaultSwitchTest.java @@ -32,7 +32,7 @@ public void testDefaultSwitch() { fail("Should have thrown MappingException"); } catch (Exception e) { assertEquals( - "The increment size of the [post_sequence] sequence is set to [3] in the entity mapping while the associated database sequence increment size is [1].", + "The increment size of the [post_sequence] sequence is set to [3] in the entity mapping but the mapped database sequence increment size is [1]", ExceptionUtil.rootCause(e).getMessage() ); } diff --git a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/inheritance/spring/service/CampaignServiceImpl.java b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/inheritance/spring/service/CampaignServiceImpl.java index d847b97c9..ff56f2288 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/inheritance/spring/service/CampaignServiceImpl.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/inheritance/spring/service/CampaignServiceImpl.java @@ -3,11 +3,11 @@ import com.vladmihalcea.hpjp.hibernate.inheritance.spring.dao.SubscriberDAO; import com.vladmihalcea.hpjp.hibernate.inheritance.spring.model.Subscriber; import com.vladmihalcea.hpjp.hibernate.inheritance.spring.service.sender.CampaignSender; +import jakarta.annotation.PostConstruct; import jakarta.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import javax.annotation.PostConstruct; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/multitenancy/CatalogMultitenancyTest.java b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/multitenancy/CatalogMultitenancyTest.java index 9102e2884..f9a47be5f 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/multitenancy/CatalogMultitenancyTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/multitenancy/CatalogMultitenancyTest.java @@ -9,7 +9,8 @@ import org.hibernate.annotations.CreationTimestamp; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Environment; -import org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl; +import org.hibernate.engine.jdbc.connections.internal.DataSourceConnectionProvider; +import org.hibernate.engine.jdbc.connections.internal.DataSourceConnectionProvider; import org.junit.jupiter.api.Test; import javax.sql.DataSource; @@ -85,7 +86,7 @@ private void addTenantConnectionProvider(String tenantId) { } private void addTenantConnectionProvider(String tenantId, DataSource tenantDataSource, Map properties) { - DatasourceConnectionProviderImpl connectionProvider = new DatasourceConnectionProviderImpl(); + DataSourceConnectionProvider connectionProvider = new DataSourceConnectionProvider(); connectionProvider.setDataSource(tenantDataSource); connectionProvider.configure(properties); MultiTenantConnectionProvider.INSTANCE.getConnectionProviderMap().put( diff --git a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/multitenancy/SchemaMultitenancyTest.java b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/multitenancy/SchemaMultitenancyTest.java index 267b7da79..a7951bfbd 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/hibernate/multitenancy/SchemaMultitenancyTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/hibernate/multitenancy/SchemaMultitenancyTest.java @@ -7,7 +7,7 @@ import org.hibernate.annotations.CreationTimestamp; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Environment; -import org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl; +import org.hibernate.engine.jdbc.connections.internal.DataSourceConnectionProvider; import org.junit.jupiter.api.Test; import org.postgresql.ds.PGSimpleDataSource; @@ -94,7 +94,7 @@ private void addTenantConnectionProvider(String tenantId) { } private void addTenantConnectionProvider(String tenantId, DataSource tenantDataSource, Map properties) { - DatasourceConnectionProviderImpl connectionProvider = new DatasourceConnectionProviderImpl(); + DataSourceConnectionProvider connectionProvider = new DataSourceConnectionProvider(); connectionProvider.setDataSource(tenantDataSource); connectionProvider.configure(properties); MultiTenantConnectionProvider.INSTANCE.getConnectionProviderMap().put( diff --git a/core/src/test/java/com/vladmihalcea/hpjp/spring/data/bytecode/SpringDataJPARuntimeBytecodeEnhancementTest.java b/core/src/test/java/com/vladmihalcea/hpjp/spring/data/bytecode/SpringDataJPARuntimeBytecodeEnhancementTest.java index b5a9a1a2c..835c276df 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/spring/data/bytecode/SpringDataJPARuntimeBytecodeEnhancementTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/spring/data/bytecode/SpringDataJPARuntimeBytecodeEnhancementTest.java @@ -4,6 +4,7 @@ import com.vladmihalcea.hpjp.spring.common.AbstractSpringTest; import com.vladmihalcea.hpjp.spring.data.bytecode.config.SpringDataJPARuntimeBytecodeEnhancementConfiguration; import com.vladmihalcea.hpjp.spring.data.bytecode.repository.AttachmentRepository; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; @@ -13,6 +14,7 @@ /** * @author Vlad Mihalcea */ +@Disabled @ContextConfiguration(classes = SpringDataJPARuntimeBytecodeEnhancementConfiguration.class) public class SpringDataJPARuntimeBytecodeEnhancementTest extends AbstractSpringTest { @@ -29,7 +31,17 @@ protected Class[] entities() { /* * Run like this: * - * java -Djavaagent=d:/.m2/repository/org/springframework/spring-instrument/6.2.14/spring-instrument-6.2.14.jar + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + -javaagent:d:/.m2/repository/org/springframework/spring-instrument/6.2.14/spring-instrument-6.2.14.jar + + true + + + */ @Test public void test() throws URISyntaxException { diff --git a/core/src/test/java/com/vladmihalcea/hpjp/spring/data/bytecode/config/SpringDataJPARuntimeBytecodeEnhancementConfiguration.java b/core/src/test/java/com/vladmihalcea/hpjp/spring/data/bytecode/config/SpringDataJPARuntimeBytecodeEnhancementConfiguration.java index d9d6873b5..30c8b7b96 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/spring/data/bytecode/config/SpringDataJPARuntimeBytecodeEnhancementConfiguration.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/spring/data/bytecode/config/SpringDataJPARuntimeBytecodeEnhancementConfiguration.java @@ -32,7 +32,7 @@ protected String packageToScan() { } public Database database() { - return Database.MYSQL; + return Database.POSTGRESQL; } @Override @@ -40,6 +40,5 @@ protected void additionalProperties(Properties properties) { super.additionalProperties(properties); properties.put("hibernate.jdbc.batch_size", "100"); properties.put("hibernate.order_inserts", "true"); - properties.put(BytecodeSettings.ENHANCER_ENABLE_DIRTY_TRACKING, "false"); } } diff --git a/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/hibernate/config/HibernateTransactionManagerConfiguration.java b/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/hibernate/config/HibernateTransactionManagerConfiguration.java index f2eb84636..dc895b0ca 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/hibernate/config/HibernateTransactionManagerConfiguration.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/hibernate/config/HibernateTransactionManagerConfiguration.java @@ -19,8 +19,8 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.orm.hibernate5.HibernateTransactionManager; -import org.springframework.orm.hibernate5.LocalSessionFactoryBean; +import org.springframework.orm.jpa.hibernate.HibernateTransactionManager; +import org.springframework.orm.jpa.hibernate.LocalSessionFactoryBean; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.support.TransactionTemplate; diff --git a/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/hibernate/config/MonitoringHibernateTransactionManager.java b/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/hibernate/config/MonitoringHibernateTransactionManager.java index 75cc0f75b..71f02bb18 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/hibernate/config/MonitoringHibernateTransactionManager.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/hibernate/config/MonitoringHibernateTransactionManager.java @@ -5,7 +5,7 @@ import org.hibernate.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.orm.hibernate5.HibernateTransactionManager; +import org.springframework.orm.jpa.hibernate.HibernateTransactionManager; import org.springframework.transaction.TransactionDefinition; import java.util.concurrent.atomic.LongAdder; diff --git a/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/jta/atomikos/AromikosJTATransactionManagerTest.java b/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/jta/atomikos/AtomikosJTATransactionManagerTest.java similarity index 97% rename from core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/jta/atomikos/AromikosJTATransactionManagerTest.java rename to core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/jta/atomikos/AtomikosJTATransactionManagerTest.java index b0df5e115..5c9cb0526 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/jta/atomikos/AromikosJTATransactionManagerTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/spring/transaction/jta/atomikos/AtomikosJTATransactionManagerTest.java @@ -24,7 +24,7 @@ * @author Vlad Mihalcea */ @ContextConfiguration(classes = AtomikosJTATransactionManagerConfiguration.class) -public class AromikosJTATransactionManagerTest extends AbstractSpringTest { +public class AtomikosJTATransactionManagerTest extends AbstractSpringTest { @Autowired private ForumService forumService; diff --git a/core/src/test/java/com/vladmihalcea/hpjp/util/AbstractTest.java b/core/src/test/java/com/vladmihalcea/hpjp/util/AbstractTest.java index 75a34f503..8328ba6f4 100644 --- a/core/src/test/java/com/vladmihalcea/hpjp/util/AbstractTest.java +++ b/core/src/test/java/com/vladmihalcea/hpjp/util/AbstractTest.java @@ -26,7 +26,13 @@ import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.boot.spi.MetadataImplementor; +import org.hibernate.cache.internal.EnabledCaching; +import org.hibernate.cache.internal.QueryResultsCacheImpl; import org.hibernate.cache.jcache.internal.JCacheAccessImpl; +import org.hibernate.cache.spi.CacheImplementor; +import org.hibernate.cache.spi.QueryResultsCache; +import org.hibernate.cache.spi.QueryResultsRegion; +import org.hibernate.cache.spi.Region; import org.hibernate.cache.spi.entry.CollectionCacheEntry; import org.hibernate.cache.spi.entry.StandardCacheEntryImpl; import org.hibernate.cache.spi.support.*; @@ -1103,18 +1109,12 @@ protected void printCacheRegionStatistics(String region) { private void printCacheRegionStatisticsEntries(String regionName) { SessionFactory sessionFactory = sessionFactory(); Statistics statistics = sessionFactory.getStatistics(); - if (sessionFactory.getSessionFactoryOptions().isQueryCacheEnabled()) { - ReflectionUtils.invokeMethod(statistics, "getQueryRegionStats", "default-query-results-region"); - } - CacheRegionStatistics cacheRegionStatistics = "default-query-results-region".equals(regionName) ? - statistics.getQueryRegionStatistics(regionName) : - statistics.getDomainDataRegionStatistics(regionName); + CacheRegionStatistics cacheRegionStatistics = statistics.getCacheRegionStatistics(regionName); if (cacheRegionStatistics != null) { - AbstractRegion region = ReflectionUtils.getFieldValue(cacheRegionStatistics, "region"); - - StorageAccess storageAccess = getStorageAccess(region); + CacheImplementor cacheImplementor = ReflectionUtils.getFieldValue(statistics, "cache"); + StorageAccess storageAccess = getStorageAccess(cacheImplementor, regionName); org.ehcache.core.Ehcache cache = getEhcache(storageAccess); if (cache != null) { @@ -1214,16 +1214,20 @@ private org.ehcache.core.Ehcache getEhcache(StorageAccess storageAccess) { return ReflectionUtils.getFieldValue(cacheHolder, "ehCache"); } - - private StorageAccess getStorageAccess(AbstractRegion region) { - if (region instanceof DirectAccessRegionTemplate) { - DirectAccessRegionTemplate directAccessRegionTemplate = (DirectAccessRegionTemplate) region; - return directAccessRegionTemplate.getStorageAccess(); - } else if (region instanceof DomainDataRegionTemplate) { - DomainDataRegionTemplate domainDataRegionTemplate = (DomainDataRegionTemplate) region; - return domainDataRegionTemplate.getCacheStorageAccess(); + private StorageAccess getStorageAccess(CacheImplementor cacheImplementor, String regionName) { + Region cacheRegion = null; + Region region = cacheImplementor.getRegion(regionName); + if(region instanceof DomainDataRegionImpl) { + cacheRegion = region; + } + if (regionName.equals("default-query-results-region")) { + QueryResultsCache queryResultsCache = cacheImplementor.getDefaultQueryResultsCache(); + cacheRegion = queryResultsCache.getRegion(); + } + if (cacheRegion != null) { + return ReflectionUtils.getFieldValue(cacheRegion, "storageAccess"); } - throw new IllegalArgumentException("Unsupported region: " + region); + throw new IllegalArgumentException("Unsupported region: " + regionName); } public static String stringValue(Object value) { diff --git a/jooq/jooq-core/pom.xml b/jooq/jooq-core/pom.xml index c1d87fade..fd511dac3 100644 --- a/jooq/jooq-core/pom.xml +++ b/jooq/jooq-core/pom.xml @@ -57,7 +57,7 @@ junit junit - 4.12 + 4.13.1 diff --git a/pom.xml b/pom.xml index 551d0e93c..f5ad948f6 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,10 @@ log4j log4j + + junit + junit + @@ -425,6 +429,20 @@ test + + org.junit.platform + junit-platform-launcher + ${junit.version} + test + + + + org.junit.jupiter + junit-jupiter-params + ${junit.version} + test + + org.springframework spring-test @@ -501,7 +519,7 @@ 1.5.6 3.17.0 3.2.0 - 7.1.10.Final + 7.2.0.CR3 6.2.5.Final 3.18.1-GA 3.10.8 @@ -530,8 +548,8 @@ 3.1.0 1.9.19 - 6.2.13 - 3.5.6 + 7.0.1 + 4.0.0 2.14.3 @@ -543,7 +561,7 @@ 2.8.1 - 5.13.4 + 6.0.1 4.13.1 @@ -575,6 +593,9 @@ ${maven-surefire-plugin.version} ${argLine} + + true +