override fun createPlugin()

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)
    }
  }