PrepareSandboxTask

@DisableCachingByDefault(because = "Not worth caching")
abstract class PrepareSandboxTask : Sync, IntelliJPlatformVersionAware, SandboxStructure, SplitModeAware, PluginInstallationTargetAware

Prepares a sandbox environment with the plugin and its dependencies installed. The sandbox directory is required by tasks that run IDE and tests in isolation from other instances, like when multiple IntelliJ Platforms are used for testing with RunIdeTask, TestIdeTask, TestIdeUiTask, or TestIdePerformanceTask tasks. The sandbox directory is created within the container configurable with IntelliJPlatformExtension.sandboxContainer.

Tasks based on the PrepareSandboxTask are sandbox producers and can be associated with sandbox consumers. To define the consumer task, make it extend from SandboxAware and apply the consumer.applySandboxFrom(producer) function.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion : Registrable

Properties

Link copied to clipboard
open var actions: List<Action<in Task?>?>?
Link copied to clipboard
open val ant: AntBuilder?
Link copied to clipboard
@get:Internal
open val asDynamicObject: DynamicObject
Link copied to clipboard
@get:Internal
open val conventionMapping: ConventionMapping?
Link copied to clipboard
@get:Internal
abstract val defaultDestinationDirectory: DirectoryProperty

Specifies the default sandbox destination directory where plugin files will be copied.

Link copied to clipboard
open val dependsOn: Set<Any?>?
Link copied to clipboard
open var description: @Nullable String?
Link copied to clipboard
open override val destinationDir: File?
Link copied to clipboard
open val destroyables: TaskDestroyables?
Link copied to clipboard
open var didWork: Boolean
Link copied to clipboard
@get:Internal
open val dirPermissions: Property<ConfigurableFilePermissions>
Link copied to clipboard
@get:Input
@get:Optional
abstract val disabledPlugins: SetProperty<String>

An internal field to hold a list of plugins to be disabled within the current sandbox.

Link copied to clipboard
@get:Internal
open var duplicatesStrategy: DuplicatesStrategy
Link copied to clipboard

Resolves the effective plugin installation target.

Link copied to clipboard
open var enabled: Boolean
Link copied to clipboard
@get:Internal
open val excludes: Set<String>
Link copied to clipboard
open val extensions: ExtensionContainer?
Link copied to clipboard
@get:Internal
open val filePermissions: Property<ConfigurableFilePermissions>
Link copied to clipboard
@get:Internal
open var filteringCharset: String
Link copied to clipboard
open val finalizedBy: TaskDependency?
Link copied to clipboard
open var group: @Nullable String?
Link copied to clipboard
open val identityPath: Path?
Link copied to clipboard
Link copied to clipboard
@get:Internal
open var includeEmptyDirs: Boolean
Link copied to clipboard
@get:Internal
open val includes: Set<String>
Link copied to clipboard
open val inputs: TaskInputsInternal?
Link copied to clipboard
@get:InputFiles
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val intelliJPlatformConfiguration: ConfigurableFileCollection

Holds the Configurations.INTELLIJ_PLATFORM_DEPENDENCY configuration with the IntelliJ Platform dependency added. It should not be directly accessed.

Link copied to clipboard
@get:InputFiles
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val intelliJPlatformPluginConfiguration: ConfigurableFileCollection

Holds the Configurations.INTELLIJ_PLATFORM_PLUGIN_DEPENDENCY configuration with the optional custom IntelliJ Platform plugins dependencies added. It should not be directly accessed.

@get:InputFiles
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val intelliJPlatformTestRuntimeFixClasspathConfiguration: ConfigurableFileCollection

Holds the Configurations.INTELLIJ_PLATFORM_TEST_RUNTIME_FIX_CLASSPATH configuration with the custom IntelliJ Platform core dependency required for running tests. It should not be directly accessed.

Link copied to clipboard
@get:Internal
open var isCaseSensitive: Boolean
Link copied to clipboard
@get:Internal
open var isEnabled: Boolean
Link copied to clipboard
Link copied to clipboard
@get:Internal
open val lifecycleDependencies: TaskDependencyInternal?
Link copied to clipboard
open val localState: TaskLocalState?
Link copied to clipboard
open val logger: Logger?
Link copied to clipboard
open val logging: LoggingManager?
Link copied to clipboard
open val mustRunAfter: TaskDependency?
Link copied to clipboard
open val name: String?
Link copied to clipboard
open val onlyIf: Spec<in TaskInternal?>?
Link copied to clipboard
open val outputs: TaskOutputsInternal?
Link copied to clipboard
open val path: String?
Link copied to clipboard
@get:Internal
open val platformPath: Path

Provides access to the IntelliJ Platform dependency artifact path.

Link copied to clipboard
@get:OutputDirectory
abstract val pluginDirectory: DirectoryProperty

Specifies the directory where the plugin artifacts are to be placed.

Link copied to clipboard
@get:Input
@get:Optional
abstract val pluginInstallationTarget: Property<SplitModeAware.PluginInstallationTarget>

Specifies in which part of the product the developed plugin should be installed.

Link copied to clipboard
@get:InputFile
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val pluginJar: RegularFileProperty

Specifies the output of the Jar task. The proper Jar.archiveFile picked depends on whether code instrumentation is enabled.

Link copied to clipboard
@get:Internal
abstract val pluginName: Property<String>

Specifies the name of the plugin directory in the sandbox.

Link copied to clipboard
@get:Classpath
abstract val pluginsClasspath: ConfigurableFileCollection

Specifies a list of dependencies on external plugins resolved from the Configurations.INTELLIJ_PLATFORM_PLUGIN configuration added with IntelliJPlatformDependenciesExtension.plugin and IntelliJPlatformDependenciesExtension.bundledPlugin.

Link copied to clipboard
@get:Internal
open val preserve: PatternFilterable?
Link copied to clipboard
@get:Internal
open val productInfo: ProductInfo

Provides information about the IntelliJ Platform product. The information is retrieved from the product-info.json file in the IntelliJ Platform directory.

Link copied to clipboard
open val project: Project?
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open val requiredServices: TaskRequiredServices?
Link copied to clipboard
open val rootSpec: DestinationRootCopySpec
Link copied to clipboard
@get:Classpath
abstract val runtimeClasspath: ConfigurableFileCollection

Dependencies defined with the JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME configuration.

Link copied to clipboard
@get:Internal
abstract val sandboxConfigDirectory: DirectoryProperty

A configuration directory located within the sandboxDirectory.

Link copied to clipboard
@get:Internal
abstract val sandboxConfigFrontendDirectory: DirectoryProperty

A frontend configuration directory located within the sandboxDirectory.

Link copied to clipboard
@get:Internal
abstract val sandboxDirectory: DirectoryProperty

The directory containing content read and produced by the running IDE.

Link copied to clipboard
@get:Internal
abstract val sandboxLogDirectory: DirectoryProperty

A log directory located within the sandboxDirectory.

Link copied to clipboard
@get:Internal
abstract val sandboxLogFrontendDirectory: DirectoryProperty

A frontend log directory located within the sandboxDirectory.

Link copied to clipboard
@get:Internal
abstract val sandboxPluginsDirectory: DirectoryProperty

A plugins directory located within the sandboxDirectory.

Link copied to clipboard
@get:Internal
abstract val sandboxPluginsFrontendDirectory: DirectoryProperty

A frontend plugins directory located within the sandboxDirectory.

Link copied to clipboard
@get:Internal
abstract val sandboxSuffix: Property<String>

Represents the suffix used i.e., for test-related or custom tasks.

Link copied to clipboard
@get:Internal
abstract val sandboxSystemDirectory: DirectoryProperty

A system directory located within the sandboxDirectory.

Link copied to clipboard
@get:Internal
abstract val sandboxSystemFrontendDirectory: DirectoryProperty

A frontend system directory located within the sandboxDirectory.

Link copied to clipboard
open val sharedResources: List<ResourceLock?>?
Link copied to clipboard
open val shouldRunAfter: TaskDependency?
Link copied to clipboard
@get:Internal
open val source: FileCollection
Link copied to clipboard
@get:Input
abstract val splitMode: Property<Boolean>

Enables Split Mode when running the IDE.

Link copied to clipboard
@get:Internal
open val splitModeBackendPidFile: Provider<RegularFile>

Path to a file storing the OS process identifier (PID) of the running split-mode backend process.

Link copied to clipboard
@get:Internal
open val splitModeFrontendJoinLinkFile: Provider<RegularFile>

Path to a file storing the current split-mode frontend join link.

Link copied to clipboard
@get:Internal
open val splitModeFrontendPidFile: Provider<RegularFile>

Path to a file storing the OS process identifier (PID) of the running split-mode frontend process.

Link copied to clipboard
@get:Internal
open val splitModeFrontendProperties: Provider<RegularFile>

Path to a properties file which will be used to configure the frontend process if the IDE is started in Split Mode.

Link copied to clipboard
@get:Input
@get:Optional
abstract val splitModeTarget: Property<SplitModeAware.SplitModeTarget>

Deprecated alias for pluginInstallationTarget.

Link copied to clipboard
open val standardOutputCapture: StandardOutputCapture?
Link copied to clipboard
open val state: TaskStateInternal?
Link copied to clipboard
open val taskActions: List<InputChangesAwareTaskAction?>?
Link copied to clipboard
open val taskDependencies: TaskDependencyInternal?
Link copied to clipboard
open val taskIdentity: TaskIdentity<*>?
Link copied to clipboard
open val temporaryDir: File?
Link copied to clipboard
open val temporaryDirFactory: Factory<File?>?
Link copied to clipboard
@get:Internal
abstract val testSandbox: Property<Boolean>

Defines if the current sandbox is related to testing.

Link copied to clipboard
open val timeout: Property<Duration?>?

Functions

Link copied to clipboard
open fun acceptServiceReferences(serviceReferences: Set<ServiceReferenceSpec?>?)
Link copied to clipboard
open fun appendParallelSafeAction(action: Action<in Task?>?)
Link copied to clipboard
open operator fun compareTo(otherTask: Task?): Int
Link copied to clipboard
open override fun configure(closure: Closure<*>): Task?
Link copied to clipboard
open fun conventionMapping(property: String?, mapping: Closure<*>?): Task?
open fun conventionMapping(property: String?, mapping: Callable<*>?): Task?
Link copied to clipboard
open fun dependsOn(vararg paths: Any?): Task?
Link copied to clipboard
open fun dirPermissions(configureAction: Action<in ConfigurableFilePermissions>): CopyProcessingSpec
Link copied to clipboard
open fun doFirst(action: Closure<*>?): Task?
open fun doFirst(action: Action<in Task?>?): Task?
open fun doFirst(actionName: String?, action: Action<in Task?>?): Task?
Link copied to clipboard
open fun doLast(action: Closure<*>?): Task?
open fun doLast(action: Action<in Task?>?): Task?
open fun doLast(actionName: String?, action: Action<in Task?>?): Task?
Link copied to clipboard
open fun doNotTrackState(reasonNotToTrackState: String?)
Link copied to clipboard
open fun doNotTrackStateIf(reason: String?, spec: Spec<in TaskInternal?>?)
Link copied to clipboard
open fun eachFile(closure: Closure<*>): AbstractCopyTask
open fun eachFile(action: Action<in FileCopyDetails>): AbstractCopyTask
Link copied to clipboard
open fun exclude(excludeSpec: Closure<*>): AbstractCopyTask
open fun exclude(excludes: Iterable<String>): AbstractCopyTask
open fun exclude(excludeSpec: Spec<FileTreeElement>): AbstractCopyTask
open fun exclude(vararg excludes: String): AbstractCopyTask
Link copied to clipboard
open fun expand(properties: Map<String, *>): AbstractCopyTask
open fun expand(properties: Map<String, *>, action: Action<in ExpandDetails>): AbstractCopyTask
Link copied to clipboard
open fun filePermissions(configureAction: Action<in ConfigurableFilePermissions>): CopyProcessingSpec
Link copied to clipboard
open fun filesMatching(pattern: String, action: Action<in FileCopyDetails>): AbstractCopyTask
open fun filesMatching(patterns: Iterable<String>, action: Action<in FileCopyDetails>): AbstractCopyTask
Link copied to clipboard
open fun filesNotMatching(pattern: String, action: Action<in FileCopyDetails>): AbstractCopyTask
open fun filesNotMatching(patterns: Iterable<String>, action: Action<in FileCopyDetails>): AbstractCopyTask
Link copied to clipboard
open fun filter(closure: Closure<*>): AbstractCopyTask
open fun filter(filterType: Class<out FilterReader>): AbstractCopyTask
open fun filter(transformer: Transformer<@Nullable String?, String>): AbstractCopyTask
open fun filter(properties: Map<String, *>, filterType: Class<out FilterReader>): AbstractCopyTask
Link copied to clipboard
open fun finalizedBy(vararg paths: Any?): Task?
Link copied to clipboard
open fun from(vararg sourcePaths: @Nullable Any?): AbstractCopyTask
open fun from(sourcePath: Any, c: Closure<*>): AbstractCopyTask
open fun from(sourcePath: Any, configureAction: Action<in CopySpec>): AbstractCopyTask
Link copied to clipboard
open override fun getDestinationDir(): File?
Link copied to clipboard
open fun hasProperty(propertyName: String?): Boolean
Link copied to clipboard
Link copied to clipboard
open fun include(includeSpec: Closure<*>): AbstractCopyTask
open fun include(includes: Iterable<String>): AbstractCopyTask
open fun include(includeSpec: Spec<FileTreeElement>): AbstractCopyTask
open fun include(vararg includes: String): AbstractCopyTask
Link copied to clipboard
open fun into(destDir: Any): AbstractCopyTask
open fun into(destPath: Any, configureClosure: Closure<*>): AbstractCopyTask
open fun into(destPath: Any, copySpec: Action<in CopySpec>): CopySpec
Link copied to clipboard
open fun mustRunAfter(vararg paths: Any?): Task?
Link copied to clipboard
open fun onlyIf(onlyIfClosure: Closure<*>?)
open fun onlyIf(spec: Spec<in Task?>?)
open fun onlyIf(onlyIfReason: String?, spec: Spec<in Task?>?)
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task?>?)
Link copied to clipboard
open fun preserve(action: Action<in PatternFilterable?>?): Sync?
Link copied to clipboard
open fun property(propertyName: String?): Any?
Link copied to clipboard
open fun rename(closure: Closure<*>): AbstractCopyTask
open fun rename(renamer: Transformer<@Nullable String?, String>): AbstractCopyTask
open fun rename(sourceRegEx: Pattern, replaceWith: String): AbstractCopyTask
open fun rename(sourceRegEx: String, replaceWith: String): AbstractCopyTask
Link copied to clipboard
open fun restoreOnlyIf(onlyIf: Spec<in TaskInternal?>?)
Link copied to clipboard
open fun restoreTaskActions(taskActions: List<InputChangesAwareTaskAction?>?)
Link copied to clipboard
open fun setDependsOn(dependsOn: Iterable<*>?)
Link copied to clipboard
open fun setDestinationDir(destinationDir: File?)
Link copied to clipboard
open fun setExcludes(excludes: Iterable<String>): AbstractCopyTask
Link copied to clipboard
open fun setFinalizedBy(finalizedByTasks: Iterable<*>?)
Link copied to clipboard
open fun setIncludes(includes: Iterable<String>): AbstractCopyTask
Link copied to clipboard
open fun setMustRunAfter(mustRunAfterTasks: Iterable<*>?)
Link copied to clipboard
open fun setOnlyIf(onlyIfClosure: Closure<*>?)
open fun setOnlyIf(spec: Spec<in Task?>?)
open fun setOnlyIf(onlyIfReason: String?, spec: Spec<in Task?>?)
Link copied to clipboard
open fun setProperty(name: String?, value: Any?)
Link copied to clipboard
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<*>?)
Link copied to clipboard
open fun shouldRunAfter(vararg paths: Any?): TaskDependency?
Link copied to clipboard
open fun usesService(service: Provider<out BuildService<*>?>?)
Link copied to clipboard

Validates that the resolved IntelliJ Platform is supported by checking against the minimal supported IntelliJ Platform version.

Link copied to clipboard

Validates that the resolved IntelliJ Platform supports Split Mode.

Link copied to clipboard
open fun with(vararg sourceSpecs: CopySpec): CopySpec