User: rednesto Date: 12 Sep 24 23:25 Revision: 2001f3c0b3aa57b9f125529feb2d838259ecacd2 Summary: Make CreatorFinalizer#execute suspendable TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9666&personal=false Index: src/main/kotlin/creator/custom/CreatorTemplateProcessor.kt =================================================================== --- src/main/kotlin/creator/custom/CreatorTemplateProcessor.kt (revision e4ae7da4a3d6116a669df87e914828bd8ded86bf) +++ src/main/kotlin/creator/custom/CreatorTemplateProcessor.kt (revision 2001f3c0b3aa57b9f125529feb2d838259ecacd2) @@ -21,7 +21,6 @@ package com.demonwav.mcdev.creator.custom import com.demonwav.mcdev.asset.MCDevBundle -import com.demonwav.mcdev.asset.MCDevBundle.invoke import com.demonwav.mcdev.creator.custom.finalizers.CreatorFinalizer import com.demonwav.mcdev.creator.custom.providers.EmptyLoadedTemplate import com.demonwav.mcdev.creator.custom.providers.LoadedTemplate @@ -56,12 +55,10 @@ import com.intellij.util.application import java.nio.file.Path import java.util.function.Consumer -import kotlin.collections.mapNotNull -import kotlin.collections.orEmpty -import kotlin.collections.set import kotlin.io.path.createDirectories import kotlin.io.path.writeText import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch interface ExternalTemplatePropertyProvider { @@ -287,7 +284,7 @@ } } - val finalizeAction = { + val finalizeAction = suspend { WriteAction.runAndWait { LocalFileSystem.getInstance().refresh(false) // Apparently a module root is required for the reformat to work @@ -305,7 +302,7 @@ if (context.wizardContext.isCreatingNewProject) { TemplateService.instance.registerFinalizerAction(project, finalizeAction) } else { - application.executeOnPooledThread { finalizeAction() } + context.scope.launch { finalizeAction() } } } Index: src/main/kotlin/creator/custom/finalizers/CreatorFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/CreatorFinalizer.kt (revision e4ae7da4a3d6116a669df87e914828bd8ded86bf) +++ src/main/kotlin/creator/custom/finalizers/CreatorFinalizer.kt (revision 2001f3c0b3aa57b9f125529feb2d838259ecacd2) @@ -38,7 +38,7 @@ fun validate(reporter: TemplateValidationReporter, properties: Map) = Unit - fun execute( + suspend fun execute( context: WizardContext, project: Project, properties: Map, @@ -83,7 +83,7 @@ } } - fun executeAll( + suspend fun executeAll( context: WizardContext, project: Project, finalizers: List>, Index: src/main/kotlin/creator/custom/finalizers/GitAddAllFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/GitAddAllFinalizer.kt (revision e4ae7da4a3d6116a669df87e914828bd8ded86bf) +++ src/main/kotlin/creator/custom/finalizers/GitAddAllFinalizer.kt (revision 2001f3c0b3aa57b9f125529feb2d838259ecacd2) @@ -27,7 +27,7 @@ class GitAddAllFinalizer : CreatorFinalizer { - override fun execute( + override suspend fun execute( context: WizardContext, project: Project, properties: Map, Index: src/main/kotlin/creator/custom/finalizers/ImportGradleProjectFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/ImportGradleProjectFinalizer.kt (revision e4ae7da4a3d6116a669df87e914828bd8ded86bf) +++ src/main/kotlin/creator/custom/finalizers/ImportGradleProjectFinalizer.kt (revision 2001f3c0b3aa57b9f125529feb2d838259ecacd2) @@ -28,7 +28,7 @@ class ImportGradleProjectFinalizer : CreatorFinalizer { - override fun execute( + override suspend fun execute( context: WizardContext, project: Project, properties: Map, Index: src/main/kotlin/creator/custom/finalizers/ImportMavenProjectFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/ImportMavenProjectFinalizer.kt (revision e4ae7da4a3d6116a669df87e914828bd8ded86bf) +++ src/main/kotlin/creator/custom/finalizers/ImportMavenProjectFinalizer.kt (revision 2001f3c0b3aa57b9f125529feb2d838259ecacd2) @@ -25,13 +25,12 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VfsUtil import java.nio.file.Path -import kotlinx.coroutines.runBlocking import org.jetbrains.idea.maven.buildtool.MavenSyncSpec import org.jetbrains.idea.maven.project.MavenProjectsManager class ImportMavenProjectFinalizer : CreatorFinalizer { - override fun execute( + override suspend fun execute( context: WizardContext, project: Project, properties: Map, @@ -44,9 +43,7 @@ thisLogger().info("Invoking import on EDT pomFile = ${pomFile.path}") val projectsManager = MavenProjectsManager.getInstance(project) projectsManager.addManagedFiles(listOf(pomFile)) - runBlocking { - projectsManager.updateAllMavenProjects(MavenSyncSpec.incremental("ImportMavenProjectFinalizer", false)) + projectsManager.updateAllMavenProjects(MavenSyncSpec.incremental("ImportMavenProjectFinalizer", false)) - } thisLogger().info("Import finished") } Index: src/main/kotlin/creator/custom/finalizers/RunGradleTasksFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/RunGradleTasksFinalizer.kt (revision e4ae7da4a3d6116a669df87e914828bd8ded86bf) +++ src/main/kotlin/creator/custom/finalizers/RunGradleTasksFinalizer.kt (revision 2001f3c0b3aa57b9f125529feb2d838259ecacd2) @@ -39,7 +39,7 @@ } } - override fun execute( + override suspend fun execute( context: WizardContext, project: Project, properties: Map,