This is an automated email from the ASF dual-hosted git repository. git-site-role pushed a commit to branch asf-staging in repository https://gitbox.apache.org/repos/asf/struts-site.git
The following commit(s) were added to refs/heads/asf-staging by this push: new 47d84ccba Updates stage by Jenkins 47d84ccba is described below commit 47d84ccbaaae42643403f3971594c23d96cd0922 Author: jenkins <bui...@apache.org> AuthorDate: Fri Jan 3 06:24:18 2025 +0000 Updates stage by Jenkins --- content/commercial-support.html | 13 ++++++++++++- content/core-developers/performance-tuning.html | 20 ++++++++++++-------- content/tag-developers/freemarker.html | 16 ++++++++-------- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/content/commercial-support.html b/content/commercial-support.html index 9c6497f44..5f08b0d72 100644 --- a/content/commercial-support.html +++ b/content/commercial-support.html @@ -169,7 +169,7 @@ Ensure you meet the requirements specified <a href="https://www.apache.org/found For detailed assistance, kindly reach out to them directly. Help us keep this list current; if you’re aware of other supportive companies, please share details with us.</p> -<p>Last updated: <strong>2023-10-31</strong></p> +<p>Last updated: <strong>2024-12-23</strong></p> <ol> <li><a href="https://softwaremill.com/contact/">SoftwareMill</a> @@ -189,6 +189,17 @@ supportive companies, please share details with us.</p> <li>scope of support: consulting, Java & UI development, audit</li> </ul> </li> + <li><a href="https://www.herodevs.com/support/struts-nes">HeroDevs</a> + <ul> + <li>contact details: + <ul> + <li>email: <a href="mailto:he...@herodevs.com">he...@herodevs.com</a></li> + <li>phone: <a href="tel:+18775861965">+1 877-586-1965</a></li> + </ul> + </li> + <li>scope of support: Extended Long-Term Security Support for Apache Struts, CVE Remediation</li> + </ul> + </li> </ol> <h2 id="how-to-add-a-new-company">How to add a new company</h2> diff --git a/content/core-developers/performance-tuning.html b/content/core-developers/performance-tuning.html index e7bffee72..3797fd3f8 100644 --- a/content/core-developers/performance-tuning.html +++ b/content/core-developers/performance-tuning.html @@ -158,25 +158,25 @@ <blockquote> <p>For Struts 2 versions before 2.3: the OGNL version 3.0.3 library is a drop-in replacement for older OGNL jars, and provides <strong>much</strong> better performance. See the following JIRA issue for more information: -<a href="https://issues.apache.org/jira/browse/WW-3580">https://issues.apache.org/jira/browse/WW-3580</a></p> +<a href="https://issues.apache.org/jira/browse/WW-3580">WW-3580</a></p> </blockquote> <h2 id="turn-off-logging-and-devmode">Turn off logging and devMode</h2> -<p>The <a href="development-mode">devMode</a> allows reloading of configuration and validation related files, but because they -happen on each request, this setting will totally kill your performance. +<p>The <a href="development-mode">devMode</a> allows reloading of configuration and validation related files, but because they happen on each +request, this setting will totally kill your performance. When using logging, make sure to turn off logging (esp. Freemarker generates a LOT of logging), and check if a level is enabled before printing it, or you will get the cost of the String parsing/concatenation anyways.</p> <h2 id="use-the-java-templates">Use the Java Templates</h2> <p>If you use the simple theme, and do not overwrite any of the FreeMarker templates, consider using the <a href="../plugins/javatemplates-plugin/">java templates</a>, -which provide a drop in replacement for most tags, and are a lot faster than the regular tags.</p> +which provide a drop in replacement for most of the tags, and are a lot faster than the regular tags.</p> <h2 id="do-not-use-interceptors-you-do-not-need">Do not use interceptors you do not need</h2> <p>If you do not require a full stack of interceptors for an Action, then try using a different one (basicStack), -or remove interceptors you do not need. Remove the I18nInterceptor interceptor if you don’t need it, as it can cause +or remove interceptors you do not need. Remove the <code class="language-plaintext highlighter-rouge">I18nInterceptor</code> interceptor if you don’t need it, as it can cause a session to be created.</p> <h2 id="use-the-correct-http-headers-cache-control--expires">Use the correct HTTP headers (Cache-Control & Expires)</h2> @@ -186,7 +186,7 @@ a session to be created.</p> <h2 id="copy-the-static-content-from-the-struts-2-jar-when-using-the-ajax-theme-dojo-or-the-calendar-tag">Copy the static content from the Struts 2 jar when using the Ajax theme (Dojo) or the Calendar tag</h2> <p>Struts 2 uses some external javascript libraries and cascading stylesheets for certain themes and tags. These by default -are located inside the Struts 2 jar, and a special filter returns them when requesting a special path (<code class="language-plaintext highlighter-rouge">/struts</code>). +are located inside the Struts 2 jar, and a special filter returns them when requesting a special path (<code class="language-plaintext highlighter-rouge">/static</code>). Although Struts 2 can handle these requests, an application/servlet container is not optimized for these kind of requests. Consider moving these .js and .css files to a seperated server (Lighttpd, Apache HTTPD, ..).</p> @@ -201,12 +201,16 @@ Consider moving these .js and .css files to a seperated server (Lighttpd, Apache is 500 ms. Since there is no reason to check if a template needs reloading, it is best to set this to a very large value. Note that this value is in seconds and freemarker will convert this value to milliseconds.</p> -<p>You can also use <code class="language-plaintext highlighter-rouge">struts.freemarker.templatesCache.updateDelay</code> constant to achieve the same effect.</p> +<p>You can also use <code class="language-plaintext highlighter-rouge">struts.freemarker.templatesCache.updateDelay</code> constant to achieve the same effect.</p> -<p>See also: <a href="http://freemarker.sourceforge.net/docs/api/freemarker/template/Configuration.html\#setSetting(java.lang.String,%20java.lang.String)">Freemarker configuration properties</a></p> +<p>See also: <a href="https://freemarker.apache.org/docs/pgui_config_settings.html">Freemarker configuration properties</a></p> <h2 id="enable-freemarker-template-caching">Enable Freemarker template caching</h2> +<blockquote> + <p>Note: support for this options has been removed in Struts. See the <a href="../tag-developers/freemarker#Cache">Cache</a> section of the FreeMarker page.</p> +</blockquote> + <p>As of Struts 2.0.10, setting the property <code class="language-plaintext highlighter-rouge">struts.freemarker.templatesCache</code> to true will enable the Struts internal caching of Freemarker templates. This property is set to false by default.</p> diff --git a/content/tag-developers/freemarker.html b/content/tag-developers/freemarker.html index 42733d9ed..3354e5a80 100644 --- a/content/tag-developers/freemarker.html +++ b/content/tag-developers/freemarker.html @@ -466,10 +466,10 @@ logic to take place instead.</p> <ul> <li><code class="language-plaintext highlighter-rouge"><constant name="struts.freemarker.mru.max.strong.size" value="250" /></code> - this option will be used -by <a href="http://freemarker.org/docs/api/freemarker/cache/MruCacheStorage">freemarker.cache.MruCacheStorage</a></li> - <li><code class="language-plaintext highlighter-rouge"><constant name="struts.freemarker.templatesCache.updateDelay" value="1800" /></code> - default update cache interval (5 seconds) --<code class="language-plaintext highlighter-rouge"><constant name="struts.freemarker.templatesCache" value="true" /></code> - *<strong>DEPRECATED</strong>* this option will use a internal -ConcurrentHashMap in FreemarkerTemplateEngine but not freemarker native cache</li> +by <a href="http://freemarker.org/docs/api/freemarker/cache/MruCacheStorage">freemarker.cache.MruCacheStorage</a>, see <a href="https://freemarker.apache.org/docs/pgui_config_templateloading.html#pgui_config_templateloading_caching">Template cache</a> section as well.</li> + <li><code class="language-plaintext highlighter-rouge"><constant name="struts.freemarker.templatesCache.updateDelay" value="1800" /></code> - default update cache interval (5 seconds)</li> + <li><code class="language-plaintext highlighter-rouge"><constant name="struts.freemarker.templatesCache" value="true" /></code> - <strong>DEPRECATED</strong> this option will use an internal +ConcurrentHashMap in FreemarkerTemplateEngine but not freemarker native cache (this option has been removed in the latest Struts versions)</li> </ul> <p>Setting <code class="language-plaintext highlighter-rouge">devMode</code> to <code class="language-plaintext highlighter-rouge">true</code> will disable cache and updateDelay immediately, but you can explicit specify these constants @@ -477,15 +477,15 @@ to enable cache even in <code class="language-plaintext highlighter-rouge">devMo <h3 id="incompatible-improvements">Incompatible Improvements</h3> -<p>By default Struts is using FreeMarker in way to be backward compatible as much as possible but if you need to enable new -features you can do it via <code class="language-plaintext highlighter-rouge">freemarker.properties</code> by defining +<p>By default, Struts is using FreeMarker in way to be backward compatible as much as possible but if you need to enable new +features you can do it via <code class="language-plaintext highlighter-rouge">freemarker.properties</code> by defining <a href="http://freemarker.org/docs/pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">incompatible improvements</a> -settings, ie.:</p> +settings, i.e.:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>incompatible_improvements=2.3.22 </code></pre></div></div> -<p>You can also pass this setting via <code class="language-plaintext highlighter-rouge">ServletContext</code> setting <code class="language-plaintext highlighter-rouge"><init-param/></code> (since Struts 2.5.13):</p> +<p>You can also pass this setting via <code class="language-plaintext highlighter-rouge">ServletContext</code> setting <code class="language-plaintext highlighter-rouge"><init-param/></code> (since Struts 2.5.13):</p> <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><init-param></span> <span class="nt"><param-name></span>freemarker.incompatible_improvements<span class="nt"></param-name></span>