diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause1DataContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause1DataContextWithJavaConfig.java index b1dabd7ec3..59feb5dd71 100644 --- a/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause1DataContextWithJavaConfig.java +++ b/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause1DataContextWithJavaConfig.java @@ -1,12 +1,15 @@ package org.baeldung.ex.dataIntegrityviolationexception.spring; +import org.baeldung.spring.config.PersistenceConfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; @Configuration @ComponentScan("org.baeldung.ex.dataIntegrityviolationexception.cause1") +@Import(PersistenceConfig.class) public class Cause1DataContextWithJavaConfig { public Cause1DataContextWithJavaConfig() { diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java index 2eedc0d241..5ba971baa9 100644 --- a/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java +++ b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java @@ -1,13 +1,10 @@ package org.baeldung.ex.nosuchbeandefinitionexception.spring; -import org.baeldung.persistence.spring.PersistenceConfig; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; @Configuration @ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause1") -@Import(PersistenceConfig.class) public class Cause1ContextWithJavaConfig { public Cause1ContextWithJavaConfig() { diff --git a/spring-exceptions/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-exceptions/src/main/java/org/baeldung/spring/config/PersistenceConfig.java index 6a057fc0c7..fdf6179040 100644 --- a/spring-exceptions/src/main/java/org/baeldung/spring/config/PersistenceConfig.java +++ b/spring-exceptions/src/main/java/org/baeldung/spring/config/PersistenceConfig.java @@ -4,20 +4,21 @@ import java.util.Properties; import javax.sql.DataSource; +import org.apache.tomcat.dbcp.dbcp.BasicDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; -import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.hibernate4.HibernateTransactionManager; import org.springframework.orm.hibernate4.LocalSessionFactoryBean; import org.springframework.transaction.annotation.EnableTransactionManagement; import com.google.common.base.Preconditions; -// @Configuration +@Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.persistence" }) @@ -34,7 +35,7 @@ public class PersistenceConfig { public LocalSessionFactoryBean sessionFactory() { final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); sessionFactory.setDataSource(restDataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); sessionFactory.setHibernateProperties(hibernateProperties()); return sessionFactory; @@ -42,7 +43,7 @@ public class PersistenceConfig { @Bean public DataSource restDataSource() { - final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + final BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); diff --git a/spring-exceptions/src/test/java/org/baeldung/persistence/spring/PersistenceConfig.java b/spring-exceptions/src/test/java/org/baeldung/persistence/spring/PersistenceConfig.java deleted file mode 100644 index cace2e1952..0000000000 --- a/spring-exceptions/src/test/java/org/baeldung/persistence/spring/PersistenceConfig.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.baeldung.persistence.spring; - -import java.util.Properties; - -import javax.sql.DataSource; - -import org.apache.tomcat.dbcp.dbcp.BasicDataSource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; -import org.springframework.orm.hibernate4.HibernateTransactionManager; -import org.springframework.orm.hibernate4.LocalSessionFactoryBean; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -import com.google.common.base.Preconditions; - -@Configuration -@EnableTransactionManagement -@PropertySource({ "classpath:persistence-mysql.properties" }) -@ComponentScan({ "org.baeldung.persistence" }) -public class PersistenceConfig { - - @Autowired - private Environment env; - - public PersistenceConfig() { - super(); - } - - @Bean - public LocalSessionFactoryBean sessionFactory() { - final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); - sessionFactory.setDataSource(restDataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); - sessionFactory.setHibernateProperties(hibernateProperties()); - - return sessionFactory; - } - - @Bean - public DataSource restDataSource() { - final BasicDataSource dataSource = new BasicDataSource(); - dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); - dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); - dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); - dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); - - return dataSource; - } - - @Bean - public HibernateTransactionManager transactionManager() { - final HibernateTransactionManager txManager = new HibernateTransactionManager(); - txManager.setSessionFactory(sessionFactory().getObject()); - - return txManager; - } - - @Bean - public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { - return new PersistenceExceptionTranslationPostProcessor(); - } - - final Properties hibernateProperties() { - return new Properties() { - { - setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); - setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); - - // setProperty("hibernate.globally_quoted_identifiers", "true"); - // note: necessary in launchpad-storage, but causing problems here - } - }; - } -} \ No newline at end of file