diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index acff640..e468fd2 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -19,11 +19,6 @@ dependencies { // Use the Kotlin JDK 8 standard library. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") - // Logging - implementation("io.github.microutils:kotlin-logging-jvm:3.0.5") - testImplementation("net.logstash.logback:logstash-logback-encoder:7.3") - testImplementation("ch.qos.logback:logback-classic:1.4.6") - // Use the Kotlin test library. testImplementation("org.jetbrains.kotlin:kotlin-test") diff --git a/lib/src/main/kotlin/io/nexure/capsule/Capsule.kt b/lib/src/main/kotlin/io/nexure/capsule/Capsule.kt index 0e7499e..797af3a 100644 --- a/lib/src/main/kotlin/io/nexure/capsule/Capsule.kt +++ b/lib/src/main/kotlin/io/nexure/capsule/Capsule.kt @@ -1,12 +1,9 @@ package io.nexure.capsule -import mu.KotlinLogging import java.lang.reflect.Constructor private const val DEFAULT_PRIORITY: Int = Int.MAX_VALUE -private val log = KotlinLogging.logger {} - @Suppress("UNCHECKED_CAST") open class Capsule private constructor( @@ -15,8 +12,10 @@ private constructor( ) : DependencyProvider { constructor(): this(Int.MAX_VALUE, Registry()) - override fun tryGet(clazz: Class): T? = - getDependencies(clazz).firstOrNull()?.let { it.getInstance(this) as T } ?: resolveImplicit(clazz) + override fun tryGet(clazz: Class): T? = resolveExplicit(clazz) ?: resolveImplicit(clazz) + + private fun resolveExplicit(clazz: Class): T? = + getDependencies(clazz).firstOrNull()?.let { it.getInstance(this) as T } private fun resolveImplicit(clazz: Class): T? { if (clazz in forbiddenImplicit) { @@ -74,7 +73,6 @@ private constructor( val parentsPriority: Int = parents.minOfOrNull { it.priority } ?: DEFAULT_PRIORITY val priority: Int = parentsPriority - 1 val moduleConfig = Configuration(priority, dependencies).apply(config) - log.debug { "Capsule created with dependencies: ${moduleConfig.dependencies}" } return Capsule(priority, moduleConfig.dependencies) } }