diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/telemetry/GradleDaemonOpenTelemetryUtil.kt b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/telemetry/GradleDaemonOpenTelemetryUtil.kt index 77fa917f90a5..8387eb0ff678 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/telemetry/GradleDaemonOpenTelemetryUtil.kt +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/telemetry/GradleDaemonOpenTelemetryUtil.kt @@ -3,12 +3,13 @@ package org.jetbrains.plugins.gradle.util.telemetry import com.intellij.gradle.toolingExtension.impl.telemetry.GradleTelemetryFormat import com.intellij.openapi.util.Key -import com.intellij.openapi.util.UserDataHolder import com.intellij.openapi.util.io.toNioPathOrNull import com.intellij.openapi.util.registry.Registry.Companion.`is` import com.intellij.openapi.util.registry.Registry.Companion.stringValue import com.intellij.platform.diagnostic.telemetry.impl.getOtlpEndPoint +import com.intellij.util.text.nullize import org.jetbrains.annotations.ApiStatus.Internal +import org.jetbrains.plugins.gradle.settings.GradleExecutionSettings import java.net.URI import java.nio.file.Path import java.util.function.Supplier @@ -29,40 +30,36 @@ object GradleDaemonOpenTelemetryUtil { val DAEMON_TELEMETRY_TARGET_ENDPOINT_KEY: Key = Key.create("DAEMON_TELEMETRY_TARGET_ENDPOINT") @JvmStatic - fun isDaemonTracingEnabled(holder: UserDataHolder): Boolean { - return holder.providedOrElse(DAEMON_TELEMETRY_ENABLED_KEY) { - `is`("gradle.daemon.opentelemetry.enabled", false) - } == true + fun isDaemonTracingEnabled(settings: GradleExecutionSettings): Boolean { + return settings.getUserData(DAEMON_TELEMETRY_ENABLED_KEY) + ?: `is`("gradle.daemon.opentelemetry.enabled", false) } @JvmStatic - fun getTelemetryFormat(holder: UserDataHolder): GradleTelemetryFormat { - return holder.providedOrElse(DAEMON_TELEMETRY_FORMAT_KEY) { + fun getTelemetryFormat(settings: GradleExecutionSettings): GradleTelemetryFormat { + return settings.providedOrElse(DAEMON_TELEMETRY_FORMAT_KEY) { val format = stringValue("gradle.daemon.opentelemetry.format") GradleTelemetryFormat.valueOf(format.uppercase()) } ?: GradleTelemetryFormat.PROTOBUF } @JvmStatic - fun getTargetFolder(holder: UserDataHolder): Path? { - return holder.providedOrElse(DAEMON_TELEMETRY_TARGET_FOLDER_KEY) { - val folder = stringValue("gradle.daemon.opentelemetry.folder") - if (folder.isBlank()) { - return@providedOrElse null - } - folder.toNioPathOrNull() + fun getTargetFolder(settings: GradleExecutionSettings): Path? { + return settings.providedOrElse(DAEMON_TELEMETRY_TARGET_FOLDER_KEY) { + val folder = stringValue("gradle.daemon.opentelemetry.folder").nullize() + folder?.toNioPathOrNull() } } @JvmStatic - fun getTargetEndpoint(holder: UserDataHolder): URI? { - return holder.providedOrElse(DAEMON_TELEMETRY_TARGET_ENDPOINT_KEY) { + fun getTargetEndpoint(settings: GradleExecutionSettings): URI? { + return settings.providedOrElse(DAEMON_TELEMETRY_TARGET_ENDPOINT_KEY) { val uri = getOtlpEndPoint() ?: return@providedOrElse null URI.create(uri) } } - private fun UserDataHolder.providedOrElse(key: Key, fn: Supplier): T? { + private fun GradleExecutionSettings.providedOrElse(key: Key, fn: Supplier): T? { val provided = getUserData(key) if (provided != null) { return provided @@ -70,7 +67,7 @@ object GradleDaemonOpenTelemetryUtil { try { return fn.get() } - catch (e: Exception) { + catch (_: Exception) { // ignore return null }