d7b30edbe5ce9a0ca05f337890796300add4f9c2
[so.git] / adapters / mso-adapter-utils / src / test / java / org / onap / so / EmbeddedMariaDbConfig.java
1 package org.onap.so;
2
3 import ch.vorburger.exec.ManagedProcessException;
4 import ch.vorburger.mariadb4j.DBConfigurationBuilder;
5 import ch.vorburger.mariadb4j.springframework.MariaDB4jSpringService;
6 import org.springframework.beans.factory.annotation.Value;
7 import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
8 import org.springframework.context.annotation.Bean;
9 import org.springframework.context.annotation.Configuration;
10 import org.springframework.context.annotation.Profile;
11
12 import javax.sql.DataSource;
13
14 @Configuration
15 @Profile({"test","local"})
16 public class EmbeddedMariaDbConfig {
17
18     @Bean
19     MariaDB4jSpringService mariaDB4jSpringService() {
20         return new MariaDB4jSpringService();
21     }
22
23     @Bean
24     DataSource dataSource(MariaDB4jSpringService mariaDB4jSpringService,
25                           @Value("${mariaDB4j.databaseName}") String databaseName,
26                           @Value("${spring.datasource.username}") String datasourceUsername,
27                           @Value("${spring.datasource.password}") String datasourcePassword,
28                           @Value("${spring.datasource.driver-class-name}") String datasourceDriver) throws ManagedProcessException {
29         //Create our database with default root user and no password
30         mariaDB4jSpringService.getDB().createDB(databaseName);
31
32         DBConfigurationBuilder config = mariaDB4jSpringService.getConfiguration();
33
34         return DataSourceBuilder
35                 .create()
36                 .username(datasourceUsername)
37                 .password(datasourcePassword)
38                 .url(config.getURL(databaseName))
39                 .driverClassName(datasourceDriver)
40                 .build();
41     }
42 }