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