MyFaces Trinidad
  1. MyFaces Trinidad
  2. TRINIDAD-1368

Backport JSF 2.0 Component Tree Visiting and Optimize PPR Rendering

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.10-core
    • Fix Version/s: 1.2.13-core
    • Component/s: None
    • Labels:
      None

      Description

      JSF 2.0 will add the ability for applications to visit all or a subset of the components in the component Tree in context using a visitTree function in a similar manner to how invokeOnComponent works with the following improvements:

      1) For a single component, visitTree is faster than invokeOnComponent because visitTree avoids most calls to getClientId() on the traversed components

      2) For multiple components, visitTree can visit all of the components in a single pass, avoiding replicating the work to setup and teardown the component contexts when visiting. In addition, visitTree guarantees the relative ordering of the component visits

      3) visitTree supports optionally skipping non-rendered components, matching the visiting behavior of the JSF phases.

      4) visitTree supports components and renderers that set up different or additional context when visiting during the encoding phase

      With a few improvements, this visitation scheme can be extended to support optimizing partial page rendering. Trinidad currently implements partial apge rendering by performing a full render of the component tree (with optimizations for NamingContainers with no targets) and discarding the results of the content outside of the partial targets. This is inefficient because the unrendered components still generate their markup, more expensively, they continue to evaluate the EL and execute the models necessary to generate that content. Thus, on a large complicated page, it is not especially faster (on the server) to render a small portion of the page than a large portion (with the exception of the NamingContainer optimization which does typically avoid executing tables). This limitation is one of the main performance issues with PPR (the other is the need to re-execute the JSP in JSP environments)

      1. JIRA_1368_More_Traversal_Trunk.patch
        94 kB
        Blake Sullivan
      2. JIRA_1368_More_Traversal_1_2_12_2.patch
        95 kB
        Blake Sullivan
      3. TRINIDAD-1368.trunk.diff
        13 kB
        Andrew Robinson
      4. visit.zip
        7 kB
        Blake Sullivan
      5. JIRA_1368_12101.patch
        135 kB
        Blake Sullivan

        Issue Links

          Activity

          Blake Sullivan made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Fix Version/s 1.2.13-core [ 12314170 ]
          Resolution Fixed [ 1 ]
          Blake Sullivan made changes -
          Attachment JIRA_1368_More_Traversal_Trunk.patch [ 12435339 ]
          Blake Sullivan made changes -
          Assignee Matthias Weßendorf [ matzew ] Blake Sullivan [ btsulliv ]
          Blake Sullivan made changes -
          Attachment TRINIDAD-1368.1.2.11.4.diff [ 12414698 ]
          Blake Sullivan made changes -
          Attachment JIRA_1368_More_Traversal_1_2_12_2.patch [ 12435322 ]
          Andrew Robinson made changes -
          Attachment TRINIDAD-1368.1.2.11.4.diff [ 12414698 ]
          Attachment TRINIDAD-1368.trunk.diff [ 12414699 ]
          Matthias Weßendorf made changes -
          Fix Version/s  1.2.11-core [ 12313510 ]
          Andrew Robinson made changes -
          Priority Blocker [ 1 ] Major [ 3 ]
          Andrew Robinson made changes -
          Resolution Fixed [ 1 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Andrew Robinson made changes -
          Link This issue is related to TRINIDAD-1385 [ TRINIDAD-1385 ]
          Andrew Robinson made changes -
          Link This issue blocks TRINIDAD-1385 [ TRINIDAD-1385 ]
          Andrew Robinson made changes -
          Link This issue blocks TRINIDAD-1385 [ TRINIDAD-1385 ]
          Andrew Robinson made changes -
          Resolution Fixed [ 1 ]
          Status Reopened [ 4 ] Resolved [ 5 ]
          Andrew Robinson made changes -
          Priority Major [ 3 ] Blocker [ 1 ]
          Andrew Robinson made changes -
          Status Resolved [ 5 ] Reopened [ 4 ]
          Resolution Fixed [ 1 ]
          Matthias Weßendorf made changes -
          Fix Version/s  1.2.11-core [ 12313510 ]
          Status Open [ 1 ] Resolved [ 5 ]
          Assignee Matthias Weßendorf [ matzew ]
          Resolution Fixed [ 1 ]
          Blake Sullivan made changes -
          Field Original Value New Value
          Attachment visit.zip [ 12398169 ]
          Attachment JIRA_1368_12101.patch [ 12398168 ]
          Blake Sullivan created issue -

            People

            • Assignee:
              Blake Sullivan
              Reporter:
              Blake Sullivan
            • Votes:
              2 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 336h
                336h
                Remaining:
                Remaining Estimate - 336h
                336h
                Logged:
                Time Spent - Not Specified
                Not Specified

                  Development