Skip to content

Commit 3ca852d

Browse files
Required libraries can be installed silently #492
After-review cleanup
1 parent 94907d3 commit 3ca852d

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/UtProjectModelModifier.kt

+21-18
Original file line numberDiff line numberDiff line change
@@ -28,34 +28,33 @@ import org.jetbrains.jps.model.library.JpsMavenRepositoryLibraryDescriptor
2828

2929
class UtProjectModelModifier(val project: Project) : IdeaProjectModelModifier(project) {
3030
override fun addExternalLibraryDependency(
31-
modules: Collection<Module?>,
31+
modules: Collection<Module>,
3232
descriptor: ExternalLibraryDescriptor,
3333
scope: DependencyScope
3434
): Promise<Void> {
3535
val defaultRoots = descriptor.libraryClassesRoots
36-
val classesRoots: List<String?>
37-
val firstModule = ContainerUtil.getFirstItem(modules)
38-
classesRoots = if (defaultRoots.isNotEmpty()) {
39-
LocateLibraryDialog(firstModule!!, defaultRoots, descriptor.presentableName).showAndGetResult()
36+
val firstModule = ContainerUtil.getFirstItem(modules) ?: return rejectedPromise()
37+
val classesRoots = if (defaultRoots.isNotEmpty()) {
38+
LocateLibraryDialog(
39+
firstModule,
40+
defaultRoots,
41+
descriptor.presentableName
42+
).showAndGetResult()
4043
} else {
41-
val version = descriptor.preferredVersion
42-
val mavenCoordinates = descriptor.libraryGroupId + ":" +
43-
descriptor.libraryArtifactId + ":" +
44-
(version ?: RepositoryLibraryDescription.ReleaseVersionId)
45-
46-
val libraryProperties = RepositoryLibraryProperties(JpsMavenRepositoryLibraryDescriptor(mavenCoordinates))
44+
val libraryProperties = RepositoryLibraryProperties(JpsMavenRepositoryLibraryDescriptor(descriptor.mavenCoordinates()))
4745
val roots = JarRepositoryManager.loadDependenciesModal(
4846
project,
4947
libraryProperties,
50-
false,
51-
false,
52-
null,
53-
null
48+
/* loadSources = */ false,
49+
/* loadJavadoc = */ false,
50+
/* copyTo = */ null,
51+
/* repositories = */ null
5452
)
5553
if (roots.isEmpty()) {
5654
@Suppress("SpellCheckingInspection")
5755
Messages.showErrorDialog(
58-
project, JavaUiBundle.message("dialog.mesage.0.was.not.loaded", descriptor.presentableName),
56+
project,
57+
JavaUiBundle.message("dialog.mesage.0.was.not.loaded", descriptor.presentableName),
5958
JavaUiBundle.message("dialog.title.failed.to.download.library")
6059
)
6160
return rejectedPromise()
@@ -73,7 +72,7 @@ class UtProjectModelModifier(val project: Project) : IdeaProjectModelModifier(pr
7372
val libraryName = if (classesRoots.size > 1) descriptor.presentableName else null
7473
val urls = OrderEntryFix.refreshAndConvertToUrls(classesRoots)
7574
if (modules.size == 1) {
76-
ModuleRootModificationUtil.addModuleLibrary(firstModule!!, libraryName, urls, emptyList(), scope)
75+
ModuleRootModificationUtil.addModuleLibrary(firstModule, libraryName, urls, emptyList(), scope)
7776
} else {
7877
WriteAction.run<RuntimeException> {
7978
val library =
@@ -86,11 +85,15 @@ class UtProjectModelModifier(val project: Project) : IdeaProjectModelModifier(pr
8685
}
8786
model.commit()
8887
for (module in modules) {
89-
ModuleRootModificationUtil.addDependency(module!!, library, scope, false)
88+
ModuleRootModificationUtil.addDependency(module, library, scope, false)
9089
}
9190
}
9291
}
9392
}
9493
return resolvedPromise()
9594
}
95+
96+
private fun ExternalLibraryDescriptor.mavenCoordinates() : String {
97+
return "$libraryGroupId:$libraryArtifactId:${preferredVersion ?: RepositoryLibraryDescription.ReleaseVersionId}"
98+
}
9699
}

0 commit comments

Comments
 (0)