summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/storage/StorageFactory.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/storage/StorageFactory.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/storage/StorageFactory.kt16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/storage/StorageFactory.kt b/src/main/kotlin/io/dico/parcels2/storage/StorageFactory.kt
index 38c5f6d..13df2ed 100644
--- a/src/main/kotlin/io/dico/parcels2/storage/StorageFactory.kt
+++ b/src/main/kotlin/io/dico/parcels2/storage/StorageFactory.kt
@@ -1,5 +1,6 @@
package io.dico.parcels2.storage
+import com.zaxxer.hikari.HikariDataSource
import io.dico.parcels2.DataConnectionOptions
import kotlin.reflect.KClass
@@ -26,21 +27,16 @@ interface StorageFactory {
class ConnectionStorageFactory : StorageFactory {
override val optionsClass = DataConnectionOptions::class
-
- private val types: Map<String, String> = mutableMapOf(
- "mysql" to "com.mysql.jdbc.jdbc2.optional.MysqlDataSource",
- "h2" to "org.h2.jdbcx.JdbcDataSource"
- )
+ private val types: List<String> = listOf("postgresql")
fun register(companion: StorageFactory.StorageFactories) {
- types.keys.forEach {
- companion.registerFactory(it, this)
- }
+ types.forEach { companion.registerFactory(it, this) }
}
override fun newStorageInstance(dialect: String, options: Any): Storage {
- val driverClass = types[dialect.toLowerCase()] ?: throw IllegalArgumentException("Storage dialect $dialect is not supported")
- return StorageWithCoroutineBacking(ExposedBacking(getHikariDataSource(dialect, driverClass, options as DataConnectionOptions)))
+ val hikariConfig = getHikariConfig(dialect, options as DataConnectionOptions)
+ val dataSourceFactory = { HikariDataSource(hikariConfig) }
+ return StorageWithCoroutineBacking(ExposedBacking(dataSourceFactory))
}
} \ No newline at end of file