in intellij-plugin-verifier/verifier-cli/src/main/java/com/jetbrains/pluginverifier/tasks/checkPluginApi/CheckPluginApiParamsBuilder.kt [48:107]
override fun build(opts: CmdOpts, freeArgs: List<String>): CheckPluginApiParams {
val apiOpts = CheckPluginApiOpts()
val args = Args.parse(apiOpts, freeArgs.toTypedArray(), false)
if (args.size != 3) {
Args.usage(apiOpts)
throw IllegalArgumentException(USAGE)
}
val basePluginFile = Paths.get(args[0])
require(basePluginFile.exists()) { "Base plugin file $basePluginFile doesn't exist" }
val newPluginFile = Paths.get(args[1])
require(newPluginFile.exists()) { "New plugin file $newPluginFile doesn't exist" }
val pluginsToCheckFile = Paths.get(args[2])
require(pluginsToCheckFile.exists()) { "File with list of plugins' IDs to check doesn't exist: $pluginsToCheckFile" }
val pluginsSet = parsePluginsToCheck(pluginsToCheckFile)
val pluginPackageFilter = parsePackageFilter(apiOpts.pluginPackages)
val jdkPath = requireNotNull(opts.runtimeDir?.let { Paths.get(it) }) { "JDK runtime is not specified" }
val problemsFilters = OptionsParser.getProblemsFilters(opts)
val basePluginDetails = providePluginDetails(basePluginFile)
basePluginDetails.closeOnException {
val newPluginDetails = providePluginDetails(newPluginFile)
newPluginDetails.closeOnException {
val jdkDescriptor = JdkDescriptorCreator.createJdkDescriptor(jdkPath)
jdkDescriptor.closeOnException {
val baseClassResolverProvider = PluginApiClassResolverProvider(jdkDescriptor, basePluginDetails, pluginPackageFilter)
val baseVerificationDescriptors = pluginsSet.pluginsToCheck.map {
PluginVerificationDescriptor.Plugin(it, basePluginDetails.pluginInfo, baseClassResolverProvider, jdkDescriptor.jdkVersion)
}
val newClassResolverProvider = PluginApiClassResolverProvider(jdkDescriptor, newPluginDetails, pluginPackageFilter)
val newVerificationDescriptors = pluginsSet.pluginsToCheck.map {
PluginVerificationDescriptor.Plugin(it, newPluginDetails.pluginInfo, newClassResolverProvider, jdkDescriptor.jdkVersion)
}
val baseVerificationTarget = PluginVerificationTarget.Plugin(basePluginDetails.pluginInfo, jdkDescriptor.jdkVersion)
val newVerificationTarget = PluginVerificationTarget.Plugin(newPluginDetails.pluginInfo, jdkDescriptor.jdkVersion)
return CheckPluginApiParams(
basePluginDetails,
newPluginDetails,
jdkDescriptor,
problemsFilters,
baseVerificationDescriptors,
newVerificationDescriptors,
baseVerificationTarget,
newVerificationTarget,
opts.excludeExternalBuildClassesSelector
)
}
}
}
}