in intellij-plugin-structure/structure-ide/src/main/java/com/jetbrains/plugin/structure/ide/layout/ModuleFactory.kt [20:48]
override fun read(
layoutComponent: LayoutComponent,
idePath: Path,
ideVersion: IdeVersion,
resourceResolver: ResourceResolver,
moduleManager: BundledModulesManager
): PluginWithArtifactPathResult? {
val moduleName = layoutComponent.name
val moduleDescriptor = moduleManager.findModuleByName(moduleName)
if (moduleDescriptor == null) {
LOG.debug("No module descriptor found for {}", moduleName)
return null
}
val loadingContext = getLoadingContext(moduleName, moduleDescriptor, idePath) ?: return null
val moduleLoadingResult = moduleLoader.load(loadingContext.artifactPath, loadingContext.descriptorName, resourceResolver, ideVersion, layoutComponent.name)
return when (moduleLoadingResult) {
is Success -> {
IdeModule
.clone(moduleLoadingResult.plugin, moduleName, classpath = getClasspath(moduleName, idePath))
.apply {
moduleDependencies += moduleDescriptor.dependencies
resources += moduleDescriptor.resources
}
.asResult(moduleLoadingResult)
}
is Failure -> moduleLoadingResult
}
}