mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
statistics: report which JDK versions are used in project modules (FUS-533)
GitOrigin-RevId: 06a5c035e0e718b15c689d16102ffcd1fe3b0048
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6201477497
commit
c21ccef37f
@@ -432,6 +432,7 @@
|
||||
<projectService serviceImplementation="com.intellij.compiler.CompilerWorkspaceConfiguration"/>
|
||||
<statistics.projectUsagesCollector implementation="com.intellij.compiler.CompilerSettingsCollector"/>
|
||||
<statistics.projectUsagesCollector implementation="com.intellij.pom.java.JavaLanguageLevelCollector"/>
|
||||
<statistics.projectUsagesCollector implementation="com.intellij.pom.java.JdkVersionCollector"/>
|
||||
|
||||
<changesGroupingPolicy key="module" id="module"
|
||||
implementationClass="com.intellij.openapi.vcs.changes.ui.ModuleChangesGroupingPolicy$Factory"/>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright 2000-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 file.
|
||||
package com.intellij.pom.java
|
||||
|
||||
import com.intellij.internal.statistic.beans.MetricEvent
|
||||
import com.intellij.internal.statistic.beans.newMetric
|
||||
import com.intellij.internal.statistic.eventLog.FeatureUsageData
|
||||
import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector
|
||||
import com.intellij.openapi.module.ModuleManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.roots.ModuleRootManager
|
||||
import com.intellij.util.lang.JavaVersion
|
||||
import java.util.*
|
||||
|
||||
class JdkVersionCollector : ProjectUsagesCollector() {
|
||||
override fun getGroupId(): String {
|
||||
return "java.jdk.version"
|
||||
}
|
||||
|
||||
public override fun getMetrics(project: Project): Set<MetricEvent> {
|
||||
val sdks = ModuleManager.getInstance(project).modules.mapNotNullTo(HashSet()) {
|
||||
ModuleRootManager.getInstance(it).sdk
|
||||
}
|
||||
|
||||
val jdkVersions = sdks.mapTo(HashSet()) {
|
||||
JavaVersion.tryParse(it.versionString)
|
||||
}
|
||||
|
||||
return jdkVersions.mapTo(HashSet()) {
|
||||
newMetric("MODULE_JDK_VERSION", FeatureUsageData().apply {
|
||||
addData("feature", it?.feature ?: -1)
|
||||
addData("minor", it?.minor ?: -1)
|
||||
addData("update", it?.update ?: -1)
|
||||
addData("ea", it?.ea ?: false)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
override fun requiresReadAccess() = true
|
||||
}
|
||||
Reference in New Issue
Block a user