Another slice of must run after stuff is available in my fork: https://github.com/erdi/gradle/tree/always-runs-after

Changes from the time last review was made:
- TaskDependencyGraph now differentiates between "soft" and "hard" dependencies. Thanks to that all must run after dependencies are scheduled before regular dependencies in execution plan. - If a task B must run after task A and task A fails and failure handler doesn't abort the execution then task B is still executed - Edge ordering was moved to the graph and was implemented using TreeSets. Ordering is natural and is inverted in DefaultTaskExecutionPlan using a descending iterator. - Execution plan is calculated starting from original tasks added to the graph and tracking of nodes without incoming edges was removed. - Number of node lookups was decreased by reusing node references in DefaultTaskExecutionPlan. Code around adding edges and nodes to TaskDependencyGraph was simplified. - TaskDependencyGraphNode was merged into TaskInfo but I'm not sure if that was the right direction. - Execution plan calculation was deferred so it's performed only once per execution.
- Must run after dependencies are evaluated lazily using TaskDependency.

Please let me know if I missed something otherwise I believe I should start working on adding some documentation.

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to