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