From 6efb9c7c6f9fe70e80f3fb2db52716d298536a7f Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Sun, 22 Mar 2020 18:41:46 +0300 Subject: [PATCH] cleanup: move the check that a custom config migration is needed to another class To avoid loading unnecessary resources during startup, including CustomConfigMigrationOption.kt and paths.kt. IDEA-CR-60006, IDEA-233305 GitOrigin-RevId: cab2644f093938df2499f38839da29c1b1050ebf --- .../src/com/intellij/idea/StartupUtil.java | 7 +++++-- .../openapi/application/ConfigImportHelper.java | 9 +++++++++ .../application/CustomConfigMigrationOption.kt | 11 +++-------- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/idea/StartupUtil.java b/platform/platform-impl/src/com/intellij/idea/StartupUtil.java index 3f2a9f6107bd..9c2d0506ce69 100644 --- a/platform/platform-impl/src/com/intellij/idea/StartupUtil.java +++ b/platform/platform-impl/src/com/intellij/idea/StartupUtil.java @@ -20,7 +20,10 @@ import com.intellij.ide.instrument.WriteIntentLockInstrumenter; import com.intellij.ide.plugins.PluginManagerCore; import com.intellij.ide.ui.laf.IntelliJLaf; import com.intellij.jna.JnaLoader; -import com.intellij.openapi.application.*; +import com.intellij.openapi.application.ApplicationInfo; +import com.intellij.openapi.application.ApplicationNamesInfo; +import com.intellij.openapi.application.ConfigImportHelper; +import com.intellij.openapi.application.PathManager; import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.*; @@ -187,7 +190,7 @@ public final class StartupUtil { // this check must be performed before system directories are locked boolean configImportNeeded = !Main.isHeadless() && (!Files.exists(configPath) || - CustomConfigMigrationOption.needsCustomConfigMigration()); + ConfigImportHelper.needsCustomConfigMigration()); activity = activity.endAndStart("system dirs checking"); // note: uses config directory diff --git a/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java b/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java index 1b9757b9ff2f..6ff7e00da3bb 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java @@ -168,6 +168,15 @@ public final class ConfigImportHelper { } } + public static boolean needsCustomConfigMigration() { + return Files.exists(getCustomConfigMarkerFilePath()); + } + + @NotNull + static Path getCustomConfigMarkerFilePath() { + return Paths.get(PathManager.getConfigPath(), "migrate.config"); + } + @NotNull private static File backupCurrentConfigToTemp() throws IOException { File tempBackupDir = FileUtil.createTempDirectory("backup", "backup"); diff --git a/platform/platform-impl/src/com/intellij/openapi/application/CustomConfigMigrationOption.kt b/platform/platform-impl/src/com/intellij/openapi/application/CustomConfigMigrationOption.kt index 8d2a0498ee28..8004043b7167 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/CustomConfigMigrationOption.kt +++ b/platform/platform-impl/src/com/intellij/openapi/application/CustomConfigMigrationOption.kt @@ -1,6 +1,7 @@ // Copyright 2000-2020 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.openapi.application +import com.intellij.openapi.application.ConfigImportHelper.getCustomConfigMarkerFilePath import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.util.io.FileUtil import com.intellij.util.io.delete @@ -22,7 +23,7 @@ sealed class CustomConfigMigrationOption { companion object { @JvmStatic fun readCustomConfigMigrationOptionAndRemoveMarkerFile(): CustomConfigMigrationOption? { - val markerFile = getMarkerFilePath() + val markerFile = getCustomConfigMarkerFilePath() if (!markerFile.exists()) return null try { @@ -44,9 +45,6 @@ sealed class CustomConfigMigrationOption { } } - @JvmStatic - fun needsCustomConfigMigration(): Boolean = Files.exists(getMarkerFilePath()) - private fun removeMarkerFile(markerFile: Path) { try { markerFile.delete() @@ -60,14 +58,11 @@ sealed class CustomConfigMigrationOption { * `null` means starts with clean configs */ fun writeCustomConfigMigrationFile(migrateFrom: Path?) { - val markerFile = getMarkerFilePath() + val markerFile = getCustomConfigMarkerFilePath() if (markerFile.exists()) { log.error("Marker file $markerFile shouldn't exist") } markerFile.write(migrateFrom?.systemIndependentPath ?: "") } - - private fun getMarkerFilePath() = Paths.get(PathManager.getConfigPath(), "migrate.config") - } }