• Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.3.1
    • Security Level: Public (Public: Anyone can view)
    • Labels:
    • Similar issues:
      KULRICE-12658MultiFileUpload freemarker templates for component and row templates
      KULRICE-10436Demo LIbrary, Layout Managers, CssGridLayout and many others, inline Freemarker Exception
      KULRICE-11140AFT Failure KRAD Demo Labs KSA Transaction inline Freemarker Exception
      KULRICE-11536AFT Failure Rice Sampleapp Krad Configuration clicking all day checkbox inline Freemarker exception
      KULRICE-8710Template Browser Mob tests with freemarker
      KULRICE-10340KRAD Demo Library Account Multi-Value Lookup inline Freemarker exception searching when result checked.
      KULRICE-10421AFT Failure: DemoLibraryCollectionFeaturesLightTableSmokeTest inline freemarker exception
      KULRICE-11869FreeMarker error in testTransactionView
      KULRICE-7901JSP templates replaced with Freemarker
      KULRICE-10532KRAD Demo Library Freemarker Exception in header.ftl
    • Epic Link:
    • Rice Module:
    • Sprint:
      2.3.1 Sprint 2
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:


      Based on analysis recorded in KULRICE-10260, FreeMarker rendering of complex views is in part impacted by excessive BeansWrapper method invocation centered around high-traffic macros such as script and template.

      To reduce this introspection overhead and improve overall performance of view rendering at the FreeMarker phase, provide a mechanism for passing FreeMarker rendering control to inline Java code then convert targeted macros to use this inline mechanism instead of handling expensive internal rendering logic through the exclusive use of .ftl template code.

      Initial targeted Macros are script.ftl and template.ftl. Once these have been converted, an additional pass at analysis and identification of targeted macros using Performance Medium should lead to further opportunities to improve performance.

      Original estimate:

      • 4h - Implementation of FreeMarker extensions to support inline processing.
      • 3h - Conversion of script and template to inline.
      • 4h - Repeat analysis and identification of additional targeted macros.
      • 2h - Conversion of additional macros to inline.
      • 2h - Code clean up and prep for release.


        Issue Links


          Mark Fyffe (Inactive) logged work - 02/Sep/13 9:32 AM
          • Time Spent:
            7 hours
            4h - implemented FreeMarker inline processing extensions
            3h - converted script.ftl and template.ftl to inline
          Mark Fyffe (Inactive) logged work - 03/Sep/13 8:12 AM
          • Time Spent:
            2 hours
            Repeat analysis, additional script conversion.
          Mark Fyffe (Inactive) logged work - 07/Sep/13 9:33 AM
          • Time Spent:
            1 hour
            Name changes in freemarker extensions, initial cleanup and code review effort in rice-framework.
          Mark Fyffe (Inactive) logged work - 09/Sep/13 12:45 AM
          • Time Spent:
            3 hours
            Code cleanup and testing

            Committed patch1 version. Roughly 2h remain in final cleanup for patch2 once it is ready.
          Mark Fyffe (Inactive) logged work - 13/Sep/13 8:50 AM
          • Time Spent:
            1 hour
            Merged inline template work from trunk to rice-2.3 branch
          Mark Fyffe (Inactive) logged work - 14/Sep/13 3:18 PM - edited
          • Time Spent:
            2 hours
            Converted groupWrap.ftl to inline. Final cleanup pass and javadoc for remaining code related to this issue.


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


              • Created:

                Time Tracking

                Original Estimate - 1 day, 6 hours Original Estimate - 1 day, 6 hours
                1d 6h
                Remaining Estimate - 0 minutes
                Time Spent - 2 days


                    Structure Helper Panel