Uploaded image for project: 'MyFaces Trinidad'
  1. MyFaces Trinidad
  2. TRINIDAD-1474

Add Window abstraction to Trinidad

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.2.12-core
    • 1.2.12-core
    • Archetype
    • None
    • All

    Description

      Add Window abstraction to Trinidad. Currently, Trinidad knows nothing of the separate browser Windows that make up a browser session. This causes weird problems. For example, the state management token cache is shared across all of the active windows with a simple LRU. If the user opens up two windows and operates on one window long enough, he will cause the token state for the original window to be purged. When the user switches back to the original window and POSTs back, the token won't be found, Trinidad will assume that this is because the session expired, and the user will be given an error.

      Adding the concept of a Window and a Window lifecyle opens up the following capabilities:
      1) Correct handling of per-window UI state by segregating tokens by window
      2) Early clean-up of UI state by aggressively purging state for closed windows
      3) Applications can manager per-window state by listening for window lifecycle events
      4) Sessions can be cleaned up earlier by terminating the session when the last window in the session is closed
      5) A window scope can be implemented to ease using per-window state with EL
      6) A window manager implementation can hide the details of handling control-N in the browser

      Attachments

        1. JIRA_1474_1231.patch
          44 kB
          Blake Sullivan
        2. JIRA_1474_12MAIN.patch
          43 kB
          Blake Sullivan

        Activity

          People

            btsulliv Blake Sullivan
            btsulliv Blake Sullivan
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

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