X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FSoneModule.kt;h=8f018f5390af5a402cef2a925e19b971980570a1;hb=a8050b466202bb6ddec8430129f728749cdfec1a;hp=18f4b95ac060fe36b3d777de1579ab0428518ec2;hpb=18e619b28421c8222b743c779d0b2e55c1bc1bd9;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/main/SoneModule.kt b/src/main/kotlin/net/pterodactylus/sone/main/SoneModule.kt index 18f4b95..8f018f5 100644 --- a/src/main/kotlin/net/pterodactylus/sone/main/SoneModule.kt +++ b/src/main/kotlin/net/pterodactylus/sone/main/SoneModule.kt @@ -1,5 +1,6 @@ package net.pterodactylus.sone.main +import com.codahale.metrics.* import com.google.common.base.* import com.google.common.eventbus.* import com.google.inject.* @@ -7,6 +8,7 @@ import com.google.inject.matcher.* import com.google.inject.name.Names.* import com.google.inject.spi.* import freenet.l10n.* +import net.pterodactylus.sone.core.* import net.pterodactylus.sone.database.* import net.pterodactylus.sone.database.memory.* import net.pterodactylus.sone.freenet.wot.* @@ -15,7 +17,7 @@ import net.pterodactylus.util.config.ConfigurationException import net.pterodactylus.util.version.Version import java.io.* -class SoneModule(private val sonePlugin: SonePlugin) : AbstractModule() { +open class SoneModule(private val sonePlugin: SonePlugin, private val eventBus: EventBus) : AbstractModule() { override fun configure() { val sonePropertiesFile = File("sone.properties") @@ -36,7 +38,6 @@ class SoneModule(private val sonePlugin: SonePlugin) : AbstractModule() { .getValue(null) ?.let { DebugLoaders(it) } } - val eventBus = EventBus() bind(Configuration::class.java).toInstance(configuration) bind(EventBus::class.java).toInstance(eventBus) @@ -52,6 +53,7 @@ class SoneModule(private val sonePlugin: SonePlugin) : AbstractModule() { bind(Database::class.java).to(MemoryDatabase::class.java).`in`(Singleton::class.java) bind(BaseL10n::class.java).toInstance(sonePlugin.l10n().base) loaders?.let { bind(Loaders::class.java).toInstance(it) } + bind(MetricRegistry::class.java).`in`(Singleton::class.java) bindListener(Matchers.any(), object : TypeListener { override fun hear(typeLiteral: TypeLiteral, typeEncounter: TypeEncounter) { @@ -60,6 +62,13 @@ class SoneModule(private val sonePlugin: SonePlugin) : AbstractModule() { }) } + @Provides + @Singleton + fun getCore(configuration: Configuration, freenetInterface: FreenetInterface, identityManager: IdentityManager, soneDownloader: SoneDownloader, imageInserter: ImageInserter, updateChecker: UpdateChecker, webOfTrustUpdater: WebOfTrustUpdater, eventBus: EventBus, database: Database) = + Core(configuration, freenetInterface, identityManager, soneDownloader, imageInserter, updateChecker, webOfTrustUpdater, eventBus, database).apply { + debugInformation.showVersionInformation = configuration.getBooleanValue("Debug/ShowVersionInformation").getValue(false) + }.also(eventBus::register) + } private fun String.parseVersion(): Version = Version.parse(this)