org.gradle.tooling
Interface ProjectConnection


public interface ProjectConnection

Represents a long-lived connection to a Gradle project. You obtain an instance of a ProjectConnection by using GradleConnector.connect().

 ProjectConnection connection = GradleConnector.newConnector()
    .forProjectDirectory(new File("someFolder"))
    .connect();

 try {
    //obtain some information from the build
    BuildEnvironment environment = connection.model(BuildEnvironment.class)
      .get();

    //run some tasks
    connection.newBuild()
      .forTasks("tasks")
      .setStandardOutput(System.out)
      .run();

 } finally {
    connection.close();
 }
 

Thread safety information

All implementations of ProjectConnection are thread-safe, and may be shared by any number of threads.

All notifications from a given ProjectConnection instance are delivered by a single thread at a time. Note, however, that the delivery thread may change over time.

Since:
1.0-milestone-3

Method Summary
 void close()
          Closes this connection.
<T extends Model>
T
getModel(Class<T> viewType)
          Fetches a snapshot of the model of the given type for this project.
<T extends Model>
void
getModel(Class<T> viewType, ResultHandler<? super T> handler)
          Fetches a snapshot of the model for this project asynchronously.
<T extends Model>
ModelBuilder<T>
model(Class<T> modelType)
          Creates a builder which can be used to build the model of the given type.
 BuildLauncher newBuild()
          Creates a launcher which can be used to execute a build.
 

Method Detail

getModel

<T extends Model> T getModel(Class<T> viewType)
                         throws UnsupportedVersionException,
                                UnknownModelException,
                                BuildException,
                                GradleConnectionException,
                                IllegalStateException
Fetches a snapshot of the model of the given type for this project.

This method blocks until the model is available.

Type Parameters:
T - The model type.
Parameters:
viewType - The model type.
Returns:
The model.
Throws:
UnsupportedVersionException - When the target Gradle version does not support the given model.
UnknownModelException - When you are building a model unknown to the Tooling API, for example you attempt to build a model of a type does not come from the Tooling API.
BuildException - On some failure executing the Gradle build, in order to build the model.
GradleConnectionException - On some other failure using the connection.
IllegalStateException - When this connection has been closed or is closing.
Since:
1.0-milestone-3

getModel

<T extends Model> void getModel(Class<T> viewType,
                                ResultHandler<? super T> handler)
              throws IllegalStateException,
                     UnknownModelException
Fetches a snapshot of the model for this project asynchronously. This method return immediately, and the result of the operation is passed to the supplied result handler.

Type Parameters:
T - The model type.
Parameters:
viewType - The model type.
handler - The handler to pass the result to.
Throws:
IllegalStateException - When this connection has been closed or is closing.
UnknownModelException - When you are building a model unknown to the Tooling API, for example you attempt to build a model of a type does not come from the Tooling API.
Since:
1.0-milestone-3

newBuild

BuildLauncher newBuild()
Creates a launcher which can be used to execute a build.

Returns:
The launcher.
Since:
1.0-milestone-3

model

<T extends Model> ModelBuilder<T> model(Class<T> modelType)
                                    throws UnknownModelException
Creates a builder which can be used to build the model of the given type.

Type Parameters:
T - The model type.
Parameters:
modelType - The model type
Returns:
The builder.
Throws:
UnknownModelException - When you are building a model unknown to the Tooling API, for example you attempt to build a model of a type does not come from the Tooling API.
Since:
1.0-milestone-3

close

void close()
Closes this connection. Blocks until any pending operations are complete. Once this method has returned, no more notifications will be delivered by any threads.

Since:
1.0-milestone-3