fixup! Split Gradle and JPS metrics
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/MetricsWriter.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/MetricsWriter.kt
index a3f980c..3e61cec 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/MetricsWriter.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/MetricsWriter.kt
@@ -28,7 +28,7 @@
 
             val buildMetricsData = GradleBuildMetricsData()
             for (metric in GradleBuildTime.values()) {
-                buildMetricsData.parentMetric[metric.name] = metric.getParent()?.toString()
+                buildMetricsData.parentMetric[metric.name] = metric.getParent()?.getName()
             }
             for (attr in BuildAttribute.values()) {
                 buildMetricsData.buildAttributeKind[attr.name] = attr.kind.name
diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/ReportDataTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/ReportDataTest.kt
index 0e6fda0..598d911 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/ReportDataTest.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/ReportDataTest.kt
@@ -48,7 +48,7 @@
         assertTrue(statisticData.tags.contains(StatTag.KOTLIN_1))
     }
 
-    private fun taskRecord(buildMetrics: BuildMetrics) = TaskRecord(
+    private fun taskRecord(buildMetrics: BuildMetrics<GradleBuildTime, GradleBuildPerformanceMetric>) = TaskRecord(
         path = kotlinTaskPath,
         classFqName = "org.jetbrains.kotlin.TestTask",
         startTimeMs = 10,
@@ -67,17 +67,17 @@
     fun testMetricFilter() {
         val buildOperationRecord = taskRecord(
             BuildMetrics(
-                buildPerformanceMetrics = BuildPerformanceMetrics().also {
-                    it.add(BuildPerformanceMetric.COMPILE_ITERATION)
-                    it.add(BuildPerformanceMetric.CLASSPATH_ENTRY_COUNT)
-                    it.add(BuildPerformanceMetric.BUNDLE_SIZE)
-                    it.add(BuildPerformanceMetric.CACHE_DIRECTORY_SIZE)
+                buildPerformanceMetrics = BuildPerformanceMetrics<GradleBuildPerformanceMetric>().also {
+                    it.add(GradleBuildPerformanceMetric.COMPILE_ITERATION)
+                    it.add(GradleBuildPerformanceMetric.CLASSPATH_ENTRY_COUNT)
+                    it.add(GradleBuildPerformanceMetric.BUNDLE_SIZE)
+                    it.add(GradleBuildPerformanceMetric.CACHE_DIRECTORY_SIZE)
                 },
-                buildTimes = BuildTimes().also {
-                    it.addTimeMs(BuildTime.STORE_BUILD_INFO, 20)
-                    it.addTimeMs(BuildTime.GRADLE_TASK_ACTION, 100)
-                    it.addTimeMs(BuildTime.RESTORE_OUTPUT_FROM_BACKUP, 10)
-                    it.addTimeMs(BuildTime.IC_ANALYZE_JAR_FILES, 10)
+                buildTimes = BuildTimes<GradleBuildTime>().also {
+                    it.addTimeMs(GradleBuildTime.STORE_BUILD_INFO, 20)
+                    it.addTimeMs(GradleBuildTime.GRADLE_TASK_ACTION, 100)
+                    it.addTimeMs(GradleBuildTime.RESTORE_OUTPUT_FROM_BACKUP, 10)
+                    it.addTimeMs(GradleBuildTime.IC_ANALYZE_JAR_FILES, 10)
                 }
             )
         )
@@ -92,22 +92,22 @@
             onlyKotlinTask = true,
             additionalTags = setOf(StatTag.KOTLIN_DEBUG),
             metricsToShow = setOf(
-                BuildPerformanceMetric.BUNDLE_SIZE.name,// from TaskExecutionResult
-                BuildTime.GRADLE_TASK_ACTION.name,// from buildOperationRecord
-                BuildPerformanceMetric.COMPILE_ITERATION.name, //from buildOperationRecord
-                BuildTime.IC_CALCULATE_INITIAL_DIRTY_SET.name, //not set
-                BuildPerformanceMetric.START_WORKER_EXECUTION.name, //not set
-                BuildTime.RESTORE_OUTPUT_FROM_BACKUP.name, //from TaskExecutionResult
+                GradleBuildPerformanceMetric.BUNDLE_SIZE.name,// from TaskExecutionResult
+                GradleBuildTime.GRADLE_TASK_ACTION.name,// from buildOperationRecord
+                GradleBuildPerformanceMetric.COMPILE_ITERATION.name, //from buildOperationRecord
+                GradleBuildTime.IC_CALCULATE_INITIAL_DIRTY_SET.name, //not set
+                GradleBuildPerformanceMetric.START_WORKER_EXECUTION.name, //not set
+                GradleBuildTime.RESTORE_OUTPUT_FROM_BACKUP.name, //from TaskExecutionResult
             )
         )
 
         assertNotNull(statisticData)
         assertEquals(2, statisticData.performanceMetrics.size)
-        assertTrue(statisticData.performanceMetrics.containsKey(BuildPerformanceMetric.BUNDLE_SIZE))
-        assertTrue(statisticData.performanceMetrics.containsKey(BuildPerformanceMetric.COMPILE_ITERATION))
+        assertTrue(statisticData.performanceMetrics.containsKey(GradleBuildPerformanceMetric.BUNDLE_SIZE))
+        assertTrue(statisticData.performanceMetrics.containsKey(GradleBuildPerformanceMetric.COMPILE_ITERATION))
         assertEquals(2, statisticData.buildTimesMetrics.size)
-        assertTrue(statisticData.buildTimesMetrics.containsKey(BuildTime.GRADLE_TASK_ACTION))
-        assertTrue(statisticData.buildTimesMetrics.containsKey(BuildTime.RESTORE_OUTPUT_FROM_BACKUP))
+        assertTrue(statisticData.buildTimesMetrics.containsKey(GradleBuildTime.GRADLE_TASK_ACTION))
+        assertTrue(statisticData.buildTimesMetrics.containsKey(GradleBuildTime.RESTORE_OUTPUT_FROM_BACKUP))
     }
 
     @Ignore //temporary ignore flaky test
@@ -120,12 +120,12 @@
         val finishGradleTask = System.nanoTime()
 
         val buildOperationRecord = taskRecord(
-            BuildMetrics(
-                buildPerformanceMetrics = BuildPerformanceMetrics().also {
-                    it.add(BuildPerformanceMetric.FINISH_KOTLIN_DAEMON_EXECUTION, System.currentTimeMillis())
-                    it.add(BuildPerformanceMetric.START_WORKER_EXECUTION, TimeUnit.MILLISECONDS.toNanos(startWorker))
-                    it.add(BuildPerformanceMetric.START_TASK_ACTION_EXECUTION, startTaskAction)
-                    it.add(BuildPerformanceMetric.CALL_WORKER, TimeUnit.MILLISECONDS.toNanos(callWorker))
+            BuildMetrics<GradleBuildTime, GradleBuildPerformanceMetric>(
+                buildPerformanceMetrics = BuildPerformanceMetrics<GradleBuildPerformanceMetric>().also {
+                    it.add(GradleBuildPerformanceMetric.FINISH_KOTLIN_DAEMON_EXECUTION, System.currentTimeMillis())
+                    it.add(GradleBuildPerformanceMetric.START_WORKER_EXECUTION, TimeUnit.MILLISECONDS.toNanos(startWorker))
+                    it.add(GradleBuildPerformanceMetric.START_TASK_ACTION_EXECUTION, startTaskAction)
+                    it.add(GradleBuildPerformanceMetric.CALL_WORKER, TimeUnit.MILLISECONDS.toNanos(callWorker))
                 }
             )
         )
@@ -141,9 +141,9 @@
             additionalTags = setOf(StatTag.KOTLIN_DEBUG),
         )
         assertNotNull(statisticData)
-        assertEquals(startTaskAction - startGradleTask, statisticData.buildTimesMetrics[BuildTime.GRADLE_TASK_PREPARATION])
-        assertEquals(1, statisticData.buildTimesMetrics[BuildTime.TASK_FINISH_LISTENER_NOTIFICATION]?.sign)
-        assertEquals(startWorker - callWorker, statisticData.buildTimesMetrics[BuildTime.RUN_WORKER_DELAY])
+        assertEquals(startTaskAction - startGradleTask, statisticData.buildTimesMetrics[GradleBuildTime.GRADLE_TASK_PREPARATION])
+        assertEquals(1, statisticData.buildTimesMetrics[GradleBuildTime.TASK_FINISH_LISTENER_NOTIFICATION]?.sign)
+        assertEquals(startWorker - callWorker, statisticData.buildTimesMetrics[GradleBuildTime.RUN_WORKER_DELAY])
     }
 
     private fun taskFinishEvent(startTime: Long = 1L, endTime: Long =10L) = object : TaskFinishEvent {