package fr.openwide.core.jpa.security.config.spring;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import fr.openwide.core.jpa.config.spring.DefaultJpaConfig;
import fr.openwide.core.jpa.config.spring.JpaConfigUtils;
@Import(DefaultJpaConfig.class)
public abstract class AbstractConfiguredJpaSecurityJpaConfig extends AbstractJpaSecurityJpaConfig {
@Autowired
private DefaultJpaConfig defaultJpaConfig;
@Override
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
return JpaConfigUtils.entityManagerFactory(defaultJpaConfig.defaultJpaCoreConfigurationProvider());
}
/**
* Déclaration explicite de close comme destroyMethod (Spring doit la prendre en compte auto-magiquement même
* si non configurée).
*/
@Override
@Bean(destroyMethod = "close")
public DataSource dataSource() {
return JpaConfigUtils.dataSource(defaultJpaConfig.defaultDatabaseConnectionPoolConfigurationProvider());
}
}