Skip to content

Commit 9824aea

Browse files
committed
refactor(bulk-model-sync): consistently use executeCommandInEDT
1 parent c997cc0 commit 9824aea

File tree

1 file changed

+22
-25
lines changed

1 file changed

+22
-25
lines changed

bulk-model-sync-mps/src/main/kotlin/org/modelix/mps/model/sync/bulk/MPSBulkSynchronizer.kt

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -95,45 +95,42 @@ object MPSBulkSynchronizer {
9595

9696
println("Found ${jsonFiles.size} modules to be imported")
9797
val access = repository.modelAccess
98-
access.runWriteInEDT {
98+
access.executeCommandInEDT {
9999
val allModules = repository.modules
100100
val includedModules: Iterable<SModule> = allModules.filter {
101101
isModuleIncluded(it.moduleName!!, includedModuleNames, includedModulePrefixes)
102102
}
103103
val numIncludedModules = includedModules.count()
104-
access.executeCommand {
105-
val repoAsNode = MPSRepositoryAsNode(repository)
104+
val repoAsNode = MPSRepositoryAsNode(repository)
105+
println("Importing modules...")
106+
try {
106107
println("Importing modules...")
107-
try {
108-
println("Importing modules...")
109-
// `modulesToImport` lazily produces modules to import
110-
// so that loaded model data can be garbage collected.
111-
val modulesToImport = includedModules.asSequence().flatMapIndexed { index, module ->
112-
println("Importing module ${index + 1} of $numIncludedModules: '${module.moduleName}'")
113-
val fileName = inputPath + File.separator + module.moduleName + ".json"
114-
val moduleFile = File(fileName)
115-
if (moduleFile.exists()) {
116-
val expectedData: ModelData = moduleFile.inputStream().use(Json::decodeFromStream)
117-
sequenceOf(ExistingAndExpectedNode(MPSModuleAsNode(module), expectedData))
118-
} else {
119-
println("Skip importing ${module.moduleName}} because $fileName does not exist.")
120-
sequenceOf()
121-
}
108+
// `modulesToImport` lazily produces modules to import
109+
// so that loaded model data can be garbage collected.
110+
val modulesToImport = includedModules.asSequence().flatMapIndexed { index, module ->
111+
println("Importing module ${index + 1} of $numIncludedModules: '${module.moduleName}'")
112+
val fileName = inputPath + File.separator + module.moduleName + ".json"
113+
val moduleFile = File(fileName)
114+
if (moduleFile.exists()) {
115+
val expectedData: ModelData = moduleFile.inputStream().use(Json::decodeFromStream)
116+
sequenceOf(ExistingAndExpectedNode(MPSModuleAsNode(module), expectedData))
117+
} else {
118+
println("Skip importing ${module.moduleName}} because $fileName does not exist.")
119+
sequenceOf()
122120
}
123-
ModelImporter(repoAsNode, continueOnError).importIntoNodes(modulesToImport)
124-
println("Import finished.")
125-
} catch (ex: Exception) {
126-
// Exceptions are only visible in the MPS log file by default
127-
ex.printStackTrace()
128121
}
129-
122+
ModelImporter(repoAsNode, continueOnError).importIntoNodes(modulesToImport)
130123
println("Import finished.")
124+
} catch (ex: Exception) {
125+
// Exceptions are only visible in the MPS log file by default
126+
ex.printStackTrace()
131127
}
128+
println("Import finished.")
132129
}
133130

134131
ApplicationManager.getApplication().invokeAndWait {
135132
println("Persisting changes...")
136-
repository.modelAccess.runWriteAction {
133+
access.executeCommandInEDT {
137134
enableWorkaroundForFilePerRootPersistence(repository)
138135
repository.saveAll()
139136
}

0 commit comments

Comments
 (0)