[qodana] QD-10013 Track JPS jar dependencies loading

GitOrigin-RevId: e453e68259e7a5618f76905be741a3acdc7c75db
This commit is contained in:
Mikhail Shagvaliev
2024-10-09 08:17:15 +02:00
committed by intellij-monorepo-bot
parent 6c61c29235
commit b567859bee

View File

@@ -18,6 +18,8 @@ import com.intellij.openapi.roots.impl.libraries.LibraryTableImplUtil
import com.intellij.openapi.roots.libraries.Library
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar
import com.intellij.openapi.startup.ProjectActivity
import com.intellij.platform.backend.observation.ActivityKey
import com.intellij.platform.backend.observation.trackActivity
import com.intellij.platform.backend.workspace.WorkspaceModelTopics
import it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
@@ -26,6 +28,11 @@ import org.jetbrains.idea.maven.utils.library.RepositoryLibraryProperties
import org.jetbrains.idea.maven.utils.library.RepositoryUtils
private class RepositoryLibrarySynchronizer : ProjectActivity {
private object LoadDependenciesActivityKey : ActivityKey {
override val presentableName: String
get() = "download-jars"
}
init {
if (ApplicationManager.getApplication().isUnitTestMode) {
throw ExtensionNotApplicableException.create()
@@ -34,9 +41,10 @@ private class RepositoryLibrarySynchronizer : ProjectActivity {
override suspend fun execute(project: Project) {
if (ApplicationManager.getApplication().isHeadlessEnvironment && !CoreProgressManager.shouldKeepTasksAsynchronousInHeadlessMode()) {
val libs = collectLibrariesToSync(project)
if (!libs.isEmpty()) {
loadDependenciesSyncImpl(project, libs)
project.trackActivity(LoadDependenciesActivityKey) {
val libs = collectLibrariesToSync(project)
if (!libs.isEmpty()) {
loadDependenciesSyncImpl(project, libs)}
}
return
}