summaryrefslogtreecommitdiff
path: root/opendc-trace/opendc-trace-api
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-trace/opendc-trace-api')
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt12
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 }
+ }
}
}