Search in sources :

Example 1 with DefaultTaskExecutionContext

use of org.gradle.api.internal.tasks.execution.DefaultTaskExecutionContext in project gradle by gradle.

the class AbstractTask method execute.

@Override
public final void execute() {
    DeprecationLogger.nagUserOfDiscontinuedMethod("TaskInternal.execute()", getReuseTaskLogicAdvice());
    TaskExecuter executer = DeprecationLogger.whileDisabled(new Factory<TaskExecuter>() {

        @Override
        public TaskExecuter create() {
            return getExecuter();
        }
    });
    executer.execute(this, state, new DefaultTaskExecutionContext());
    state.rethrowFailure();
}
Also used : TaskExecuter(org.gradle.api.internal.tasks.TaskExecuter) DefaultTaskExecutionContext(org.gradle.api.internal.tasks.execution.DefaultTaskExecutionContext)

Example 2 with DefaultTaskExecutionContext

use of org.gradle.api.internal.tasks.execution.DefaultTaskExecutionContext in project gradle by gradle.

the class LocalTaskNodeExecutor method execute.

@Override
public boolean execute(Node node, NodeExecutionContext context) {
    if (node instanceof LocalTaskNode) {
        LocalTaskNode localTaskNode = (LocalTaskNode) node;
        TaskInternal task = localTaskNode.getTask();
        TaskStateInternal state = task.getState();
        if (state.getExecuted()) {
            // This should move earlier in task scheduling, so that a worker thread does not even bother trying to run this task
            return true;
        }
        ExecutionNodeAccessHierarchies.InputNodeAccessHierarchy inputHierarchy = context.getService(ExecutionNodeAccessHierarchies.InputNodeAccessHierarchy.class);
        TaskExecutionContext ctx = new DefaultTaskExecutionContext(localTaskNode, localTaskNode.getTaskProperties(), localTaskNode.getValidationContext(), (historyMaintained, typeValidationContext) -> detectMissingDependencies(localTaskNode, historyMaintained, inputHierarchy, typeValidationContext));
        TaskExecuter taskExecuter = context.getService(TaskExecuter.class);
        taskExecuter.execute(task, state, ctx);
        localTaskNode.getPostAction().execute(task);
        return true;
    } else {
        return false;
    }
}
Also used : TaskStateInternal(org.gradle.api.internal.tasks.TaskStateInternal) TaskInternal(org.gradle.api.internal.TaskInternal) TaskExecuter(org.gradle.api.internal.tasks.TaskExecuter) DefaultTaskExecutionContext(org.gradle.api.internal.tasks.execution.DefaultTaskExecutionContext) TaskExecutionContext(org.gradle.api.internal.tasks.TaskExecutionContext) DefaultTaskExecutionContext(org.gradle.api.internal.tasks.execution.DefaultTaskExecutionContext)

Aggregations

TaskExecuter (org.gradle.api.internal.tasks.TaskExecuter)2 DefaultTaskExecutionContext (org.gradle.api.internal.tasks.execution.DefaultTaskExecutionContext)2 TaskInternal (org.gradle.api.internal.TaskInternal)1 TaskExecutionContext (org.gradle.api.internal.tasks.TaskExecutionContext)1 TaskStateInternal (org.gradle.api.internal.tasks.TaskStateInternal)1