in intellij-plugin-verifier/verifier-repository/src/main/java/com/jetbrains/pluginverifier/plugin/DefaultPluginDetailsProvider.kt [68:96]
override fun createPlugin(pluginInfo: PluginInfo, pluginFileLock: FileLock): PluginCreationResult<IdePlugin> {
return if (pluginInfo is DependencyPluginInfo) {
val pluginArtifactPath = pluginFileLock.file
val result = extractedPluginLocationCache[pluginArtifactPath]
if (result != null) {
eventLog.logCached(pluginArtifactPath)
return result
}
synchronized(createPluginLocks.get(pluginArtifactPath.absolutePathString())) {
val result = extractedPluginLocationCache[pluginArtifactPath]
if (result != null) {
eventLog.logCached(pluginArtifactPath)
return result
}
idePluginManager
.createPlugin(
pluginArtifactPath,
validateDescriptor = false,
problemResolver = dependencyProblemResolver,
).also {
eventLog.logExtracted(pluginArtifactPath)
it.registerCloseableResources()
.cacheExtractedDirectory(pluginArtifactPath)
}
}
} else {
super.createPlugin(pluginInfo, pluginFileLock)
}
}