Collect Maven and JPS targets

This commit is contained in:
Vadim Brilyantov
2019-01-16 16:44:50 +03:00
parent 04b705ef2c
commit f5312f42c5
4 changed files with 64 additions and 0 deletions
@@ -3231,8 +3231,12 @@
<checkinHandlerFactory implementation="org.jetbrains.kotlin.idea.vcs.BunchFileCheckInHandlerFactory"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.framework.TargetRetrieveActivity"/>
<!--FUS triggers-->
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinMavenTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinJPSTargetTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinIdeRefactoringTrigger"/>
<statistics.applicationUsagesCollector implementation="org.jetbrains.kotlin.statistics.KotlinIdeNewFileTemplateTrigger"/>
@@ -0,0 +1,48 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.idea.framework
import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.StartupActivity
import org.jetbrains.kotlin.idea.configuration.BuildSystemType
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
import org.jetbrains.kotlin.idea.project.platform
import org.jetbrains.kotlin.idea.util.projectStructure.allModules
import org.jetbrains.kotlin.platform.impl.isCommon
import org.jetbrains.kotlin.platform.impl.isJavaScript
import org.jetbrains.kotlin.platform.impl.isJvm
import org.jetbrains.kotlin.platform.impl.isKotlinNative
import org.jetbrains.kotlin.statistics.KotlinJPSTargetTrigger
import org.jetbrains.kotlin.statistics.KotlinMavenTargetTrigger
import org.jetbrains.kotlin.statistics.KotlinStatisticsTrigger
class TargetRetrieveActivity : StartupActivity {
override fun runActivity(project: Project) {
project.allModules().forEach {
val buildSystem = it.getBuildSystemType()
val platform = when {
it.platform.isJvm -> "jvm"
it.platform.isJavaScript -> "js"
it.platform.isCommon -> "common"
it.platform.isKotlinNative -> "native"
else -> "unknown"
}
when {
buildSystem == BuildSystemType.JPS ->
KotlinStatisticsTrigger.trigger(
KotlinJPSTargetTrigger::class.java,
platform
)
buildSystem.toString().toLowerCase().contains("maven") ->
KotlinStatisticsTrigger.trigger(
KotlinMavenTargetTrigger::class.java,
platform
)
}
}
}
}