package fr.openwide.core.test.jpa.more.config.spring; import javax.persistence.spi.PersistenceProvider; import org.hibernate.Interceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; import fr.openwide.core.jpa.config.spring.provider.JpaPackageScanProvider; import fr.openwide.core.jpa.hibernate.ejb.InterceptorAwareHibernatePersistenceProvider; import fr.openwide.core.jpa.hibernate.interceptor.ChainedInterceptor; import fr.openwide.core.jpa.more.config.spring.AbstractConfiguredJpaMoreJpaConfig; import fr.openwide.core.test.jpa.more.business.JpaMoreTestBusinessPackage; import fr.openwide.core.test.jpa.more.business.interceptor.TestEntityInterceptor; import fr.openwide.core.test.jpa.more.business.interceptor.TestEntitySimplePropertyUpdateInterceptor; import fr.openwide.core.test.jpa.more.business.util.transaction.service.ITestTransactionSynchronizationTaskService; @Configuration @EnableAspectJAutoProxy @ComponentScan(basePackageClasses = ITestTransactionSynchronizationTaskService.class) public class JpaMoreTestJpaConfig extends AbstractConfiguredJpaMoreJpaConfig { @Override public JpaPackageScanProvider applicationJpaPackageScanProvider() { return new JpaPackageScanProvider(JpaMoreTestBusinessPackage.class.getPackage()); } @Bean public PersistenceProvider persistenceProvider() { return new InterceptorAwareHibernatePersistenceProvider(); } @Bean public Interceptor interceptor() { return new ChainedInterceptor() .add(new TestEntityInterceptor()) .add(new TestEntitySimplePropertyUpdateInterceptor()); } }