Interface LongRunningOperation
-
- All Known Subinterfaces:
BuildActionExecuter<T>
,BuildLauncher
,ConfigurableLauncher<T>
,ModelBuilder<T>
,TestLauncher
public interface LongRunningOperation
Offers ways to communicate both ways with a Gradle operation, be it building a model or running tasks.Enables tracking progress via listeners that will receive events from the Gradle operation.
Allows providing standard output streams that will receive output if the Gradle operation writes to standard streams.
Allows providing standard input that can be consumed by the gradle operation (useful for interactive builds).
Enables configuring the build run / model request with options like the Java home or JVM arguments. Those settings might not be supported by the target Gradle version. Refer to Javadoc for those methods to understand what kind of exception throw and when is it thrown.
- Since:
- 1.0-milestone-7
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description LongRunningOperation
addArguments(java.lang.Iterable<java.lang.String> arguments)
Appends new command line arguments to the existing list.LongRunningOperation
addArguments(java.lang.String... arguments)
Appends new command line arguments to the existing list.LongRunningOperation
addJvmArguments(java.lang.Iterable<java.lang.String> jvmArguments)
Appends Java VM arguments to the existing list.LongRunningOperation
addJvmArguments(java.lang.String... jvmArguments)
Appends Java VM arguments to the existing list.LongRunningOperation
addProgressListener(ProgressListener listener)
Adds a progress listener which will receive progress events of all types as the operation runs.LongRunningOperation
addProgressListener(ProgressListener listener, java.util.Set<OperationType> operationTypes)
Adds a progress listener which will receive progress events as the operations of the requested type run.LongRunningOperation
addProgressListener(ProgressListener listener, OperationType... operationTypes)
Adds a progress listener which will receive progress events as the operations of the requested type run.LongRunningOperation
addProgressListener(ProgressListener listener)
Adds a progress listener which will receive progress events as the operation runs.LongRunningOperation
setColorOutput(boolean colorOutput)
Specifies whether to generate colored (ANSI encoded) output for logging.LongRunningOperation
setEnvironmentVariables(java.util.Map<java.lang.String,java.lang.String> envVariables)
Specifies the environment variables to use for this operation.LongRunningOperation
setJavaHome(java.io.File javaHome)
Specifies the Java home directory to use for this operation.LongRunningOperation
setJvmArguments(java.lang.Iterable<java.lang.String> jvmArguments)
Specifies the Java VM arguments to use for this operation.LongRunningOperation
setJvmArguments(java.lang.String... jvmArguments)
Specifies the Java VM arguments to use for this operation.LongRunningOperation
setStandardError(java.io.OutputStream outputStream)
Sets theOutputStream
which should receive standard error logging generated while running the operation.LongRunningOperation
setStandardInput(java.io.InputStream inputStream)
Sets theInputStream
that will be used as standard input for this operation.LongRunningOperation
setStandardOutput(java.io.OutputStream outputStream)
Sets theOutputStream
which should receive standard output logging generated while running the operation.LongRunningOperation
withArguments(java.lang.Iterable<java.lang.String> arguments)
Specify the command line build arguments.LongRunningOperation
withArguments(java.lang.String... arguments)
Specify the command line build arguments.LongRunningOperation
withCancellationToken(CancellationToken cancellationToken)
Sets the cancellation token to use to cancel the operation if required.LongRunningOperation
withSystemProperties(java.util.Map<java.lang.String,java.lang.String> systemProperties)
Sets system properties to pass to the build.
-
-
-
Method Detail
-
setStandardOutput
LongRunningOperation setStandardOutput(java.io.OutputStream outputStream)
Sets theOutputStream
which should receive standard output logging generated while running the operation. The default is to discard the output.- Parameters:
outputStream
- The output stream. The system default character encoding will be used to encode characters written to this stream.- Returns:
- this
- Since:
- 1.0-milestone-7
-
setStandardError
LongRunningOperation setStandardError(java.io.OutputStream outputStream)
Sets theOutputStream
which should receive standard error logging generated while running the operation. The default is to discard the output.- Parameters:
outputStream
- The output stream. The system default character encoding will be used to encode characters written to this stream.- Returns:
- this
- Since:
- 1.0-milestone-7
-
setColorOutput
LongRunningOperation setColorOutput(boolean colorOutput)
Specifies whether to generate colored (ANSI encoded) output for logging. The default is to not generate color output.Supported by Gradle 2.3 or later. Ignored for older versions.
- Parameters:
colorOutput
-true
to request color output (using ANSI encoding).- Returns:
- this
- Since:
- 2.3
-
setStandardInput
LongRunningOperation setStandardInput(java.io.InputStream inputStream)
Sets theInputStream
that will be used as standard input for this operation. Defaults to an empty input stream.- Parameters:
inputStream
- The input stream- Returns:
- this
- Since:
- 1.0-milestone-8
-
setJavaHome
LongRunningOperation setJavaHome(@Nullable java.io.File javaHome) throws java.lang.IllegalArgumentException
Specifies the Java home directory to use for this operation.BuildEnvironment
model contains information such as Java or Gradle environment. If you want to get hold of this information you can ask tooling API to build this model.If not configured or null is passed, then the sensible default will be used.
- Parameters:
javaHome
- to use for the Gradle process- Returns:
- this
- Throws:
java.lang.IllegalArgumentException
- when supplied javaHome is not a valid folder.- Since:
- 1.0-milestone-8
-
setJvmArguments
LongRunningOperation setJvmArguments(@Nullable java.lang.String... jvmArguments)
Specifies the Java VM arguments to use for this operation.BuildEnvironment
model contains information such as Java or Gradle environment. If you want to get hold of this information you can ask tooling API to build this model.If not configured, null, or an empty array is passed, then the reasonable default will be used.
- Parameters:
jvmArguments
- to use for the Gradle process- Returns:
- this
- Since:
- 1.0-milestone-8
-
addJvmArguments
LongRunningOperation addJvmArguments(java.lang.String... jvmArguments)
Appends Java VM arguments to the existing list.- Parameters:
jvmArguments
- the argument to use for the Gradle process- Returns:
- this
- Since:
- 5.0
-
withSystemProperties
@Incubating LongRunningOperation withSystemProperties(java.util.Map<java.lang.String,java.lang.String> systemProperties)
Sets system properties to pass to the build.By default, the Tooling API passes all system properties defined in the client to the build. If called, this method limits the system properties that are passed to the build, except for immutable system properties that need to match on both sides.
System properties can be also defined in the build scripts (and in the gradle.properties file), or with a JVM argument. In case of an overlapping system property definition the precedence is as follows:
withSystemProperties(...)
(highest)addJvmArguments(...)
andsetJvmArguments(...)
- build scripts
Note: this method has "setter" behavior, so the last invocation will overwrite previously set values.
- Parameters:
systemProperties
- the system properties add to the Gradle process. Passingnull
resets to the default behavior.- Returns:
- this
- Since:
- 7.6
-
addJvmArguments
LongRunningOperation addJvmArguments(java.lang.Iterable<java.lang.String> jvmArguments)
Appends Java VM arguments to the existing list.- Parameters:
jvmArguments
- the argument to use for the Gradle process- Returns:
- this
- Since:
- 5.0
-
setJvmArguments
LongRunningOperation setJvmArguments(@Nullable java.lang.Iterable<java.lang.String> jvmArguments)
Specifies the Java VM arguments to use for this operation.BuildEnvironment
model contains information such as Java or Gradle environment. If you want to get hold of this information you can ask tooling API to build this model.If not configured, null, or an empty list is passed, then the reasonable default will be used.
- Parameters:
jvmArguments
- to use for the Gradle process- Returns:
- this
- Since:
- 2.6
-
withArguments
LongRunningOperation withArguments(@Nullable java.lang.String... arguments)
Specify the command line build arguments. Useful mostly for running tasks viaBuildLauncher
.Be aware that not all of the Gradle command line options are supported! Only the build arguments that configure the build execution are supported. They are modelled in the Gradle API via
StartParameter
. Examples of supported build arguments: '--info', '-p'. The command line instructions that are actually separate commands (like '-?' and '-v') are not supported. Some other instructions like '--daemon' are also not supported - the tooling API always runs with the daemon.If an unknown or unsupported command line option is specified,
UnsupportedBuildArgumentException
will be thrown at the time the operation is executed viaBuildLauncher.run()
orModelBuilder.get()
.For the list of all Gradle command line options please refer to the User Manual or take a look at the output of the 'gradle -?' command. Majority of arguments modeled by
StartParameter
are supported.The arguments can potentially override some other settings you have configured. For example, the project directory or Gradle user home directory that are configured in the
GradleConnector
. Also, the task names configured byBuildLauncher.forTasks(String...)
can be overridden if you happen to specify other tasks via the build arguments.See the example in the docs for
BuildLauncher
If not configured, null, or an empty array is passed, then the reasonable default will be used.Requires Gradle 1.0 or later.
- Parameters:
arguments
- Gradle command line arguments- Returns:
- this
- Since:
- 1.0
-
withArguments
LongRunningOperation withArguments(@Nullable java.lang.Iterable<java.lang.String> arguments)
Specify the command line build arguments. Useful mostly for running tasks viaBuildLauncher
.If not configured, null, or an empty list is passed, then the reasonable default will be used.
Requires Gradle 1.0 or later.
- Parameters:
arguments
- Gradle command line arguments- Returns:
- this
- Since:
- 2.6
-
addArguments
LongRunningOperation addArguments(java.lang.String... arguments)
Appends new command line arguments to the existing list. Useful mostly for running tasks viaBuildLauncher
.- Parameters:
arguments
- Gradle command line arguments- Returns:
- this
- Since:
- 5.0
-
addArguments
LongRunningOperation addArguments(java.lang.Iterable<java.lang.String> arguments)
Appends new command line arguments to the existing list. Useful mostly for running tasks viaBuildLauncher
.- Parameters:
arguments
- Gradle command line arguments- Returns:
- this
- Since:
- 5.0
-
setEnvironmentVariables
LongRunningOperation setEnvironmentVariables(@Nullable java.util.Map<java.lang.String,java.lang.String> envVariables)
Specifies the environment variables to use for this operation.BuildEnvironment
model contains information such as Java or Gradle environment. If you want to get hold of this information you can ask tooling API to build this model.If not configured or null is passed, then the reasonable default will be used.
- Parameters:
envVariables
- environment variables- Returns:
- this
- Since:
- 3.5
-
addProgressListener
LongRunningOperation addProgressListener(ProgressListener listener)
Adds a progress listener which will receive progress events as the operation runs.This method is intended to be replaced by
addProgressListener(org.gradle.tooling.events.ProgressListener)
. The new progress listener type provides much richer information and much better handling of parallel operations that run during the build, such as tasks that run in parallel. You should prefer using the new listener interface where possible. Note, however, that the new interface is supported only for Gradle 2.5.- Parameters:
listener
- The listener- Returns:
- this
- Since:
- 1.0-milestone-7
-
addProgressListener
LongRunningOperation addProgressListener(ProgressListener listener)
Adds a progress listener which will receive progress events of all types as the operation runs.This method is intended to replace
addProgressListener(ProgressListener)
. You should prefer using the new progress listener method where possible, as the new interface provides much richer information and much better handling of parallel operations that run during the build.Supported by Gradle 2.5 or later. Gradle 2.4 supports
OperationType.TEST
operations only. Ignored for older versions.- Parameters:
listener
- The listener- Returns:
- this
- Since:
- 2.5
-
addProgressListener
LongRunningOperation addProgressListener(ProgressListener listener, java.util.Set<OperationType> operationTypes)
Adds a progress listener which will receive progress events as the operations of the requested type run.This method is intended to replace
addProgressListener(ProgressListener)
. You should prefer using the new progress listener method where possible, as the new interface provides much richer information and much better handling of parallel operations that run during the build.Supported by Gradle 2.5 or later. Gradle 2.4 supports
OperationType.TEST
operations only. Ignored for older versions.- Parameters:
listener
- The listeneroperationTypes
- The types of operations to receive progress events for.- Returns:
- this
- Since:
- 2.5
-
addProgressListener
LongRunningOperation addProgressListener(ProgressListener listener, OperationType... operationTypes)
Adds a progress listener which will receive progress events as the operations of the requested type run.This method is intended to replace
addProgressListener(ProgressListener)
. You should prefer using the new progress listener method where possible, as the new interface provides much richer information and much better handling of parallel operations that run during the build.Supported by Gradle 2.5 or later. Gradle 2.4 supports
OperationType.TEST
operations only. Ignored for older versions.- Parameters:
listener
- The listeneroperationTypes
- The types of operations to receive progress events for.- Returns:
- this
- Since:
- 2.6
-
withCancellationToken
LongRunningOperation withCancellationToken(CancellationToken cancellationToken)
Sets the cancellation token to use to cancel the operation if required.Supported by Gradle 2.1 or later. Ignored for older versions.
- Since:
- 2.1
-
-