fun serverContext()

in plugins-verifier-service/src/main/kotlin/org/jetbrains/plugins/verifier/service/server/configuration/ServerContextConfiguration.kt [53:97]


  fun serverContext(
    buildProperties: BuildProperties,
    ideRepository: IdeRepository,
    pluginRepository: MarketplaceRepository,
    featureServiceProtocol: FeatureServiceProtocol,
    @Value("\${verifier.service.jdk.8.dir}") defaultJdkPath: Path,
    @Value("\${verifier.service.home.directory}") applicationHomeDir: String,
    @Value("\${verifier.service.clear.corrupted.database}") clearDatabaseOnCorruption: Boolean
  ): ServerContext {
    LOG.info("Server is ready to start")

    val applicationHomeDirPath = Paths.get(applicationHomeDir)
    applicationHomeDirPath.createDir()
    val loadedPluginsDir = applicationHomeDirPath.resolve("loaded-plugins").createDir()
    val extractedPluginsDir = applicationHomeDirPath.resolve("extracted-plugins").createDir()
    val ideFilesDir = applicationHomeDirPath.resolve("ides").createDir()

    val pluginDownloadDirSpaceSetting = getPluginDownloadDirDiskSpaceSetting()

    val archiveManager = PluginArchiveManager(extractedPluginsDir)
    val pluginDetailsProvider = DefaultPluginDetailsProvider(archiveManager)
    val pluginFilesBank = PluginFilesBank.create(pluginRepository, loadedPluginsDir, pluginDownloadDirSpaceSetting)
    val pluginDetailsCache = SizeLimitedPluginDetailsCache(PLUGIN_DETAILS_CACHE_SIZE, pluginFilesBank, pluginDetailsProvider)

    val ideDownloadDirDiskSpaceSetting = getIdeDownloadDirDiskSpaceSetting()
    val serviceDAO = openServiceDAO(applicationHomeDirPath, clearDatabaseOnCorruption)

    val ideFilesBank = IdeFilesBank(ideFilesDir, ideRepository, ideDownloadDirDiskSpaceSetting)
    val ideDescriptorsCache = IdeDescriptorsCache(IDE_DESCRIPTORS_CACHE_SIZE, ideFilesBank, defaultJdkPath)

    val verificationResultsFilter = VerificationResultFilter()

    return ServerContext(
      buildProperties.version,
      ideRepository,
      ideFilesBank,
      pluginRepository,
      serviceDAO,
      ideDescriptorsCache,
      pluginFilesBank,
      pluginDetailsCache,
      archiveManager,
      verificationResultsFilter
    )
  }