diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/FUSEventGroups.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/FUSEventGroups.kt index 9c5db47bd11..3719ced7871 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/FUSEventGroups.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/FUSEventGroups.kt @@ -5,16 +5,63 @@ package org.jetbrains.kotlin.idea.statistics -// Note: along with adding a group to this enum you should also add its GROUP_ID to plugin.xml and get it whitelisted -// (see https://confluence.jetbrains.com/display/FUS/IntelliJ+Reporting+API). -enum class FUSEventGroups(groupIdSuffix: String) { - GradleTarget("gradle.target"), - MavenTarget("maven.target"), - JPSTarget("jps.target"), +/* Note: along with adding a group to this enum you should also add its GROUP_ID to plugin.xml and get it whitelisted + * (see https://confluence.jetbrains.com/display/FUS/IntelliJ+Reporting+API). + * + * Default value for [events] parameter is intended for collectors which don't have yet a set of allowed values for FUS Whitelist + */ +enum class FUSEventGroups(groupIdSuffix: String, val events: Set = hashSetOf()) { + + GradleTarget("gradle.target", gradleTargetEvents), + MavenTarget("maven.target", mavenTargetEvents), + JPSTarget("jps.target", JPSTargetEvents), Refactoring("ide.action.refactoring"), NewFileTemplate("ide.newFileTempl"), NPWizards("ide.npwizards"), DebugEval("ide.debugger.eval"); val GROUP_ID: String = "kotlin.$groupIdSuffix" -} \ No newline at end of file +} + +val gradleTargetEvents = hashSetOf( + "kotlin-android", + "kotlin-platform-common", + "kotlin-platform-js", + "kotlin-platform-jvm", + "MPP.androidJvm", + "MPP.androidJvm.android", + "MPP.common", + "MPP.common.metadata", + "MPP.js", + "MPP.js.js", + "MPP.jvm", + "MPP.jvm.jvm", + "MPP.jvm.jvmWithJava", + "MPP.native", + "MPP.native.androidNativeArm32", + "MPP.native.androidNativeArm64", + "MPP.native.iosArm32", + "MPP.native.iosArm64", + "MPP.native.iosX64", + "MPP.native.linuxArm32Hfp", + "MPP.native.linuxArm64", + "MPP.native.linuxMips32", + "MPP.native.linuxMipsel32", + "MPP.native.linuxX64", + "MPP.native.macosX64", + "MPP.native.mingwX64", + "MPP.native.mingwX86", + "MPP.native.wasm32", + "MPP.native.zephyrStm32f4Disco" +) +val mavenTargetEvents = hashSetOf( + "common", + "js", + "jvm" +) +val JPSTargetEvents = hashSetOf( + "common", + "js", + "jvm", + "native" +) \ No newline at end of file diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/KotlinFUSLogger.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/KotlinFUSLogger.kt index b11f6e9e9b1..3c2b2156cbe 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/KotlinFUSLogger.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/KotlinFUSLogger.kt @@ -14,9 +14,15 @@ open class KotlinFUSLogger { companion object { private val context = FeatureUsageData().addData("plugin_version", KotlinPluginUtil.getPluginVersion()) + private val logger = FUCounterUsageLogger.getInstance() fun log(group: FUSEventGroups, event: String) { - FUCounterUsageLogger.getInstance().logEvent(group.GROUP_ID, event, context) + if (group.events.contains(event)) { + logger.logEvent(group.GROUP_ID, event, context) + } else { + logger.logEvent(group.GROUP_ID, "unknown", context) + } + } fun log(group: FUSEventGroups, event: String, eventData: Map) { @@ -24,7 +30,7 @@ open class KotlinFUSLogger { for (entry in eventData) { localContext.addData(entry.key, entry.value) } - FUCounterUsageLogger.getInstance().logEvent(group.GROUP_ID, event, localContext) + logger.logEvent(group.GROUP_ID, event, localContext) } } } \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt index 8fb28ac3f66..76ce3a9d26c 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleProjectResolverExtension.kt @@ -223,10 +223,9 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension() ideModule.coroutines = gradleModel.coroutines ideModule.platformPluginId = gradleModel.platformPluginId - KotlinFUSLogger.log( - FUSEventGroups.GradleTarget, - gradleModel.kotlinTarget ?: "unknown" - ) + if (gradleModel.hasKotlinPlugin) { + KotlinFUSLogger.log(FUSEventGroups.GradleTarget, gradleModel.kotlinTarget ?: "unknown") + } addImplementedModuleNames(gradleModule, ideModule, ideProject, gradleModel) diff --git a/idea/resources/META-INF/plugin.xml b/idea/resources/META-INF/plugin.xml index e484676025a..b4f5297ad5c 100644 --- a/idea/resources/META-INF/plugin.xml +++ b/idea/resources/META-INF/plugin.xml @@ -73,9 +73,9 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. - - - + + + diff --git a/idea/resources/META-INF/plugin.xml.192 b/idea/resources/META-INF/plugin.xml.192 index 3878e993480..070a10927ec 100644 --- a/idea/resources/META-INF/plugin.xml.192 +++ b/idea/resources/META-INF/plugin.xml.192 @@ -73,9 +73,9 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. - - - + + +