Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-8432

Peformance: remove default readOnly expression and handle it code

    Details

    • Type: Task Task
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Complete
    • Affects Version/s: None
    • Fix Version/s: 2.5
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-6845Problems with UifBeanFactoryPostProcessor expression handling that is causing bean property overrides (such as fieldInquiry.render) to not work
      KULRICE-7982Readonly fields not getting translated for readonly search criteria
      KULRICE-10059Setting collection field as readonly throws exception
      KULRICE-8595Remove special CSS handling for lightboxes
      KULRICE-1570Remove uncalled code in PojoFormBase.populate
      KULRICE-9722Error using spring expressions inside rich messaging components
      KULRICE-6391allow longer rule expressions
      KULRICE-11452Maintenance Conversion Script - M20 & M21 Hide/ReadOnly Section
      KULRICE-4047UIDocumentServiceImpl.getMember() can return null but is not handled
      KULRICE-12637Allow direct inquiry to handle readonly fields
    • Epic Link:
    • Rice Module:
      KRAD
    • Sprint:
      2.4.0-m4 KRAD UXI Sprint 2, 2.4.0-m4 KRAD UXI Sprint 3, 2.5.0-m1 Sprint 1, 2.5.0-m1 Sprint 2, 2.5.0-m1 Sprint 3, 2.5.0-m2 Sprint 1, 2.5.0-m2 Sprint 2, 2.5.0-m2 Sprint 3
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required

      Description

      readOnly property expression is causing a lot of additional expression evaluations. This can be handled in code instead

        Issue Links

          Activity

          Hide
          Mark Fyffe (Inactive) added a comment -

          The read-only expression appears on several built-in UIF elements, most notably Uif-ContentElement which is a parent bean for most KRAD components. The following beans also define a similar expression:

          • Uif-DialogExplanation
          • Uif-FieldBase
          • Uif-InputField
          • Uif-GroupBase
          • Uif-Page
          • Uif-QuickFinder
          • Uif-Inquiry

          I've converted the readOnly property from primitive boolean to object Boolean and have added a lifecycle task to populate the beans noted above from the parent when the readOnly setting is null. I'm still looking into the right timing for processing this task, then working through cleanup and testing this weekend.

          Show
          Mark Fyffe (Inactive) added a comment - The read-only expression appears on several built-in UIF elements, most notably Uif-ContentElement which is a parent bean for most KRAD components. The following beans also define a similar expression: Uif-DialogExplanation Uif-FieldBase Uif-InputField Uif-GroupBase Uif-Page Uif-QuickFinder Uif-Inquiry I've converted the readOnly property from primitive boolean to object Boolean and have added a lifecycle task to populate the beans noted above from the parent when the readOnly setting is null. I'm still looking into the right timing for processing this task, then working through cleanup and testing this weekend.
          Hide
          Mark Fyffe (Inactive) added a comment -

          Completed this effort as described in my previous comment.

          1. Converted from primitive isReadOnly() to object Boolean getReadOnly()
          2. Created AfterEvaluateExpressionTask for hooking in to the lifecycle directly after expressions are evaluated, but before client-side state is synchronized
          3. Added afterEvaluateExpression() method to Component interface for implementation of custom post-expression behavior at the component level.
          4. Removed @{#parent.readOnly} expressions from delivered UIF data dictionary beans, and replaced with equivalent afterEvaluateExpression implementations

          Verified unit tests and performed regression testing on KRAD sampleapp.

          Show
          Mark Fyffe (Inactive) added a comment - Completed this effort as described in my previous comment. Converted from primitive isReadOnly() to object Boolean getReadOnly() Created AfterEvaluateExpressionTask for hooking in to the lifecycle directly after expressions are evaluated, but before client-side state is synchronized Added afterEvaluateExpression() method to Component interface for implementation of custom post-expression behavior at the component level. Removed @{#parent.readOnly} expressions from delivered UIF data dictionary beans, and replaced with equivalent afterEvaluateExpression implementations Verified unit tests and performed regression testing on KRAD sampleapp.

            People

            • Assignee:
              Mark Fyffe (Inactive)
              Reporter:
              Jerry Neal (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 1 day
                1d
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 day
                1d

                  Agile

                    Structure Helper Panel