diff options
Diffstat (limited to 'vid-app-common/src/test/java/org/onap/vid/config/DataSourceConfig.java')
-rw-r--r-- | vid-app-common/src/test/java/org/onap/vid/config/DataSourceConfig.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/config/DataSourceConfig.java b/vid-app-common/src/test/java/org/onap/vid/config/DataSourceConfig.java new file mode 100644 index 00000000..eb9239e1 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/config/DataSourceConfig.java @@ -0,0 +1,81 @@ +package org.onap.vid.config; + + +import org.hibernate.SessionFactory; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.hibernate4.HibernateTransactionManager; +import org.springframework.orm.hibernate4.LocalSessionFactoryBean; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import javax.sql.DataSource; +import java.util.Properties; + +@Configuration +@EnableTransactionManagement +public class DataSourceConfig { + + @Bean + @Autowired + public LocalSessionFactoryBean sessionFactory(DataSource dataSource) { + LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); + sessionFactory.setDataSource(dataSource); + //I used this class org.openecomp.portalsdk.core.conf.HibernateConfiguration to learn how to config the session factory + // and use the following url for actual h2 properties + //https://github.com/levi-putna/Hibernate-H2-Example/blob/master/hibernate-h2-example/src/hibernate.cfg.xml + Properties properties = getH2Properties(); + + properties.put("hibernate.default_schema", "PUBLIC"); + properties.put("connection.pool_size", 10); + properties.put("cache.provider_class", "org.hibernate.cache.internal.NoCacheProvider"); + properties.put("hibernate.show_sql", false); + properties.put("hbm2ddl.auto", "create"); + properties.put("hibernate.hbm2ddl.auto", "create"); + + sessionFactory.setHibernateProperties(properties); + sessionFactory.setPackagesToScan("org.onap"); + return sessionFactory; + } + + @Bean + public DataSource getDataSource() { + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName("org.h2.Driver"); + dataSource.setUrl("jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"); + dataSource.setUsername("sa"); + dataSource.setPassword(""); + return dataSource; + } + + public Properties getH2Properties() { + Properties properties = new Properties(); + properties.put("dialect", "org.hibernate.dialect.H2Dialect"); + return properties; + } + + public Properties getSqliteProperties() { + Properties properties = new Properties(); + properties.put("connection.driver_class", "org.sqlite.JDBC"); + properties.put("connection.url", "jdbc:sqlite:memory:myDb"); + properties.put("connection.username", "sa"); + properties.put("connection.password", "sa"); + properties.put("dialect", "com.enigmabridge.hibernate.dialect.SQLiteDialect"); + return properties; + } + + @Bean + public DataAccessService dataAccessService() { + return new DataAccessServiceImpl(); + } + + @Bean + @Autowired + public PlatformTransactionManager transactionManager(SessionFactory sessionFactory) { + return new HibernateTransactionManager(sessionFactory); + } +} |