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;
12 import javax.sql.DataSource;
15 @Profile({"test","local"})
16 public class EmbeddedMariaDbConfig {
19 MariaDB4jSpringService mariaDB4jSpringService() {
20 return new MariaDB4jSpringService();
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);
32 DBConfigurationBuilder config = mariaDB4jSpringService.getConfiguration();
34 return DataSourceBuilder
36 .username(datasourceUsername)
37 .password(datasourcePassword)
38 .url(config.getURL(databaseName))
39 .driverClassName(datasourceDriver)