Unify BuildOperationExecutor and BuildOperationProcessor APIs
This introduces the following `BuildOperationExecutor`
interface (as outlined in gradle/gradle#1676):
void run(RunnableBuildOperation buildOperation);
<T> T call(CallableBuildOperation<T> buildOperation);
<O extends RunnableBuildOperation> void runAll(
Action<BuildOperationQueue<O>> schedulingAction);
<O extends BuildOperation> void runAll(
BuildOperationWorker<O> worker,
Action<BuildOperationQueue<O>> schedulingAction);
To accomplish this, the following changes were performed:
- Various representation of build operations have been merged into
1) BuildOperation (with sub-interfaces)
-> declare and describe a build operation
2) BuildOperationDescriptor (BuildOperationDescriptor.Builder)
-> describe a build operation
3) BuildOperationState
-> represents a running build operation, with run state, start time,
parent relationship information, and description
- The DefaultBuildOperationExecutor and DefaultBuildOperationProcessor
implementations have been merged in DefaultBuildOperationExecutor,
which is now build session scoped.