diff options
Diffstat (limited to 'opendc-trace/opendc-trace-api/src/main')
| -rw-r--r-- | opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt index eff6fa83..26e81cf8 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt @@ -90,18 +90,20 @@ public interface TraceFormat { */ public companion object { /** - * A list of [TraceFormat] that are available on this system. + * Obtain a list of [TraceFormat] that are available in the current thread context. */ @JvmStatic - public val installedProviders: List<TraceFormat> by lazy { - val loader = ServiceLoader.load(TraceFormat::class.java) - loader.toList() + public fun getInstalledProviders(): Iterable<TraceFormat> { + return ServiceLoader.load(TraceFormat::class.java) } /** * Obtain a [TraceFormat] implementation by [name]. */ @JvmStatic - public fun byName(name: String): TraceFormat? = installedProviders.find { it.name == name } + public fun byName(name: String): TraceFormat? { + val loader = ServiceLoader.load(TraceFormat::class.java) + return loader.find { it.name == name } + } } } |
