From e3596f728e43c415e9ce917868bcd638049f0bbc Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Mon, 3 Dec 2018 15:34:10 +0300 Subject: [PATCH] Gradle stat: report JVM version instead of IDE SDK user name as `gradleJvm` option --- .../gradle/statistics/GradleSettingsCollector.kt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/statistics/GradleSettingsCollector.kt b/plugins/gradle/src/org/jetbrains/plugins/gradle/statistics/GradleSettingsCollector.kt index 18233b8c4146..a2caa81fdefa 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/statistics/GradleSettingsCollector.kt +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/statistics/GradleSettingsCollector.kt @@ -6,9 +6,12 @@ import com.intellij.internal.statistic.beans.UsageDescriptor import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector import com.intellij.internal.statistic.utils.getBooleanUsage import com.intellij.internal.statistic.utils.getEnumUsage +import com.intellij.openapi.externalSystem.service.execution.ExternalSystemJdkUtil import com.intellij.openapi.project.Project -import org.jetbrains.plugins.gradle.settings.GradleSettings +import com.intellij.openapi.projectRoots.SdkType import org.jetbrains.plugins.gradle.service.settings.GradleSettingsService +import org.jetbrains.plugins.gradle.settings.GradleProjectSettings +import org.jetbrains.plugins.gradle.settings.GradleSettings class GradleSettingsCollector : ProjectUsagesCollector() { override fun getGroupId() = "statistics.build.gradle.state" @@ -34,7 +37,7 @@ class GradleSettingsCollector : ProjectUsagesCollector() { usages.add(getEnumUsage("storeProjectFilesExternally", setting.storeProjectFilesExternally)) usages.add(getBooleanUsage("disableWrapperSourceDistributionNotification", setting.isDisableWrapperSourceDistributionNotification)) usages.add(getBooleanUsage("createModulePerSourceSet", setting.isResolveModulePerSourceSet)) - usages.add(UsageDescriptor("gradleJvm." + ConvertUsagesUtil.escapeDescriptorName(setting.gradleJvm ?: "empty"), 1)) + usages.add(UsageDescriptor("gradleJvm." + ConvertUsagesUtil.escapeDescriptorName(getGradleJvmName(setting, project) ?: "empty"), 1)) usages.add(UsageDescriptor("gradleVersion." + setting.resolveGradleVersion().version, 1)) usages.add(getBooleanUsage("delegateBuildRun", settingsService.isDelegatedBuildEnabled(projectPath))) usages.add(getEnumUsage("preferredTestRunner", settingsService.getTestRunner(projectPath))) @@ -42,6 +45,15 @@ class GradleSettingsCollector : ProjectUsagesCollector() { return usages } + private fun getGradleJvmName(setting: GradleProjectSettings, project: Project): String? { + val jdk = ExternalSystemJdkUtil.getJdk(project, setting.gradleJvm) + val sdkType = jdk?.sdkType + return if (sdkType is SdkType) { + sdkType.suggestSdkName(null, jdk.homePath) + } + else setting.gradleJvm + } + private fun getYesNoUsage(key: String, value: Boolean): UsageDescriptor { return UsageDescriptor(key + if (value) ".yes" else ".no", 1) }