Author: cbrisson Date: Thu Jun 21 00:29:32 2018 New Revision: 1833964 URL: http://svn.apache.org/viewvc?rev=1833964&view=rev Log: [site] Push documentation changes to production
Removed: velocity/site/production/tools/devel/struts-user-guide.html velocity/site/production/tools/devel/struts.html Modified: velocity/site/production/tools/devel/changes.html velocity/site/production/tools/devel/creating-tools.html velocity/site/production/tools/devel/frameworks.html velocity/site/production/tools/devel/standalone.html velocity/site/production/tools/devel/upgrading.html velocity/site/production/tools/devel/view-layoutservlet.html velocity/site/production/tools/devel/view-servlet.html Modified: velocity/site/production/tools/devel/changes.html URL: http://svn.apache.org/viewvc/velocity/site/production/tools/devel/changes.html?rev=1833964&r1=1833963&r2=1833964&view=diff ============================================================================== --- velocity/site/production/tools/devel/changes.html (original) +++ velocity/site/production/tools/devel/changes.html Thu Jun 21 00:29:32 2018 @@ -279,9 +279,51 @@ h2:hover > .headerlink, h3:hover > .head <tbody> <tr> <td> + <img src="images/fix.png"/> + </td> + <td> Drop undocumented autoloaded tools feature, and have org.apache.velocity.tools.loadDefaults default to false . </td> + <td>cbrisson</td> + </tr> + <tr> + <td> + <img src="images/fix.png"/> + </td> + <td> Make tools-view initialization much pickier about file accesses, to ease the use of a Java SecurityManager . </td> + <td>cbrisson</td> + </tr> + <tr> + <td> + <img src="images/fix.png"/> + </td> + <td> Fixed BrowserTool Accept-Language header parsing . </td> + <td>cbrisson</td> + </tr> + <tr> + <td> + <img src="images/add.png"/> + </td> + <td> Added new <code> $conv.toList(obj) </code> method . </td> + <td>cbrisson</td> + </tr> + <tr> + <td> + <img src="images/add.png"/> + </td> + <td> Added <code> $browser.IPAddress </code> . </td> + <td>cbrisson</td> + </tr> + <tr> + <td> + <img src="images/fix.png"/> + </td> + <td> Removed deprecated components velocity-tools-uberjar and velocity-tools-assembly . </td> + <td>cbrisson</td> + </tr> + <tr> + <td> <img src="images/add.png"/> </td> - <td> ImportTool reenginering: <ul> <li> the ImportSupport utility class has been splitted between o.a.v.generic.ImportSupport and o.a.v.view.ViewImportSupport </li> <li> the ImportTool now has a generic version (for remote URLs import) and a view version (for local URLs import) which cannot use remote URLs in safe mode </li> </ul> . </td> + <td> ImportTool reenginering: <ul> <li> the ImportSupport utility class has been splitted between o.a.v.generic.ImportSupport and o.a.v.view.ViewImportSupport </li> <li> the ImportTool now has a generic version (for remote URLs import) and a view version (for local URLs import) which cannot use remote URLs in safe mode </li> <li> the local URLs import respects the 3.1 servlets specification: query parameters of the included URL do overwrite original ones </li> </ul> . </td> <td>cbrisson</td> </tr> <tr> Modified: velocity/site/production/tools/devel/creating-tools.html URL: http://svn.apache.org/viewvc/velocity/site/production/tools/devel/creating-tools.html?rev=1833964&r1=1833963&r2=1833964&view=diff ============================================================================== --- velocity/site/production/tools/devel/creating-tools.html (original) +++ velocity/site/production/tools/devel/creating-tools.html Thu Jun 21 00:29:32 2018 @@ -317,7 +317,7 @@ public class PagerTool </ul> <h3 id="be-robust">Be Robust<a class="headerlink" href="#be-robust" title="Permanent link">¶</a></h3> <p>Always return null on errors! No Exceptions! Ok, maybe there are some exceptions if you are sure that's what you want your tool to do. Just be aware that this will likely surprise the user because uncaught exceptions halt template processing at the point the exception is thrown. If the output of the template is not buffered, this will result in an awkward, partial rendering. So, if you are going to let an exception through, make sure it is worth halting everything for. Often it is sufficient to return null, thus allowing the failed reference to appear in the output like this:</p> -<div class="codehilite"><pre><span class="p">$</span><span class="nv">mytool</span><span class="p">.</span><span class="nv">somemethod</span><span class="p">(</span><span class="s1">'bad input'</span><span class="p">)</span><span class="x"></span> +<div class="codehilite"><pre>$mytool.somemethod('bad input') </pre></div> Modified: velocity/site/production/tools/devel/frameworks.html URL: http://svn.apache.org/viewvc/velocity/site/production/tools/devel/frameworks.html?rev=1833964&r1=1833963&r2=1833964&view=diff ============================================================================== --- velocity/site/production/tools/devel/frameworks.html (original) +++ velocity/site/production/tools/devel/frameworks.html Thu Jun 21 00:29:32 2018 @@ -229,13 +229,13 @@ h2:hover > .headerlink, h3:hover > .head <p>VelocityTools is not meant to be a framework in itself, but rather should ideally be integrated with other frameworks for applications of much size. The simplest means of integration is to have your framework handle requests, placing contextual data into the request, session or servlet context attributes where templates and/or tools can find them, then forward those requests to a VelocityViewServlet or VelocityLayoutServlet, letting those servlets manage your VelocityView support for you and render your templates into the response. If, however, your framework is one like Spring MVC and you either cannot or do not wish to forward requests to one of the provided servlets, then the instructions, tips and code below should make it easy for you to integrate VelocityTools support into your framework of choice.</p> <h2 id="integration-via-velocityview">Integration Via VelocityView<a class="headerlink" href="#integration-via-velocityview" title="Permanent link">¶</a></h2> <h3 id="configuring">Configuring<a class="headerlink" href="#configuring" title="Permanent link">¶</a></h3> -<p><a href="apidocs/org/apache/velocity/tools/view/VelocityView.html">VelocityView</a> supports the following configuration parameters as <init-param>s in web.xml:</p> +<p><a href="apidocs/org/apache/velocity/tools/view/VelocityView.html">VelocityView</a> supports the following configuration parameters as application <context-param>s or as specific servlet <init-param>s in web.xml:</p> <dl> -<dt>org.apache.velocity.toolbox</dt> +<dt><strong>org.apache.velocity.toolbox</strong></dt> <dd>Path and name of the toolbox configuration file. The path must be relative to the web application root directory. If this parameter is not found, the servlet will check for a toolbox file at <code>/WEB-INF/tools.xml</code>.</dd> -<dt>org.apache.velocity.properties</dt> +<dt><strong>org.apache.velocity.properties</strong></dt> <dd>Path and name of the Velocity configuration file. The path must be relative to the web application root directory. If this parameter is not present, Velocity will check for a properties file at <code>/WEB-INF/velocity.properties</code>. If no file is found there, then Velocity is initialized with the settings in the classpath at <code>org.apache.velocity.tools.view.velocity.properties</code>.</dd> -<dt>org.apache.velocity.tools.deprecationSupportMode</dt> +<dt><strong>org.apache.velocity.tools.deprecationSupportMode</strong></dt> <dd>Tells VelocityView whether or not it should</dd> <dd> <ul> @@ -255,11 +255,11 @@ h2:hover > .headerlink, h3:hover > .head <dd> <p>By default, this is true, so turn it to false if you want to fully upgrade to the new systems. Also, specific tools may look for and respect the deprecationSupportMode setting (e.g. ValueParser, ResourceTool) to provide old behavior where it has otherwise changed.</p> </dd> -<dt>org.apache.velocity.tools.loadDefaults</dt> -<dd>Tells VelocityView whether or not it should include the default tools.xml configurations provided in the VelocityTools jar(s). This is true by default.</dd> -<dt>org.apache.velocity.tools.cleanConfiguration</dt> +<dt><strong>org.apache.velocity.tools.loadDefaults</strong></dt> +<dd>Tells VelocityView whether or not it should include the default tools.xml configurations provided in the VelocityTools jar(s). This was true by default in 2.0, it's now false by default.</dd> +<dt><strong>org.apache.velocity.tools.cleanConfiguration</strong></dt> <dd>Tells VelocityView to test all the tool configurations and remove any invalid ones, rather than allow them to throw errors. This is false by default.</dd> -<dt>org.apache.velocity.tools.userCanOverwriteTools</dt> +<dt><strong>org.apache.velocity.tools.userCanOverwriteTools</strong></dt> <dd>Tells VelocityView to construct the context in such a way that any user-set variables with the same keys as any of the configured tools are given primacy when resolving references. This is true by default, unlike in Tools 1.x.</dd> </dl> <p>The VelocityView instance is typically the heart of any VelocityTools-using application. It encapsulates all necessary VelocityEngine and ToolboxFactory configuration and provides a simple API for processing templates or other VTL (e.g. VelocityViewTag body content).</p> Modified: velocity/site/production/tools/devel/standalone.html URL: http://svn.apache.org/viewvc/velocity/site/production/tools/devel/standalone.html?rev=1833964&r1=1833963&r2=1833964&view=diff ============================================================================== --- velocity/site/production/tools/devel/standalone.html (original) +++ velocity/site/production/tools/devel/standalone.html Thu Jun 21 00:29:32 2018 @@ -211,10 +211,10 @@ h2:hover > .headerlink, h3:hover > .head <p>There's nothing particularly special about the tools in VelocityTools 2. No special interfaces, most don't ''need'' any configuration or API access, and those that do are now relatively easy to handle (compared to VelocityTools 1.x). So, if you need a tool, just create an instance, do any configuration you want or need and go. Nothing else to it.</p> <h2 id="toolmanager">ToolManager<a class="headerlink" href="#toolmanager" title="Permanent link">¶</a></h2> <p>However, if you want to externalize your configuration or have your tools created and configured for you on demand and you are not working in a servlet environment, then we have created a simple ToolManager that you can use. It's relatively simple. Just create a ToolManager (can be created with or without default tools available), configure it (if you want to), ask it to create a context for you, and use the context as you would any other. Of course, there's more to it, but this should get you started:</p> -<div class="codehilite"><pre><span class="x">ToolManager manager = new ToolManager();</span> -<span class="x">manager.configure("/path/to/my/configuration.xml");</span> -<span class="x">Context context = manager.createContext();</span> -<span class="x">myVelocityEngine.evaluate(context, myOutputWriter, "This is a </span><span class="p">$</span><span class="nv">text</span><span class="p">.</span><span class="nv">test</span><span class="x">", "Test template");</span> +<div class="codehilite"><pre>ToolManager manager = new ToolManager(); +manager.configure("/path/to/my/configuration.xml"); +Context context = manager.createContext(); +myVelocityEngine.evaluate(context, myOutputWriter, "This is a $text.test", "Test template"); </pre></div> Modified: velocity/site/production/tools/devel/upgrading.html URL: http://svn.apache.org/viewvc/velocity/site/production/tools/devel/upgrading.html?rev=1833964&r1=1833963&r2=1833964&view=diff ============================================================================== --- velocity/site/production/tools/devel/upgrading.html (original) +++ velocity/site/production/tools/devel/upgrading.html Thu Jun 21 00:29:32 2018 @@ -228,6 +228,22 @@ h2:hover > .headerlink, h3:hover > .head <p>All objects, methods and configuration formats deprecated in 2.0 have been suppressed.</p> <p>Support for the Struts 1.x tools has been discontinued.</p> <p>For custom objects refering directly to the Velocity Engine API, please refer to the <a href="http://velocity.apache.org/engine/2.0/upgrading.html">Velocity Engine 2.0 Upgrading section</a>.</p> +<p>Default tools aren't loaded anymore in velocity-tools-view. To load them, you must enable default loading from your <code>WEB-INF/web.xml</code> file:</p> +<div class="codehilite"><pre><span class="nt"><context-param></span> + <span class="nt"><param-name></span>org.apache.velocity.tools.loadDefaults<span class="nt"></param-name></span> + <span class="nt"><param-value></span>true<span class="nt"></param-value></span> +<span class="nt"></context-param></span> +</pre></div> + + +<p>or do the same for a specific servlet inside its <code><servlet></code> tag:</p> +<div class="codehilite"><pre><span class="nt"><init-param></span> + <span class="nt"><param-name></span>org.apache.velocity.tools.loadDefaults<span class="nt"></param-name></span> + <span class="nt"><param-value></span>true<span class="nt"></param-value></span> +<span class="nt"></init-param></span> +</pre></div> + + <h2 id="upgrading-to-20">Upgrading to 2.0<a class="headerlink" href="#upgrading-to-20" title="Permanent link">¶</a></h2> <p>VelocityTools 2.0 marks the most significant set of upgrades and changes ever done for the VelocityTools library. In order to provide flexible configurations, lazy-loading for tools, and a host of other improvements, almost all of the tool management and configuration code from Tools 1.x has been deprecated and replaced by completely different APIs. Thankfully, we were able to continue supporting old toolbox.xml configuration files and old tool design patterns, though these too have been deprecated and are unable to take full advantage of many of the new features.</p> <p>Still, as such things have only been deprecated and not removed, <strong>the first step in upgrading to 2.0 is simply replacing your old VelocityTools jar with the 2.0 jar</strong>. If this causes any errors for you, please report them to u...@velocity.apache.org, so that we can fix it and help you work around it in the meantime.</p> Modified: velocity/site/production/tools/devel/view-layoutservlet.html URL: http://svn.apache.org/viewvc/velocity/site/production/tools/devel/view-layoutservlet.html?rev=1833964&r1=1833963&r2=1833964&view=diff ============================================================================== --- velocity/site/production/tools/devel/view-layoutservlet.html (original) +++ velocity/site/production/tools/devel/view-layoutservlet.html Thu Jun 21 00:29:32 2018 @@ -231,7 +231,7 @@ tools.view.servlet.layout.default.templa <h2 id="layouts">Layouts<a class="headerlink" href="#layouts" title="Permanent link">¶</a></h2> <p>Now, in your layout templates, the only thing you really need is the screen content reference. So an acceptable layout template could be:</p> -<div class="codehilite"><pre><span class="p">$</span><span class="nv">screen_content</span><span class="x"></span> +<div class="codehilite"><pre>$screen_content </pre></div> @@ -260,9 +260,9 @@ tools.view.servlet.layout.default.templa </li> </ol> <p>In the requested screen, put a line like this:</p> -<div class="codehilite"><pre><span class="x"> </span><span class="cp">#</span><span class="nf">set</span><span class="p">(</span> <span class="p">$</span><span class="nv">layout</span> <span class="o">=</span> <span class="s2">"MyOtherLayout.vm"</span> <span class="p">)</span><span class="x"></span> +<div class="codehilite"><pre> #set( $layout = "MyOtherLayout.vm" ) -<span class="x">This will direct the VLS to use "MyOtherLayout.vm" instead of "Default.vm". *Setting the layout in this fashion will override any layout set by the request parameters.*</span> +This will direct the VLS to use "MyOtherLayout.vm" instead of "Default.vm". *Setting the layout in this fashion will override any layout set by the request parameters.* </pre></div> @@ -330,13 +330,13 @@ $screen_content </tbody> </table> <p>In the event that a MethodInvocationException is behind the calling of error(), the root cause is extracted from it and dealt with as described above. But, since template reference behavior is partly at fault here, the VLS will also add the MethodInvocationException itself to the context as $invocation_exception. This allows you to discover the reference and method call that triggered the root cause. To get those, do something like this in your error template:</p> -<div class="codehilite"><pre><span class="cp">#</span><span class="nf">if</span><span class="p">(</span> <span class="p">$</span><span class="nv">invocation_exception</span> <span class="p">)</span><span class="x"></span> -<span class="x"> oh joy! it's a MethodInvocationException!</span> +<div class="codehilite"><pre>#if( $invocation_exception ) + oh joy! it's a MethodInvocationException! -<span class="x"> Message: </span><span class="p">$</span><span class="nv">invocation_exception</span><span class="p">.</span><span class="nv">message</span><span class="x"></span> -<span class="x"> Reference name: </span><span class="p">$</span><span class="nv">invocation_exception</span><span class="p">.</span><span class="nv">referenceName</span><span class="x"></span> -<span class="x"> Method name: </span><span class="p">$</span><span class="nv">invocation_exception</span><span class="p">.</span><span class="nv">methodName</span><span class="x"></span> -<span class="cp">#</span><span class="nf">end</span><span class="x"></span> + Message: $invocation_exception.message + Reference name: $invocation_exception.referenceName + Method name: $invocation_exception.methodName +#end </pre></div></div></div> <hr/> <div id="copyright"> Modified: velocity/site/production/tools/devel/view-servlet.html URL: http://svn.apache.org/viewvc/velocity/site/production/tools/devel/view-servlet.html?rev=1833964&r1=1833963&r2=1833964&view=diff ============================================================================== --- velocity/site/production/tools/devel/view-servlet.html (original) +++ velocity/site/production/tools/devel/view-servlet.html Thu Jun 21 00:29:32 2018 @@ -251,6 +251,19 @@ h2:hover > .headerlink, h3:hover > .head </pre></div> +<p>Please note that the <code>org.apache.velocity.toolbox</code> and <code>org.apache.velocity.properties</code> parameters can also be set as <code><context-params></code> at the application level as follow:</p> +<div class="codehilite"><pre><span class="nt"><context-param></span> + <span class="nt"><param-name></span>org.apache.velocity.toolbox<span class="nt"></param-name></span> + <span class="nt"><param-value></span>/WEB-INF/tools.xml<span class="nt"></param-value></span> +<span class="nt"></context-param></span> + +<span class="nt"><context-param></span> + <span class="nt"><param-name></span>org.apache.velocity.properties<span class="nt"></param-name></span> + <span class="nt"><param-value></span>/WEB-INF/velocity.properties<span class="nt"></param-value></span> +<span class="nt"></context-param></span> +</pre></div> + + <h3 id="velocity-configuration">Velocity Configuration<a class="headerlink" href="#velocity-configuration" title="Permanent link">¶</a></h3> <p>Velocity configuration is <strong>optional</strong>, and for most applications the defaults will work fine. The <strong>velocity.properties</strong> file contains settings that affect logging, encoding, and macro settings.</p> <p>The default configuration specifies the location of a 'global' Velocimacro template. This file can contain macros which will be made available to all templates.</p>