Sweet, thanks for getting this in Ed!
Just in case anyone is curious, remaining work includes:
1. Move PartialVisitContext/FullVisitContext out of the API.
2. Adjust VisitContext contract as necessary to account for the fact
that we'll no longer have a PartialVisitContext API (may need to promote
some PartialVisitContext methods up to VisitContext).
3. Call UIComponent.pushComponentToEL() and popComponentToEL() during
the visit traversal.
4. VisitHint cleanup: Defaults should match invokeOnComponent behavior.
Hint names should be updated accordingly. Rip out VISIT_ITERATED. Add
a hint that indicates that the visit is due to lifecycle phase execution.
5. Rip out old doTreeTraversal() code.
6. Implement UIData.visitTree()
I've got a few more Ajax-related tasks that I need to take care of
today, but once I wrap that up I will work on a patch that addresses the
above items.
Note that #1-5 are easy. #6 not so easy, but doable.
Andy