Repository: struts-site Updated Branches: refs/heads/asf-site 1b9b67fae -> 2a2db903d
Updates production by Jenkins Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/2a2db903 Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/2a2db903 Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/2a2db903 Branch: refs/heads/asf-site Commit: 2a2db903d573fd53cd557bc17cfb12b7c558ce3a Parents: 1b9b67f Author: jenkins <bui...@apache.org> Authored: Wed Aug 23 11:26:54 2017 +0000 Committer: jenkins <bui...@apache.org> Committed: Wed Aug 23 11:26:54 2017 +0000 ---------------------------------------------------------------------- .../core-developers/application-servers.html | 47 +++------- content/core-developers/index.html | 2 +- content/core-developers/performance-tuning.html | 91 +++++++++++--------- content/core-developers/struts-default-vm.html | 11 +-- .../core-developers/velocity-properties.html | 21 ++--- 5 files changed, 72 insertions(+), 100 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts-site/blob/2a2db903/content/core-developers/application-servers.html ---------------------------------------------------------------------- diff --git a/content/core-developers/application-servers.html b/content/core-developers/application-servers.html index 2c1209b..e48db85 100644 --- a/content/core-developers/application-servers.html +++ b/content/core-developers/application-servers.html @@ -127,42 +127,21 @@ <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/application-servers.md" title="Edit this page on GitHub">Edit on GitHub</a> <h1 id="application-servers">Application Servers</h1> -<p>The framework is known to work well with most application servers. If a serverâs name is linked, then there may be some extra steps to obtain full functionality.</p> +<p>The framework is known to work well with most application servers. If a serverâs name is linked, then there may +be some extra steps to obtain full functionality.</p> <ul> - <li> - <p>Jetty</p> - </li> - <li> - <p>JRun</p> - </li> - <li> - <p>OC4J</p> - </li> - <li> - <p>Orion</p> - </li> - <li> - <p>Resin</p> - </li> - <li> - <p><a href="sunone-7-0.html">SunOne 7.0</a></p> - </li> - <li> - <p><a href="jboss-5.html">JBoss 5</a></p> - </li> - <li> - <p><a href="weblogic.html">WebLogic</a></p> - </li> - <li> - <p><a href="weblogic-6-1.html">WebLogic 6.1</a></p> - </li> - <li> - <p><a href="websphere.html">WebSphere</a></p> - </li> - <li> - <p><a href="glassfish-2-x.html">Glassfish 2.x</a></p> - </li> + <li>Jetty</li> + <li>JRun</li> + <li>OC4J</li> + <li>Orion</li> + <li>Resin</li> + <li><a href="sunone-7-0.html">SunOne 7.0</a></li> + <li><a href="jboss-5.html">JBoss 5</a></li> + <li><a href="weblogic.html">WebLogic</a></li> + <li><a href="weblogic-6-1.html">WebLogic 6.1</a></li> + <li><a href="websphere.html">WebSphere</a></li> + <li><a href="glassfish-2-x.html">Glassfish 2.x</a></li> </ul> </section> http://git-wip-us.apache.org/repos/asf/struts-site/blob/2a2db903/content/core-developers/index.html ---------------------------------------------------------------------- diff --git a/content/core-developers/index.html b/content/core-developers/index.html index efa90c8..f8a2c41 100644 --- a/content/core-developers/index.html +++ b/content/core-developers/index.html @@ -155,7 +155,7 @@ Each may be configured via XML or annotations.</p> <ul> <li><a href="web-xml.html">web.xml</a></li> <li><a href="struts-xml.html">struts.xml</a></li> - <li><a href="struts-properties.html">struts.properties</a></li> + <li><a href="default-properties.html">default.properties</a></li> <li><a href="struts-default-xml.html">struts-default.xml</a></li> <li><a href="velocity-properties.html">velocity.properties</a></li> <li><a href="struts-default-vm.html">struts-default.vm</a></li> http://git-wip-us.apache.org/repos/asf/struts-site/blob/2a2db903/content/core-developers/performance-tuning.html ---------------------------------------------------------------------- diff --git a/content/core-developers/performance-tuning.html b/content/core-developers/performance-tuning.html index 20a6461..eb40a5d 100644 --- a/content/core-developers/performance-tuning.html +++ b/content/core-developers/performance-tuning.html @@ -127,80 +127,91 @@ <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/performance-tuning.md" title="Edit this page on GitHub">Edit on GitHub</a> <h1 id="performance-tuning">Performance Tuning</h1> -<p>####Performance tuning####</p> +<h2 id="performance-tuning-1">Performance tuning</h2> <p>The following are some tips and tricks to squeeze the most performance out of Struts 2.</p> -<table> - <tbody> - <tr> - <td>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></td> - </tr> - </tbody> -</table> +<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> +</blockquote> -<table> - <tbody> - <tr> - </tr> - </tbody> -</table> +<h2 id="turn-off-logging-and-devmode">Turn off logging and devMode</h2> -<p>#####Turn off logging and devMode.#####</p> +<p>The <a href="development-mode.html">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> -<p><a href="development-mode.html">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/concatination anyways.</p> +<h2 id="use-the-java-templates">Use the Java Templates</h2> -<p>#####Use the Java Templates#####</p> +<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> -<p>If you use the simple theme, and do not overwrite any of the FreeMarker templates, consider using the <em>java templates</em> , which provide a drop in replacement for most 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>#####Do not use interceptors you do not need.#####</p> +<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 +a session to be created.</p> -<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 a session to be created.</p> - -<p>#####Use the correct HTTP headers (Cache-Control & Expires).#####</p> +<h2 id="use-the-correct-http-headers-cache-control--expires">Use the correct HTTP headers (Cache-Control & Expires)</h2> <p>When returning HTML views, make sure to add the correct headers so browsers know how to cache them.</p> -<p>#####Copy the static content from the Struts 2 jar when using the Ajax theme (Dojo) or the Calendar tag.#####</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 (/struts). 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> +<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="highlighter-rouge">/struts</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> -<p>#####Create a freemarker.properties file in your WEB-INF/classes directory.#####</p> +<h2 id="create-a-freemarkerproperties-file-in-your-web-infclasses-directory">Create a freemarker.properties file in your WEB-INF/classes directory</h2> <p>Create the freemarker.properties file and add the following setting (or whatever value you deem fitting):</p> <div class="highlighter-rouge"><pre class="highlight"><code>template_update_delay=60000 - </code></pre> </div> -<p>This value determines how often Freemarker checks if it needs to reloads the templates from disk. The default value 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>This value determines how often Freemarker checks if it needs to reloads the templates from disk. The default value +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 <em>struts.freemarker.templatesCache.updateDelay</em> constant to achieve the same effect.</p> +<p>You can also use <code class="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>^[http://freemarker.sourceforge.net/docs/api/freemarker/template/Configuration.html#setSetting(java.lang.String,%20java.lang.String)]</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>#####Enable Freemarker template caching#####</p> +<h2 id="enable-freemarker-template-caching">Enable Freemarker template caching</h2> -<p>As of Struts 2.0.10, setting the property <em>struts.freemarker.templatesCache</em> to true will enable the Struts internal caching of Freemarker templates. This property is set to false by default.</p> +<p>As of Struts 2.0.10, setting the property <code class="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> -<p>In Struts versions prior to 2.0.10, you had to copy the /template directory from the Struts 2 jar in your WEB_APP root to utilize Freemarkerâs built in chaching mechanism in order to achieve similar results.</p> +<p>In Struts versions prior to 2.0.10, you had to copy the <code class="highlighter-rouge">/template</code> directory from the Struts 2 jar in your <code class="highlighter-rouge">WEB_APP</code> +root to utilize Freemarkerâs built in caching mechanism in order to achieve similar results.</p> -<p>The built in Freemarker caching mechanism fails to properly cache templates when they are retrieved from the classpath. Copying them to the WEB_APP root allows Freemarker to cache them correctly. Freemarker looks at the last modified time of the template to determine if it needs to reload the templates. Resources retrieved from the classpath have no last modified time, so Freemarker will reload them on every request.</p> +<p>The built in Freemarker caching mechanism fails to properly cache templates when they are retrieved from the classpath. +Copying them to the WEB_APP root allows Freemarker to cache them correctly. Freemarker looks at the last modified time +of the template to determine if it needs to reload the templates. Resources retrieved from the classpath have no last +modified time, so Freemarker will reload them on every request.</p> -<p>#####When overriding a theme, copy all necessary templates to the theme directory.#####</p> +<h2 id="when-overriding-a-theme-copy-all-necessary-templates-to-the-theme-directory">When overriding a theme, copy all necessary templates to the theme directory</h2> -<p>Thereâs a performance cost when a template cannot be found in the current directory. The reason for this is that Struts 2 must check for a template in the current theme first before falling back to the parent theme. In the future, this penalty could be eliminated by implementing a missing template cache in Struts 2.</p> +<p>Thereâs a performance cost when a template cannot be found in the current directory. The reason for this is that +Struts 2 must check for a template in the current theme first before falling back to the parent theme. In the future, +this penalty could be eliminated by implementing a missing template cache in Struts 2.</p> -<p>#####Do not create sessions unless you need them.#####</p> +<h2 id="do-not-create-sessions-unless-you-need-them">Do not create sessions unless you need them</h2> -<p>Struts 2 does not create sessions unless asked to (for example, by having the createSession interceptor in your interceptor stack). Note that when you use SiteMesh however, a session will <strong>always</strong> be created (See <a href="http://forums\.opensymphony\.com/thread\.jspa?messageID=5688">http://forums.opensymphony.com/thread.jspa?messageID=5688</a> for details). The I18nInterceptor interceptor can create sessions, so make sure you remove it, if you donât need it.</p> +<p>Struts 2 does not create sessions unless asked to (for example, by having the createSession interceptor in your +interceptor stack). Note that when you use SiteMesh however, a session will <strong>always</strong> be created. +The I18nInterceptor interceptor can create sessions, so make sure you remove it, if you donât need it.</p> -<p>#####When using Freemarker, try to use the Freemarker equivalent rather than using the JSP tags.#####</p> +<h2 id="when-using-freemarker-try-to-use-the-freemarker-equivalent-rather-than-using-the-jsp-tags">When using Freemarker, try to use the Freemarker equivalent rather than using the JSP tags</h2> -<p>Freemarker has support for iterating lists, displaying properties, including other templates, macroâs, and so on. There is a small performance cost when using the S2 tags instead of the Freemarker equivalent (eg. <s:property value=âfooâ/> should be replaced by ${foo}).</p> +<p>Freemarker has support for iterating lists, displaying properties, including other templates, macroâs, and so on. +There is a small performance cost when using the S2 tags instead of the Freemarker equivalent +(eg. <code class="highlighter-rouge"><s:property value="foo"/></code> should be replaced by <code class="highlighter-rouge">${foo}</code>).</p> </section> </article> http://git-wip-us.apache.org/repos/asf/struts-site/blob/2a2db903/content/core-developers/struts-default-vm.html ---------------------------------------------------------------------- diff --git a/content/core-developers/struts-default-vm.html b/content/core-developers/struts-default-vm.html index 91ea238..368561d 100644 --- a/content/core-developers/struts-default-vm.html +++ b/content/core-developers/struts-default-vm.html @@ -127,17 +127,11 @@ <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/struts-default-vm.md" title="Edit this page on GitHub">Edit on GitHub</a> <h1 id="struts-defaultvm">struts-default.vm</h1> -<p>If Velocity is being use, the</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>struts-default.vm -</code></pre> -</div> -<p>supplies some VelocityMacros that might be useful.</p> +<p>If Velocity is being use, the <code class="highlighter-rouge">struts-default.vm</code> supplies some VelocityMacros that might be useful.</p> <p><strong>struts-default.vm</strong></p> -<div class="highlighter-rouge"><pre class="highlight"><code> -#macro(bean $bean_name $name) +<div class="highlighter-rouge"><pre class="highlight"><code>#macro(bean $bean_name $name) #set ($name = $action.bean($bean_name)) #end @@ -154,7 +148,6 @@ #macro(property $object $property) $!{ognl.findValue($property, $object)} #end - </code></pre> </div> http://git-wip-us.apache.org/repos/asf/struts-site/blob/2a2db903/content/core-developers/velocity-properties.html ---------------------------------------------------------------------- diff --git a/content/core-developers/velocity-properties.html b/content/core-developers/velocity-properties.html index 2be31bf..5069201 100644 --- a/content/core-developers/velocity-properties.html +++ b/content/core-developers/velocity-properties.html @@ -127,29 +127,18 @@ <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/velocity-properties.md" title="Edit this page on GitHub">Edit on GitHub</a> <h1 id="velocityproperties">velocity.properties</h1> -<p>If a</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>velocity.properties -</code></pre> -</div> -<p>is provided on the classpath (e.g.,</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>/WEB-INF/classes -</code></pre> -</div> -<p>), it will be loaded by Velocity.</p> +<p>If a <code class="highlighter-rouge">velocity.properties</code> is provided on the classpath (e.g., <code class="highlighter-rouge">/WEB-INF/classes</code>), it will be loaded by Velocity.</p> <p><strong>velocity.properties</strong></p> -<div class="highlighter-rouge"><pre class="highlight"><code> -# Velocity Macro libraries. +<div class="highlighter-rouge"><pre class="highlight"><code># Velocity Macro libraries. velocimacro.library = action-default.vm, tigris-macros.vm, myapp.vm - </code></pre> </div> -<p>(light-on) See <a href="struts-default-vm.html">struts-default.vm</a> and the <em>Velocity</em> documentation for more information.</p> - +<blockquote> + <p>See <a href="struts-default-vm.html">struts-default.vm</a> and the <a href="velocity.html">Velocity</a> documentation for more information.</p> +</blockquote> </section> </article>