@@ -8,13 +8,20 @@ import io.r2dbc.pool.ConnectionPoolConfiguration
88import io.r2dbc.spi.ConnectionFactory
99import io.r2dbc.spi.ConnectionFactoryOptions
1010import io.r2dbc.spi.ConnectionFactoryOptions.*
11+ import io.r2dbc.spi.IsolationLevel
12+ import io.r2dbc.spi.Result
1113import net.kyori.adventure.text.logger.slf4j.ComponentLogger
1214import org.jetbrains.exposed.v1.core.vendors.MariaDBDialect
1315import org.jetbrains.exposed.v1.r2dbc.R2dbcDatabase
1416import org.jetbrains.exposed.v1.r2dbc.R2dbcDatabaseConfig
17+ import org.jetbrains.exposed.v1.r2dbc.mappers.R2dbcRegistryTypeMapping
1518import org.jetbrains.exposed.v1.r2dbc.transactions.TransactionManager
19+ import org.jetbrains.exposed.v1.r2dbc.transactions.suspendTransaction
20+ import org.mariadb.r2dbc.MariadbConnectionConfiguration
21+ import org.mariadb.r2dbc.MariadbConnectionFactory
1622import org.mariadb.r2dbc.MariadbConnectionFactoryProvider
1723import org.slf4j.event.Level
24+ import reactor.core.publisher.Flux
1825import java.nio.file.Path
1926import java.time.Duration.ofMillis
2027
@@ -44,19 +51,15 @@ class DatabaseApi internal constructor(val database: R2dbcDatabase) {
4451 configCustomizer : R2dbcDatabaseConfig .Builder .() -> Unit = {}
4552 ): DatabaseApi {
4653 val config = DatabaseConfig .create(pluginPath)
54+ val configuration = MariadbConnectionConfiguration .builder()
55+ .host(config.credentials.host)
56+ .port(config.credentials.port)
57+ .username(config.credentials.username)
58+ .password(config.credentials.password)
59+ .database(config.credentials.database)
60+ .build()
4761
48- val connectionFactoryOptions = ConnectionFactoryOptions .builder().apply {
49- option(DRIVER , MariadbConnectionFactoryProvider .MARIADB_DRIVER )
50- option(HOST , config.credentials.host)
51- option(PORT , config.credentials.port)
52- option(USER , config.credentials.username)
53- option(PASSWORD , config.credentials.password)
54- option(DATABASE , config.credentials.database)
55- }.build()
56-
57- val connectionFactory = MariadbConnectionFactoryProvider ()
58- .create(connectionFactoryOptions)
59-
62+ val connectionFactory = MariadbConnectionFactory .from(configuration)
6063 val poolConfig = ConnectionPoolConfiguration .builder()
6164 .connectionFactory(connectionFactory)
6265 .acquireRetry(1 )
@@ -76,8 +79,9 @@ class DatabaseApi internal constructor(val database: R2dbcDatabase) {
7679
7780 val caller = getCallerClass() ? : DatabaseApi ::class .java
7881 val logger = ComponentLogger .logger(caller)
82+ val logLevel = config.logLevel
7983
80- return create(pool, logger, configCustomizer)
84+ return create(pool, logger, logLevel, configCustomizer)
8185 }
8286
8387 /* *
@@ -94,11 +98,13 @@ class DatabaseApi internal constructor(val database: R2dbcDatabase) {
9498 fun create (
9599 connectionFactory : ConnectionFactory ,
96100 logger : ComponentLogger = ComponentLogger .logger("DatabaseApi "),
101+ logLevel : Level = Level .DEBUG ,
97102 configCustomizer : R2dbcDatabaseConfig .Builder .() -> Unit = {}
98103 ): DatabaseApi {
99104 val database = R2dbcDatabase .connect(connectionFactory, R2dbcDatabaseConfig {
100105 explicitDialect = MariaDBDialect ()
101- sqlLogger = ComponentSqlLogger (logger, Level .DEBUG )
106+ sqlLogger = ComponentSqlLogger (logger, logLevel)
107+ defaultR2dbcIsolationLevel = IsolationLevel .READ_UNCOMMITTED
102108 configCustomizer()
103109 })
104110
0 commit comments