diff --git a/koin-projects/examples/coffee-maker/src/main/kotlin/org/koin/example/CoffeeApp.kt b/koin-projects/examples/coffee-maker/src/main/kotlin/org/koin/example/CoffeeApp.kt index b2d90b783..6c4ee57d6 100644 --- a/koin-projects/examples/coffee-maker/src/main/kotlin/org/koin/example/CoffeeApp.kt +++ b/koin-projects/examples/coffee-maker/src/main/kotlin/org/koin/example/CoffeeApp.kt @@ -13,10 +13,11 @@ class CoffeeApp : KoinComponent { fun main() { startKoin { + printLogger() modules(listOf(coffeeAppModule)) } val coffeeShop = CoffeeApp() - measureDuration("Make coffee") { + measureDuration("Got Coffee") { coffeeShop.maker.brew() } stopKoin() diff --git a/koin-projects/gradle/versions.gradle b/koin-projects/gradle/versions.gradle index ec046466c..e5299d4e1 100644 --- a/koin-projects/gradle/versions.gradle +++ b/koin-projects/gradle/versions.gradle @@ -1,6 +1,6 @@ ext { // Koin - koin_version = '2.1.0-alpha-8' + koin_version = '2.1.0-alpha-9' // Kotlin kotlin_version = '1.3.61' diff --git a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/compat/ScopeCompat.kt b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/compat/ScopeCompat.kt index c56fc2664..50348f1a2 100644 --- a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/compat/ScopeCompat.kt +++ b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/compat/ScopeCompat.kt @@ -45,7 +45,7 @@ object ScopeCompat { clazz: Class, qualifier: Qualifier? = null, parameters: ParametersDefinition? = null - ): Lazy = lazy { scope.getViewModel(owner, clazz.kotlin, qualifier, parameters) } + ): Lazy = lazy(LazyThreadSafetyMode.NONE) { scope.getViewModel(owner, clazz.kotlin, qualifier, parameters) } /** diff --git a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/ext/android/FragmentExt.kt b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/ext/android/FragmentExt.kt index f4d2ef437..499da25c7 100644 --- a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/ext/android/FragmentExt.kt +++ b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/ext/android/FragmentExt.kt @@ -31,14 +31,14 @@ inline fun Fragment.sharedViewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy = - lazy { getSharedViewModel(qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { getSharedViewModel(qualifier, parameters) } fun Fragment.sharedViewModel( clazz: KClass, qualifier: Qualifier? = null, parameters: ParametersDefinition? = null ): Lazy = - lazy { getSharedViewModel(clazz, qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { getSharedViewModel(clazz, qualifier, parameters) } inline fun Fragment.getSharedViewModel( qualifier: Qualifier? = null, diff --git a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/ext/android/LifecycleOwnerExt.kt b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/ext/android/LifecycleOwnerExt.kt index a410e788a..23a7292b7 100644 --- a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/ext/android/LifecycleOwnerExt.kt +++ b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/ext/android/LifecycleOwnerExt.kt @@ -44,14 +44,14 @@ fun LifecycleOwner.viewModel( qualifier: Qualifier? = null, parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(clazz, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(clazz, qualifier, parameters) } } inline fun LifecycleOwner.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(T::class, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(T::class, qualifier, parameters) } } inline fun LifecycleOwner.getViewModel( diff --git a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/koin/KoinExt.kt b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/koin/KoinExt.kt index 0031f9447..aed9e6205 100644 --- a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/koin/KoinExt.kt +++ b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/koin/KoinExt.kt @@ -14,7 +14,7 @@ inline fun Koin.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { _scopeRegistry.rootScope.getViewModel(owner, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { _scopeRegistry.rootScope.getViewModel(owner, qualifier, parameters) } } inline fun Koin.getViewModel( diff --git a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/scope/ScopeExt.kt b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/scope/ScopeExt.kt index 18ba1d402..103743119 100644 --- a/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/scope/ScopeExt.kt +++ b/koin-projects/koin-android-viewmodel/src/main/java/org/koin/android/viewmodel/scope/ScopeExt.kt @@ -37,7 +37,7 @@ inline fun Scope.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(owner, T::class, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(owner, T::class, qualifier, parameters) } } inline fun Scope.getViewModel( diff --git a/koin-projects/koin-android/src/main/java/org/koin/android/ext/android/ComponentCallbackExt.kt b/koin-projects/koin-android/src/main/java/org/koin/android/ext/android/ComponentCallbackExt.kt index f184f349f..b483e41e1 100644 --- a/koin-projects/koin-android/src/main/java/org/koin/android/ext/android/ComponentCallbackExt.kt +++ b/koin-projects/koin-android/src/main/java/org/koin/android/ext/android/ComponentCallbackExt.kt @@ -24,7 +24,7 @@ fun ComponentCallbacks.getKoin() = when (this) { inline fun ComponentCallbacks.inject( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null -) = lazy { get(qualifier, parameters) } +) = lazy(LazyThreadSafetyMode.NONE) { get(qualifier, parameters) } /** * get given dependency for Android koincomponent diff --git a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/compat/ScopeCompat.kt b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/compat/ScopeCompat.kt index a60472dad..799161451 100644 --- a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/compat/ScopeCompat.kt +++ b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/compat/ScopeCompat.kt @@ -45,7 +45,7 @@ object ScopeCompat { clazz: Class, qualifier: Qualifier? = null, parameters: ParametersDefinition? = null - ): Lazy = lazy { scope.getViewModel(owner, clazz.kotlin, qualifier, parameters) } + ): Lazy = lazy(LazyThreadSafetyMode.NONE) { scope.getViewModel(owner, clazz.kotlin, qualifier, parameters) } /** diff --git a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/FragmentExt.kt b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/FragmentExt.kt index 59e96db43..0076f7e2b 100644 --- a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/FragmentExt.kt +++ b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/FragmentExt.kt @@ -31,14 +31,14 @@ inline fun Fragment.sharedViewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy = - lazy { getSharedViewModel(qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { getSharedViewModel(qualifier, parameters) } fun Fragment.sharedViewModel( clazz: KClass, qualifier: Qualifier? = null, parameters: ParametersDefinition? = null ): Lazy = - lazy { getSharedViewModel(clazz, qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { getSharedViewModel(clazz, qualifier, parameters) } inline fun Fragment.getSharedViewModel( qualifier: Qualifier? = null, diff --git a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/LifecycleOwnerExt.kt b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/LifecycleOwnerExt.kt index b6ad5d696..9c44fe031 100644 --- a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/LifecycleOwnerExt.kt +++ b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/LifecycleOwnerExt.kt @@ -38,14 +38,14 @@ fun LifecycleOwner.viewModel( qualifier: Qualifier? = null, parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(clazz, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(clazz, qualifier, parameters) } } inline fun LifecycleOwner.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(T::class, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(T::class, qualifier, parameters) } } inline fun LifecycleOwner.getViewModel( diff --git a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/SavedStateRegistryOwnerExt.kt b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/SavedStateRegistryOwnerExt.kt index aa987a0a7..e11896e5c 100644 --- a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/SavedStateRegistryOwnerExt.kt +++ b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/ext/android/SavedStateRegistryOwnerExt.kt @@ -39,14 +39,14 @@ fun SavedStateRegistryOwner.viewModel( qualifier: Qualifier? = null, parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(clazz, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(clazz, qualifier, parameters) } } inline fun SavedStateRegistryOwner.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(T::class, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(T::class, qualifier, parameters) } } inline fun SavedStateRegistryOwner.getViewModel( diff --git a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/koin/KoinExt.kt b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/koin/KoinExt.kt index b65119af2..c13b7250c 100644 --- a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/koin/KoinExt.kt +++ b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/koin/KoinExt.kt @@ -15,7 +15,7 @@ inline fun Koin.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { _scopeRegistry.rootScope.getViewModel(owner, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { _scopeRegistry.rootScope.getViewModel(owner, qualifier, parameters) } } inline fun Koin.viewModel( @@ -23,7 +23,7 @@ inline fun Koin.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { _scopeRegistry.rootScope.getViewModel(owner, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { _scopeRegistry.rootScope.getViewModel(owner, qualifier, parameters) } } inline fun Koin.getViewModel( diff --git a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/scope/ScopeExt.kt b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/scope/ScopeExt.kt index edb6f8044..76bc97bec 100644 --- a/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/scope/ScopeExt.kt +++ b/koin-projects/koin-androidx-viewmodel/src/main/java/org/koin/androidx/viewmodel/scope/ScopeExt.kt @@ -36,7 +36,7 @@ inline fun Scope.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(owner,T::class,qualifier,parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(owner,T::class,qualifier,parameters) } } inline fun Scope.viewModel( @@ -44,7 +44,7 @@ inline fun Scope.viewModel( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy { - return lazy { getViewModel(owner,T::class,qualifier,parameters) } + return lazy(LazyThreadSafetyMode.NONE) { getViewModel(owner,T::class,qualifier,parameters) } } inline fun Scope.getViewModel( diff --git a/koin-projects/koin-core/src/main/kotlin/org/koin/core/KoinComponent.kt b/koin-projects/koin-core/src/main/kotlin/org/koin/core/KoinComponent.kt index b0a7990b4..b8318a85d 100644 --- a/koin-projects/koin-core/src/main/kotlin/org/koin/core/KoinComponent.kt +++ b/koin-projects/koin-core/src/main/kotlin/org/koin/core/KoinComponent.kt @@ -52,7 +52,7 @@ inline fun KoinComponent.inject( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy = - lazy { getKoin().get(qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { getKoin().get(qualifier, parameters) } /** * Get instance instance from Koin by Primary Type P, as secondary type S diff --git a/koin-projects/koin-core/src/main/kotlin/org/koin/core/logger/EmptyLogger.kt b/koin-projects/koin-core/src/main/kotlin/org/koin/core/logger/EmptyLogger.kt index 531435708..80f2d7984 100644 --- a/koin-projects/koin-core/src/main/kotlin/org/koin/core/logger/EmptyLogger.kt +++ b/koin-projects/koin-core/src/main/kotlin/org/koin/core/logger/EmptyLogger.kt @@ -3,7 +3,9 @@ package org.koin.core.logger /** * No loggings Logger */ -class EmptyLogger : Logger(Level.ERROR) { +class EmptyLogger : Logger(Level.NONE) { - override fun log(level: Level, msg: MESSAGE) {} + override fun log(level: Level, msg: MESSAGE) { + System.err.println("should see this - $level - $msg") + } } \ No newline at end of file diff --git a/koin-projects/koin-core/src/main/kotlin/org/koin/core/logger/Logger.kt b/koin-projects/koin-core/src/main/kotlin/org/koin/core/logger/Logger.kt index caf182b6e..b61814cc9 100644 --- a/koin-projects/koin-core/src/main/kotlin/org/koin/core/logger/Logger.kt +++ b/koin-projects/koin-core/src/main/kotlin/org/koin/core/logger/Logger.kt @@ -45,7 +45,7 @@ const val KOIN_TAG = "[Koin]" * Log Level */ enum class Level { - DEBUG, INFO, ERROR + DEBUG, INFO, ERROR, NONE } typealias MESSAGE = String \ No newline at end of file diff --git a/koin-projects/koin-core/src/main/kotlin/org/koin/core/scope/Scope.kt b/koin-projects/koin-core/src/main/kotlin/org/koin/core/scope/Scope.kt index 542782f5e..c2f4d7911 100644 --- a/koin-projects/koin-core/src/main/kotlin/org/koin/core/scope/Scope.kt +++ b/koin-projects/koin-core/src/main/kotlin/org/koin/core/scope/Scope.kt @@ -58,7 +58,7 @@ data class Scope( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy = - lazy { get(qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { get(qualifier, parameters) } /** * Lazy inject a Koin instance if available @@ -73,7 +73,7 @@ data class Scope( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ): Lazy = - lazy { getOrNull(qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { getOrNull(qualifier, parameters) } /** * Get a Koin instance diff --git a/koin-projects/koin-core/src/main/kotlin/org/koin/java/KoinJavaComponent.kt b/koin-projects/koin-core/src/main/kotlin/org/koin/java/KoinJavaComponent.kt index b00aad2f6..85472c6b1 100644 --- a/koin-projects/koin-core/src/main/kotlin/org/koin/java/KoinJavaComponent.kt +++ b/koin-projects/koin-core/src/main/kotlin/org/koin/java/KoinJavaComponent.kt @@ -42,7 +42,7 @@ object KoinJavaComponent { qualifier: Qualifier? = null, parameters: ParametersDefinition? = null ): Lazy { - return lazy { get(clazz, qualifier, parameters) } + return lazy(LazyThreadSafetyMode.NONE) { get(clazz, qualifier, parameters) } } /** diff --git a/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorApplicationExt.kt b/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorApplicationExt.kt index b449e071a..38c3457ba 100644 --- a/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorApplicationExt.kt +++ b/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorApplicationExt.kt @@ -43,7 +43,7 @@ inline fun Application.inject( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ) = - lazy { get(qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { get(qualifier, parameters) } /** * Retrieve given dependency for KoinComponent diff --git a/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorRouteExt.kt b/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorRouteExt.kt index 7e3fc4605..b5fed501c 100644 --- a/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorRouteExt.kt +++ b/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorRouteExt.kt @@ -36,7 +36,7 @@ inline fun Route.inject( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ) = - lazy { get(qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { get(qualifier, parameters) } /** * Retrieve given dependency for KoinComponent diff --git a/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorRoutingExt.kt b/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorRoutingExt.kt index d17564dc8..5a2203877 100644 --- a/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorRoutingExt.kt +++ b/koin-projects/koin-ktor/src/main/kotlin/org/koin/ktor/ext/KtorRoutingExt.kt @@ -36,7 +36,7 @@ inline fun Routing.inject( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null ) = - lazy { get(qualifier, parameters) } + lazy(LazyThreadSafetyMode.NONE) { get(qualifier, parameters) } /** * Retrieve given dependency for KoinComponent diff --git a/koin-projects/koin-test/src/main/kotlin/org/koin/test/KoinTest.kt b/koin-projects/koin-test/src/main/kotlin/org/koin/test/KoinTest.kt index 2cc14d4b2..924fd39a0 100644 --- a/koin-projects/koin-test/src/main/kotlin/org/koin/test/KoinTest.kt +++ b/koin-projects/koin-test/src/main/kotlin/org/koin/test/KoinTest.kt @@ -45,4 +45,4 @@ inline fun KoinTest.get( inline fun KoinTest.inject( qualifier: Qualifier? = null, noinline parameters: ParametersDefinition? = null -): Lazy = lazy { get(qualifier, parameters) } \ No newline at end of file +): Lazy = lazy(LazyThreadSafetyMode.NONE) { get(qualifier, parameters) } \ No newline at end of file