Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-3765

Improve performance of FreeMarker Template caching

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Flags:
      Patch

      Description

      Struts2 having option to enable the freemarker template caching with reloading the template with time delay which helps us to improve the performance.

      In our application we are using the strut2 in-built UI freemarker template. We need the caching option without reloading the templates after the specific time delay.

      Caching option is more powerful if we have an option for enabling\disabling the reload

      Proposed Solution

      Struts.xml
      <constant name="struts.freemarker.templatesCache.required" value="true"/>

      FreeMarkerManager.java

      protected boolean templateUpdateRequired;
      @Inject(STRUTS_FREEMARKER_TEMPLATES_RELOAD_REQUIRED)
      public void setTemplateUpdateRequired(String templateUpdateRequired)

      { this.templateUpdateRequired ="true".equals(templateUpdateRequired); }

      Update createConfiguration(ServletContext servletContext) Method
      configuration.setSetting(Configuration. TEMPLATE_RELOAD_ REQUIRED _KEY, templateUpdateRequired);

      Configuration.java

      String TEMPLATE_RELOAD_ REQUIRED _KEY= "template_reload_required";

      TemplateCache.Java

      protected boolean templateUpdateRequired;

      Update getTemplate(TemplateLoader loader, String name, Locale locale, String encoding, boolean parse) Method
      ...
      if (templateUpdateRequired !=false && now - cachedTemplate.lastChecked < delay) {

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              lukaszlenart Lukasz Lenart
              Reporter:
              greatvij Vijayakannan

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

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

                  Issue deployment