mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
GTW-1136 dump format changed to json
GitOrigin-RevId: 5181fbc2ece0ca7ae54fc928ddfb01d2459ad3b9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b975923710
commit
02cfe4fd74
@@ -1,73 +0,0 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.ide
|
||||
|
||||
import com.intellij.idea.AppExitCodes
|
||||
import com.intellij.openapi.application.ModernApplicationStarter
|
||||
import java.io.File
|
||||
import java.lang.management.ManagementFactory
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
internal class DumpLaunchParametersStarter : ModernApplicationStarter() {
|
||||
override val commandName: String
|
||||
get() = "dump-launch-parameters"
|
||||
|
||||
override fun premain(args: List<String>) {
|
||||
val argsMap = args.fold(Pair(emptyMap<String, List<String>>(), "")) { (map, lastKey), elem ->
|
||||
if (elem.startsWith("-")) Pair(map + (elem to emptyList()), elem)
|
||||
else Pair(map + (lastKey to map.getOrDefault(lastKey, emptyList()) + elem), lastKey)
|
||||
}.first
|
||||
|
||||
if (!argsMap.containsKey("-f") || argsMap["-f"]!!.isEmpty()) {
|
||||
exitProcess(AppExitCodes.STARTUP_EXCEPTION)
|
||||
}
|
||||
|
||||
val outputDir = argsMap["-f"]!![0]
|
||||
|
||||
val launchParametersDump = File(outputDir)
|
||||
writeVmOptionsInFile(launchParametersDump)
|
||||
writeCommandLineArgumentsInFile(launchParametersDump, args)
|
||||
|
||||
if (argsMap.containsKey("-p") && !argsMap["-p"]!!.isEmpty()) {
|
||||
launchParametersDump.appendText("[javaSystemProperties]\n")
|
||||
argsMap["-p"]?.forEach { writeJavaSystemPropertyInFile(launchParametersDump, it) }
|
||||
}
|
||||
|
||||
if (argsMap.containsKey("-e") && !argsMap["-e"]!!.isEmpty()) {
|
||||
launchParametersDump.appendText("[environmentVariables]\n")
|
||||
argsMap["-e"]?.forEach { writeEnvironmentVariableInFile(launchParametersDump, it) }
|
||||
}
|
||||
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
override suspend fun start(args: List<String>) {
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
private fun writeVmOptionsInFile(dumpFile: File) {
|
||||
val vmOptions = ManagementFactory.getRuntimeMXBean().inputArguments
|
||||
|
||||
dumpFile.appendText("[vmOptions]\n")
|
||||
vmOptions.forEachIndexed { i, vmOption ->
|
||||
dumpFile.appendText("vmOption.$i=$vmOption\n")
|
||||
}
|
||||
}
|
||||
|
||||
private fun writeCommandLineArgumentsInFile(dumpFile: File, args: List<String>) {
|
||||
dumpFile.appendText("[arguments]\n")
|
||||
args.forEachIndexed { i, argument ->
|
||||
dumpFile.appendText("argument.$i=$argument\n")
|
||||
}
|
||||
}
|
||||
|
||||
private fun writeJavaSystemPropertyInFile(dumpFile: File, property: String) {
|
||||
val javaProperty = System.getProperty(property)
|
||||
|
||||
dumpFile.appendText("$property=$javaProperty\n")
|
||||
}
|
||||
|
||||
private fun writeEnvironmentVariableInFile(dumpFile: File, envVariable: String) {
|
||||
val environmentVariable = System.getenv(envVariable)
|
||||
dumpFile.appendText("$envVariable=$environmentVariable\n")
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@
|
||||
<appStarter id="warmup" implementation="com.intellij.warmup.ProjectIndexesWarmup"/>
|
||||
<appStarter id="buildEventsScheme" implementation="com.intellij.internal.statistic.eventLog.events.scheme.EventsSchemeBuilderAppStarter"/>
|
||||
<appStarter id="dumpActions" implementation="com.intellij.internal.statistic.utils.DumpActionsAppStarter"/>
|
||||
<appStarter id="dumpLaunchParameters" implementation="com.intellij.ide.DumpLaunchParametersStarter"/>
|
||||
<appStarter id="dumpLaunchParameters" implementation="com.intellij.internal.statistic.utils.DumpLaunchParametersStarter"/>
|
||||
<protocolHandler implementation="com.intellij.openapi.application.JBProtocolHandler"/>
|
||||
|
||||
<groupConfigurable id="appearance" weight="70"
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.internal.statistic.utils
|
||||
|
||||
import com.google.gson.Gson
|
||||
import com.intellij.idea.AppExitCodes
|
||||
import com.intellij.openapi.application.ModernApplicationStarter
|
||||
import java.io.File
|
||||
import java.lang.management.ManagementFactory
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
data class ParameterValue(
|
||||
val parameterName: String,
|
||||
val parameterValue: String
|
||||
)
|
||||
|
||||
data class LaunchParameters(
|
||||
val groupOfParametersName: String,
|
||||
val parameters: MutableList<ParameterValue>
|
||||
)
|
||||
|
||||
internal class DumpLaunchParametersStarter : ModernApplicationStarter() {
|
||||
override val commandName: String
|
||||
get() = "dump-launch-parameters"
|
||||
|
||||
override fun premain(args: List<String>) {
|
||||
val argsMap = args.fold(Pair(emptyMap<String, List<String>>(), "")) { (map, lastKey), elem ->
|
||||
if (elem.startsWith("-")) Pair(map + (elem to emptyList()), elem)
|
||||
else Pair(map + (lastKey to map.getOrDefault(lastKey, emptyList()) + elem), lastKey)
|
||||
}.first
|
||||
|
||||
if (!argsMap.containsKey("-f") || argsMap["-f"]!!.isEmpty()) {
|
||||
exitProcess(AppExitCodes.STARTUP_EXCEPTION)
|
||||
}
|
||||
|
||||
val outputFile = argsMap["-f"]!![0]
|
||||
|
||||
val launchParametersDump = File(outputFile)
|
||||
val launchParameters = mutableListOf<LaunchParameters>()
|
||||
|
||||
launchParameters.add(getVmOptions())
|
||||
launchParameters.add(getCommandLineArguments(args))
|
||||
|
||||
if (argsMap.containsKey("-p") && !argsMap["-p"]!!.isEmpty()) {
|
||||
val javaSystemProperties: MutableList<ParameterValue> = mutableListOf()
|
||||
argsMap["-p"]?.forEach { javaSystemProperties.add(getJavaSystemProperty(it)) }
|
||||
launchParameters.add(LaunchParameters("javaSystemProperties", javaSystemProperties))
|
||||
}
|
||||
|
||||
if (argsMap.containsKey("-e") && !argsMap["-e"]!!.isEmpty()) {
|
||||
val environmentVariables: MutableList<ParameterValue> = mutableListOf()
|
||||
argsMap["-e"]?.forEach { environmentVariables.add(getEnvironmentVariable(it)) }
|
||||
launchParameters.add(LaunchParameters("environmentVariables", environmentVariables))
|
||||
}
|
||||
|
||||
launchParametersDump.appendText(Gson().toJson(launchParameters))
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
override suspend fun start(args: List<String>) {
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
private fun getVmOptions(): LaunchParameters {
|
||||
val vmOptionsFromJava = ManagementFactory.getRuntimeMXBean().inputArguments
|
||||
val vmOptionsParameters: MutableList<ParameterValue> = mutableListOf()
|
||||
vmOptionsFromJava.forEachIndexed { i, vmOption ->
|
||||
vmOptionsParameters.add(ParameterValue("vmOption.$i", vmOption))
|
||||
}
|
||||
return LaunchParameters("vmOptions", vmOptionsParameters)
|
||||
}
|
||||
|
||||
private fun getCommandLineArguments(args: List<String>): LaunchParameters {
|
||||
val arguments: MutableList<ParameterValue> = mutableListOf()
|
||||
args.forEachIndexed { i, argument ->
|
||||
arguments.add(ParameterValue("argument.$i", argument))
|
||||
}
|
||||
return LaunchParameters("arguments", arguments)
|
||||
}
|
||||
|
||||
private fun getJavaSystemProperty(property: String): ParameterValue {
|
||||
return ParameterValue(property, System.getProperty(property))
|
||||
}
|
||||
|
||||
private fun getEnvironmentVariable(envVariable: String): ParameterValue {
|
||||
return ParameterValue(envVariable, System.getenv(envVariable))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user