From ac6b55e796bb738dd5bc6fed24cacee9b9cbeedd Mon Sep 17 00:00:00 2001 From: usbharu <64310155+usbharu@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:32:30 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20SPI=E3=82=92=E4=BD=BF=E7=94=A8=E3=81=97?= =?UTF-8?q?=E3=81=A6ModuleContext=E3=82=92=E8=AA=AD=E3=81=BF=E8=BE=BC?= =?UTF-8?q?=E3=82=80=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../owl/broker/mongodb/MongoModuleContext.kt | 18 +++++++++++++++- .../dev.usbharu.owl.broker.ModuleContext | 1 + .../kotlin/dev/usbharu/owl/broker/Main.kt | 21 ++----------------- 3 files changed, 20 insertions(+), 20 deletions(-) create mode 100644 broker/broker-mongodb/src/main/resources/META-INF/services/dev.usbharu.owl.broker.ModuleContext diff --git a/broker/broker-mongodb/src/main/kotlin/dev/usbharu/owl/broker/mongodb/MongoModuleContext.kt b/broker/broker-mongodb/src/main/kotlin/dev/usbharu/owl/broker/mongodb/MongoModuleContext.kt index 0fa424d..6a37436 100644 --- a/broker/broker-mongodb/src/main/kotlin/dev/usbharu/owl/broker/mongodb/MongoModuleContext.kt +++ b/broker/broker-mongodb/src/main/kotlin/dev/usbharu/owl/broker/mongodb/MongoModuleContext.kt @@ -16,11 +16,27 @@ package dev.usbharu.owl.broker.mongodb +import com.mongodb.ConnectionString +import com.mongodb.MongoClientSettings +import com.mongodb.kotlin.client.coroutine.MongoClient import dev.usbharu.owl.broker.ModuleContext +import org.bson.UuidRepresentation import org.koin.ksp.generated.module class MongoModuleContext : ModuleContext { override fun module(): org.koin.core.module.Module { - return MongoModule().module + val module = MongoModule().module + module.includes(org.koin.dsl.module { + single { + val clientSettings = + MongoClientSettings.builder() + .applyConnectionString(ConnectionString("mongodb://agent1.build:27017")) + .uuidRepresentation(UuidRepresentation.STANDARD).build() + + + MongoClient.create(clientSettings).getDatabase("mongo-test") + } + }) + return module } } \ No newline at end of file diff --git a/broker/broker-mongodb/src/main/resources/META-INF/services/dev.usbharu.owl.broker.ModuleContext b/broker/broker-mongodb/src/main/resources/META-INF/services/dev.usbharu.owl.broker.ModuleContext new file mode 100644 index 0000000..0a1dfac --- /dev/null +++ b/broker/broker-mongodb/src/main/resources/META-INF/services/dev.usbharu.owl.broker.ModuleContext @@ -0,0 +1 @@ +dev.usbharu.owl.broker.mongodb.MongoModuleContext \ No newline at end of file diff --git a/broker/src/main/kotlin/dev/usbharu/owl/broker/Main.kt b/broker/src/main/kotlin/dev/usbharu/owl/broker/Main.kt index fa01f68..d5184bd 100644 --- a/broker/src/main/kotlin/dev/usbharu/owl/broker/Main.kt +++ b/broker/src/main/kotlin/dev/usbharu/owl/broker/Main.kt @@ -16,40 +16,23 @@ package dev.usbharu.owl.broker -import com.mongodb.ConnectionString -import com.mongodb.MongoClientSettings -import com.mongodb.kotlin.client.coroutine.MongoClient import dev.usbharu.owl.broker.service.DefaultRetryPolicyFactory import dev.usbharu.owl.broker.service.RetryPolicyFactory import dev.usbharu.owl.common.property.PropertySerializerFactory import dev.usbharu.owl.common.property.PropertySerializerFactoryImpl import kotlinx.coroutines.runBlocking -import org.bson.UuidRepresentation import org.koin.core.context.startKoin import org.koin.dsl.module import org.koin.ksp.generated.defaultModule +import java.util.* fun main() { - - val moduleContext = - Class.forName("dev.usbharu.owl.broker.mongodb.MongoModuleContext").newInstance() as ModuleContext - - -// println(File(Thread.currentThread().contextClassLoader.getResource("dev/usbharu/owl/broker/mongodb").file).listFiles().joinToString()) + val moduleContext = ServiceLoader.load(ModuleContext::class.java).first() val koin = startKoin { printLogger() val module = module { - single { - val clientSettings = - MongoClientSettings.builder() - .applyConnectionString(ConnectionString("mongodb://agent1.build:27017")) - .uuidRepresentation(UuidRepresentation.STANDARD).build() - - - MongoClient.create(clientSettings).getDatabase("mongo-test") - } single { PropertySerializerFactoryImpl() }