mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java, compilation-charts] fix JSON deserialization problem
GitOrigin-RevId: 50cfa28cb1238fd0d7f8dcd2f712720e38ef64a2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c8e3bd6733
commit
ca3f72e76b
@@ -32,12 +32,12 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
|
||||
<orderEntry type="library" name="jackson" level="project" />
|
||||
<orderEntry type="library" name="jackson-databind" level="project" />
|
||||
<orderEntry type="library" name="jackson-module-kotlin" level="project" />
|
||||
<orderEntry type="library" name="rd-core" level="project" />
|
||||
<orderEntry type="library" name="rd-swing" level="project" />
|
||||
<orderEntry type="library" name="kotlinx-coroutines-core" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.rd.community" />
|
||||
<orderEntry type="library" name="kotlinx-collections-immutable" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.java.compiler.charts.jps" />
|
||||
<orderEntry type="module" module-name="intellij.platform.core.ui" />
|
||||
</component>
|
||||
</module>
|
||||
+4
-4
@@ -5,14 +5,12 @@ import com.fasterxml.jackson.core.JsonFactory
|
||||
import com.fasterxml.jackson.core.JsonProcessingException
|
||||
import com.fasterxml.jackson.core.type.TypeReference
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import com.fasterxml.jackson.module.kotlin.KotlinModule
|
||||
import com.intellij.build.BuildProgressListener
|
||||
import com.intellij.build.BuildViewManager
|
||||
import com.intellij.build.events.FinishBuildEvent
|
||||
import com.intellij.build.events.StartBuildEvent
|
||||
import com.intellij.compiler.server.CustomBuilderMessageHandler
|
||||
import com.intellij.java.compiler.charts.jps.ChartsBuilderService.COMPILATION_STATISTIC_BUILDER_ID
|
||||
import com.intellij.java.compiler.charts.jps.ChartsBuilderService.COMPILATION_STATUS_BUILDER_ID
|
||||
import com.intellij.java.compiler.charts.jps.CompileStatisticBuilderMessage.*
|
||||
import com.intellij.java.compiler.charts.ui.CompilationChartsBuildEvent
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.project.Project
|
||||
@@ -26,6 +24,8 @@ class CompilationChartsProjectActivity : ProjectActivity {
|
||||
companion object {
|
||||
private val LOG: Logger = Logger.getInstance(CompilationChartsProjectActivity::class.java)
|
||||
const val COMPILATION_CHARTS_KEY: String = "compilation.charts"
|
||||
const val COMPILATION_STATISTIC_BUILDER_ID: String = "jps.compile.statistic"
|
||||
const val COMPILATION_STATUS_BUILDER_ID: String = "jps.compile.status"
|
||||
}
|
||||
|
||||
override suspend fun execute(project: Project) {
|
||||
@@ -54,7 +54,7 @@ class CompilationChartsProjectActivity : ProjectActivity {
|
||||
}
|
||||
|
||||
private class CompilationChartsMessageHandler : CustomBuilderMessageHandler {
|
||||
private val json = ObjectMapper(JsonFactory())
|
||||
private val json = ObjectMapper(JsonFactory()).registerModule(KotlinModule.Builder().build())
|
||||
private val states: Queue<CompilationChartsBuildEvent> = ArrayDeque()
|
||||
private var currentState: CompilationChartsBuildEvent? = null
|
||||
private val defaultUUID: UUID = UUID.randomUUID()
|
||||
|
||||
+5
-8
@@ -2,7 +2,6 @@
|
||||
package com.intellij.java.compiler.charts
|
||||
|
||||
import com.intellij.java.compiler.charts.CompilationChartsViewModel.Modules.EventKey
|
||||
import com.intellij.java.compiler.charts.jps.CompileStatisticBuilderMessage.*
|
||||
import com.jetbrains.rd.framework.impl.RdList
|
||||
import com.jetbrains.rd.framework.impl.RdMap
|
||||
import com.jetbrains.rd.framework.impl.RdProperty
|
||||
@@ -37,15 +36,13 @@ class CompilationChartsViewModel(val lifetime: Lifetime) {
|
||||
}
|
||||
|
||||
private fun index(threadId: Long): Int {
|
||||
var index: Int? = threadIndexes[threadId]
|
||||
val index: Int? = threadIndexes[threadId]
|
||||
if (index != null) return index
|
||||
synchronized(threadIndexes) {
|
||||
index = threadIndexes[threadId]
|
||||
if (index != null) return index!!
|
||||
|
||||
index = threadIndexes.size
|
||||
threadIndexes[threadId] = index!!
|
||||
return index!!
|
||||
val updateAndGetIndex = { threadId: Long ->
|
||||
threadIndexes.size.also { newIndex -> threadIndexes[threadId] = newIndex }
|
||||
}
|
||||
return threadIndexes[threadId] ?: updateAndGetIndex(threadId)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.java.compiler.charts
|
||||
|
||||
interface TargetEvent {
|
||||
val name: String
|
||||
val type: String
|
||||
val isTest: Boolean
|
||||
val isFileBased: Boolean
|
||||
val time: Long
|
||||
val thread: Long
|
||||
}
|
||||
|
||||
data class StartTarget(
|
||||
override val name: String,
|
||||
override val type: String,
|
||||
override val isTest: Boolean,
|
||||
override val isFileBased: Boolean,
|
||||
override val thread: Long,
|
||||
override val time: Long,
|
||||
) : TargetEvent
|
||||
|
||||
data class FinishTarget(
|
||||
override val name: String,
|
||||
override val type: String,
|
||||
override val isTest: Boolean,
|
||||
override val isFileBased: Boolean,
|
||||
override val thread: Long,
|
||||
override val time: Long,
|
||||
) : TargetEvent
|
||||
|
||||
data class CpuMemoryStatistics(
|
||||
val heapUsed: Long,
|
||||
val heapMax: Long,
|
||||
val nonHeapUsed: Long,
|
||||
val nonHeapMax: Long,
|
||||
val cpu: Long,
|
||||
val time: Long,
|
||||
)
|
||||
Reference in New Issue
Block a user