You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by cb...@apache.org on 2017/01/03 17:07:37 UTC

svn commit: r1777166 - in /velocity/site/production: engine/2.0/changes.html engine/2.0/developer-guide.html engine/devel/changes.html engine/devel/developer-guide.html release-process.html tools/devel/changes.html

Author: cbrisson
Date: Tue Jan  3 17:07:37 2017
New Revision: 1777166

URL: http://svn.apache.org/viewvc?rev=1777166&view=rev
Log:
[site] push markdown changes into production

Modified:
    velocity/site/production/engine/2.0/changes.html
    velocity/site/production/engine/2.0/developer-guide.html
    velocity/site/production/engine/devel/changes.html
    velocity/site/production/engine/devel/developer-guide.html
    velocity/site/production/release-process.html
    velocity/site/production/tools/devel/changes.html

Modified: velocity/site/production/engine/2.0/changes.html
URL: http://svn.apache.org/viewvc/velocity/site/production/engine/2.0/changes.html?rev=1777166&r1=1777165&r2=1777166&view=diff
==============================================================================
--- velocity/site/production/engine/2.0/changes.html (original)
+++ velocity/site/production/engine/2.0/changes.html Tue Jan  3 17:07:37 2017
@@ -317,6 +317,27 @@ h2:hover > .headerlink, h3:hover > .head
         <td>
           <img src="images/add.png"/>
         </td>
+        <td> Reviewed event handling API: <ul>  <li> added a Context argument for all events </li>  <li> got rid of the Executor pattern ; event handlers are directly called by the cartridge </li>  </ul>  . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Removed references to ExtProperties from the engine configuration API. . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Default encoding is now UTF-8. . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
         <td> Make Velocity use the base logger namespace 'org.apache.velocity' unless specified with runtime.log.name in the configuration, and have the runtime instance log with this base namespace, and other modules log with children namespaces: <ul>  <li> directive, and velocity.directive.[directivename] </li>  <li> parser </li>  <li> loader and loader.[loadername] </li>  <li> macro </li>  <li> rendering </li>  <li> event </li>  </ul> Get rid of UberspectLoggable interface. . </td>
         <td>cbrisson</td>
       </tr>
@@ -464,7 +485,7 @@ h2:hover > .headerlink, h3:hover > .head
         <td>
           <img src="images/add.png"/>
         </td>
-        <td> The ResourceLoader API now provides a Reader rather than an InputStream. The InputStream getter method has been deprecated. Also fixes VELOCITY-599. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-793">VELOCITY-793</a>. </td>
+        <td> The ResourceLoader API now provides a Reader rather than an InputStream. Also fixes VELOCITY-599. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-793">VELOCITY-793</a>. </td>
         <td>cbrisson</td>
       </tr>
       <tr>
@@ -587,13 +608,6 @@ h2:hover > .headerlink, h3:hover > .head
         <td>apetrelli</td>
       </tr>
       <tr>
-        <td>
-          <img src="images/add.png"/>
-        </td>
-        <td> Shading of Commons Lang and Commons Collections . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-789">VELOCITY-789</a>. </td>
-        <td>apetrelli</td>
-      </tr>
-      <tr>
         <td>
           <img src="images/add.png"/>
         </td>

Modified: velocity/site/production/engine/2.0/developer-guide.html
URL: http://svn.apache.org/viewvc/velocity/site/production/engine/2.0/developer-guide.html?rev=1777166&r1=1777165&r2=1777166&view=diff
==============================================================================
--- velocity/site/production/engine/2.0/developer-guide.html (original)
+++ velocity/site/production/engine/2.0/developer-guide.html Tue Jan  3 17:07:37 2017
@@ -272,7 +272,6 @@ h2:hover > .headerlink, h3:hover > .head
 <li><a href="#orgapachevelocityappeventincludeeventhandler">org.apache.velocity.app.event.IncludeEventHandler</a></li>
 <li><a href="#orgapachevelocityappeventinvalidreferenceeventhandler">org.apache.velocity.app.event.InvalidReferenceEventHandler</a></li>
 <li><a href="#orgapachevelocityappeventmethodexceptioneventhandler">org.apache.velocity.app.event.MethodExceptionEventHandler</a></li>
-<li><a href="#orgapachevelocityappeventnullseteventhandler">org.apache.velocity.app.event.NullSetEventHandler</a></li>
 <li><a href="#orgapachevelocityappeventreferenceinsertioneventhandler">org.apache.velocity.app.event.ReferenceInsertionEventHandler</a></li>
 <li><a href="#registering-event-handlers">Registering Event Handlers</a></li>
 </ul>
@@ -713,28 +712,30 @@ see the Javadoc API documentation.</p>
 </pre></div>
 
 
-<p>And, assuming you have a directory <code>/opt/templates</code> and the template <code>testtemplate.vm</code> is in there, then things would work just fine. If you try this and have a problem, be sure to look at the velocity.log for information - the error messages are pretty good for figuring out what is wrong.</p>
-<p>If you need to place objects into the Velocity properties then you cannot use the Velocity.init(Properties p) method.  Instead you should create a new instance of the <code>org.apache.velocity.util.ExtProperties</code> class, copy all properties from an existing Properties object into the ExtProperties and then add new properties with your objects to the ExtProperties object.</p>
-<div class="codehilite"><pre> ...
+<p>And the same if you want to use a VelocityEngine object rather than the singleton engine:</p>
+<div class="codehilite"><pre> <span class="o">...</span>
 
-VelocityEngine velocityEngine = new VelocityEngine();
-ExtProperties eprops = null;
-if (props==null) {
-   eprops = new ExtProperties();
-} else {
-   eprops = ExtProperties.convertProperties(props);
-}
+<span class="kn">import</span> <span class="nn">java.util.Properties</span><span class="p">;</span>
+ <span class="o">...</span>
 
-// Now set the property with your object instance
-eprops.setProperty(&quot;name&quot;, object);
+<span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span> <span class="n">String</span> <span class="n">args</span><span class="p">[]</span> <span class="p">)</span>
+<span class="p">{</span>
+    <span class="o">/*</span> <span class="n">first</span><span class="p">,</span> <span class="n">we</span> <span class="n">init</span> <span class="n">the</span> <span class="n">runtime</span> <span class="n">engine</span><span class="o">.</span>  <span class="o">*/</span>
+
+    <span class="n">Properties</span> <span class="n">p</span> <span class="o">=</span> <span class="n">new</span> <span class="n">Properties</span><span class="p">();</span>
+    <span class="n">p</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">&quot;file.resource.loader.path&quot;</span><span class="p">,</span> <span class="s2">&quot;/opt/templates&quot;</span><span class="p">);</span>
+    <span class="n">VelocityEngine</span> <span class="n">engine</span> <span class="o">=</span> <span class="n">new</span> <span class="n">VelocityEngine</span><span class="p">();</span>
+    <span class="n">engine</span><span class="o">.</span><span class="n">init</span><span class="p">(</span> <span class="n">p</span> <span class="p">);</span>
+
+    <span class="o">/*</span> <span class="n">lets</span> <span class="n">make</span> <span class="n">a</span> <span class="n">Context</span> <span class="ow">and</span> <span class="n">put</span> <span class="n">data</span> <span class="n">into</span> <span class="n">it</span> <span class="o">*/</span>
 
-...
-velocityEngine.setExtendedProperties(eprops);
-velocityEngine.init();
-...
+<span class="o">...</span>
 </pre></div>
 
 
+<p>And, assuming you have a directory <code>/opt/templates</code> and the template <code>testtemplate.vm</code> is in there, then things would work just fine. If you try this and have a problem, be sure to look at the velocity.log for information - the error messages are pretty good for figuring out what is wrong.</p>
+<p>If you need to place objects into the Velocity properties, you may do so: the <code>java.util.Properties</code> class <em>does</em> accept Object values (which will only invalidate the use of its <code>load</code> and <code>store</code> methods).</p>
+<p>To combine multiple properties files, you may call several times <code>setProperties(Properties)</code>, <code>setProperty(String, Object)</code> or <code>addProperty(String, Object)</code> before calling <code>init()</code>.</p>
 <p>You may want to also consider using the Application Attributes feature described in the following section.</p>
 <h2 id="logging">Logging<a class="headerlink" href="#logging" title="Permanent link">&para;</a></h2>
 <p>Since version 2.0, Velocity has switched to the <a href="http://www.slf4j.org/">SLF4J</a> logging facade.</p>
@@ -1060,14 +1061,16 @@ velocityEngine.init();
 
 <p>Note that internal components cannot set the value of the key, just get it. if the internal component must communicate information to the application layer, it must do so via the Object passed as the value.</p>
 <h2 id="event-handlers">Event Handlers<a class="headerlink" href="#event-handlers" title="Permanent link">&para;</a></h2>
-<p>Velocity contains a fine-grained event handling system that allows you to customize the operation of the engine.  For example, you may change the text of references that are inserted into a page, modify which templates are actually included with <code>#include</code> or <code>#parse</code>, or capture all invalid references.</p>
+<p>Velocity contains a fine-grained event handling system that allows you to customize the operation of the engine. Those events are synchronous, and act as callback handlers.</p>
+<p>For example, you may change the text of references that are inserted into a page, modify which templates are actually included with <code>#include</code> or <code>#parse</code>, or capture all invalid references.</p>
 <p>All event handler interfaces available in Velocity are in the package <code>org.apache.velocity.app.event</code>.  You may create your own implementation or use one of the sample implementations in the package <code>org.apache.velocity.app.event.implement</code>.  (See the javadocs for more details on the provided implementations).</p>
 <h3 id="orgapachevelocityappeventincludeeventhandler"><code>org.apache.velocity.app.event.IncludeEventHandler</code><a class="headerlink" href="#orgapachevelocityappeventincludeeventhandler" title="Permanent link">&para;</a></h3>
 <blockquote>
 <p>The <code>IncludeEventHandler</code> can be used to modify the template that is included in a page with <code>#include</code> or <code>#parse</code>.  For example, this may be used to make all includes relative to the current directory or to prevent access to unauthorized resources. Multiple <code>IncludeEventHandler</code>'s may be chained, with the return value of the final call used as the name of the template to retrieve.</p>
 <div class="codehilite"><pre>public IncludeEventHandler extends EventHandler
 {
-    public String includeEvent( String includeResourcePath, 
+    public String includeEvent( Context context,
+                                String includeResourcePath, 
                                 String currentResourcePath, 
                                 String directiveName );
 }
@@ -1115,7 +1118,8 @@ velocityEngine.init();
 <p>When a user-supplied method throws an exception, the <code>MethodExceptionEventHandler</code> is invoked with the Class, method name and thrown Exception.  The handler can either return a valid Object to be used as the return value of the method call or throw the passed-in or new Exception, which will be wrapped and propogated to the user as a <code>MethodInvocationException</code>.  While <code>MethodExceptionEventHandler</code>'s can be chained only the first handler is actually called -- all others are ignored.</p>
 <div class="codehilite"><pre>public interface MethodExceptionEventHandler extends EventHandler
 {
-    public Object methodException( Class claz, 
+    public Object methodException( Context context,
+                                   Class claz, 
                                    String method, 
                                    Exception e )
          throws Exception;
@@ -1128,28 +1132,13 @@ velocityEngine.init();
 <li><code>org.apache.velocity.app.event.implement.PrintExceptions</code></li>
 </ul>
 </blockquote>
-<h3 id="orgapachevelocityappeventnullseteventhandler"><code>org.apache.velocity.app.event.NullSetEventHandler</code><a class="headerlink" href="#orgapachevelocityappeventnullseteventhandler" title="Permanent link">&para;</a></h3>
-<blockquote>
-<p>When a #set() rejects an assignment due to the right hand side being an invalid or null reference, this is normally logged.  The <code>NullSetEventHandler</code> allows you to 'veto' the logging of this condition.  Multiple <code>NullSetEventHandler</code>'s can be chained; each event handler is called in sequence until a false is returned.</p>
-<div class="codehilite"><pre>public interface NullSetEventHandler extends EventHandler
-{
-    public boolean shouldLogOnNullSet( String lhs, 
-                                       String rhs );
-}
-</pre></div>
-
-
-<p>Available implementations include:</p>
-<ul>
-<li><em>none provided</em></li>
-</ul>
-</blockquote>
 <h3 id="orgapachevelocityappeventreferenceinsertioneventhandler"><code>org.apache.velocity.app.event.ReferenceInsertionEventHandler</code><a class="headerlink" href="#orgapachevelocityappeventreferenceinsertioneventhandler" title="Permanent link">&para;</a></h3>
 <blockquote>
 <p>A <code>ReferenceInsertionEventHandler</code> allows the developer to intercept each write of a reference ($foo) value to the output stream and modify that output.  Multiple <code>ReferenceInsertionEventHandler</code>'s may be chained with each step potentially altering the inserted reference.</p>
 <div class="codehilite"><pre>public interface  ReferenceInsertionEventHandler extends EventHandler
 {
-    public Object referenceInsert( String reference, 
+    public Object referenceInsert( Context context,
+                                     String reference, 
                                    Object value  );
 }
 </pre></div>

Modified: velocity/site/production/engine/devel/changes.html
URL: http://svn.apache.org/viewvc/velocity/site/production/engine/devel/changes.html?rev=1777166&r1=1777165&r2=1777166&view=diff
==============================================================================
--- velocity/site/production/engine/devel/changes.html (original)
+++ velocity/site/production/engine/devel/changes.html Tue Jan  3 17:07:37 2017
@@ -317,6 +317,20 @@ h2:hover > .headerlink, h3:hover > .head
         <td>
           <img src="images/add.png"/>
         </td>
+        <td> Reviewed event handling API: <ul>  <li> added a Context argument for all events </li>  <li> got rid of the Executor pattern ; event handlers are directly called by the cartridge </li>  </ul>  . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Removed references to ExtProperties from the engine configuration API. . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
         <td> Default encoding is now UTF-8. . </td>
         <td>cbrisson</td>
       </tr>

Modified: velocity/site/production/engine/devel/developer-guide.html
URL: http://svn.apache.org/viewvc/velocity/site/production/engine/devel/developer-guide.html?rev=1777166&r1=1777165&r2=1777166&view=diff
==============================================================================
--- velocity/site/production/engine/devel/developer-guide.html (original)
+++ velocity/site/production/engine/devel/developer-guide.html Tue Jan  3 17:07:37 2017
@@ -272,7 +272,6 @@ h2:hover > .headerlink, h3:hover > .head
 <li><a href="#orgapachevelocityappeventincludeeventhandler">org.apache.velocity.app.event.IncludeEventHandler</a></li>
 <li><a href="#orgapachevelocityappeventinvalidreferenceeventhandler">org.apache.velocity.app.event.InvalidReferenceEventHandler</a></li>
 <li><a href="#orgapachevelocityappeventmethodexceptioneventhandler">org.apache.velocity.app.event.MethodExceptionEventHandler</a></li>
-<li><a href="#orgapachevelocityappeventnullseteventhandler">org.apache.velocity.app.event.NullSetEventHandler</a></li>
 <li><a href="#orgapachevelocityappeventreferenceinsertioneventhandler">org.apache.velocity.app.event.ReferenceInsertionEventHandler</a></li>
 <li><a href="#registering-event-handlers">Registering Event Handlers</a></li>
 </ul>
@@ -713,28 +712,30 @@ see the Javadoc API documentation.</p>
 </pre></div>
 
 
-<p>And, assuming you have a directory <code>/opt/templates</code> and the template <code>testtemplate.vm</code> is in there, then things would work just fine. If you try this and have a problem, be sure to look at the velocity.log for information - the error messages are pretty good for figuring out what is wrong.</p>
-<p>If you need to place objects into the Velocity properties then you cannot use the Velocity.init(Properties p) method.  Instead you should create a new instance of the <code>org.apache.velocity.util.ExtProperties</code> class, copy all properties from an existing Properties object into the ExtProperties and then add new properties with your objects to the ExtProperties object.</p>
-<div class="codehilite"><pre> ...
+<p>And the same if you want to use a VelocityEngine object rather than the singleton engine:</p>
+<div class="codehilite"><pre> <span class="o">...</span>
 
-VelocityEngine velocityEngine = new VelocityEngine();
-ExtProperties eprops = null;
-if (props==null) {
-   eprops = new ExtProperties();
-} else {
-   eprops = ExtProperties.convertProperties(props);
-}
+<span class="kn">import</span> <span class="nn">java.util.Properties</span><span class="p">;</span>
+ <span class="o">...</span>
 
-// Now set the property with your object instance
-eprops.setProperty(&quot;name&quot;, object);
+<span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span> <span class="n">String</span> <span class="n">args</span><span class="p">[]</span> <span class="p">)</span>
+<span class="p">{</span>
+    <span class="o">/*</span> <span class="n">first</span><span class="p">,</span> <span class="n">we</span> <span class="n">init</span> <span class="n">the</span> <span class="n">runtime</span> <span class="n">engine</span><span class="o">.</span>  <span class="o">*/</span>
+
+    <span class="n">Properties</span> <span class="n">p</span> <span class="o">=</span> <span class="n">new</span> <span class="n">Properties</span><span class="p">();</span>
+    <span class="n">p</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">&quot;file.resource.loader.path&quot;</span><span class="p">,</span> <span class="s2">&quot;/opt/templates&quot;</span><span class="p">);</span>
+    <span class="n">VelocityEngine</span> <span class="n">engine</span> <span class="o">=</span> <span class="n">new</span> <span class="n">VelocityEngine</span><span class="p">();</span>
+    <span class="n">engine</span><span class="o">.</span><span class="n">init</span><span class="p">(</span> <span class="n">p</span> <span class="p">);</span>
+
+    <span class="o">/*</span> <span class="n">lets</span> <span class="n">make</span> <span class="n">a</span> <span class="n">Context</span> <span class="ow">and</span> <span class="n">put</span> <span class="n">data</span> <span class="n">into</span> <span class="n">it</span> <span class="o">*/</span>
 
-...
-velocityEngine.setExtendedProperties(eprops);
-velocityEngine.init();
-...
+    <span class="o">...</span>
 </pre></div>
 
 
+<p>And, assuming you have a directory <code>/opt/templates</code> and the template <code>testtemplate.vm</code> is in there, then things would work just fine. If you try this and have a problem, be sure to look at the velocity.log for information - the error messages are pretty good for figuring out what is wrong.</p>
+<p>If you need to place objects into the Velocity properties, you may do so: the <code>java.util.Properties</code> class <em>does</em> accept Object values (which will only invalidate the use of its <code>load</code> and <code>store</code> methods).</p>
+<p>To combine multiple properties files, you may call several times <code>setProperties(Properties)</code>, <code>setProperty(String, Object)</code> or <code>addProperty(String, Object)</code> before calling <code>init()</code>.</p>
 <p>You may want to also consider using the Application Attributes feature described in the following section.</p>
 <h2 id="logging">Logging<a class="headerlink" href="#logging" title="Permanent link">&para;</a></h2>
 <p>Since version 2.0, Velocity has switched to the <a href="http://www.slf4j.org/">SLF4J</a> logging facade.</p>
@@ -1060,14 +1061,16 @@ velocityEngine.init();
 
 <p>Note that internal components cannot set the value of the key, just get it. if the internal component must communicate information to the application layer, it must do so via the Object passed as the value.</p>
 <h2 id="event-handlers">Event Handlers<a class="headerlink" href="#event-handlers" title="Permanent link">&para;</a></h2>
-<p>Velocity contains a fine-grained event handling system that allows you to customize the operation of the engine.  For example, you may change the text of references that are inserted into a page, modify which templates are actually included with <code>#include</code> or <code>#parse</code>, or capture all invalid references.</p>
+<p>Velocity contains a fine-grained event handling system that allows you to customize the operation of the engine. Those events are synchronous, and act as callback handlers.</p>
+<p>For example, you may change the text of references that are inserted into a page, modify which templates are actually included with <code>#include</code> or <code>#parse</code>, or capture all invalid references.</p>
 <p>All event handler interfaces available in Velocity are in the package <code>org.apache.velocity.app.event</code>.  You may create your own implementation or use one of the sample implementations in the package <code>org.apache.velocity.app.event.implement</code>.  (See the javadocs for more details on the provided implementations).</p>
 <h3 id="orgapachevelocityappeventincludeeventhandler"><code>org.apache.velocity.app.event.IncludeEventHandler</code><a class="headerlink" href="#orgapachevelocityappeventincludeeventhandler" title="Permanent link">&para;</a></h3>
 <blockquote>
 <p>The <code>IncludeEventHandler</code> can be used to modify the template that is included in a page with <code>#include</code> or <code>#parse</code>.  For example, this may be used to make all includes relative to the current directory or to prevent access to unauthorized resources. Multiple <code>IncludeEventHandler</code>'s may be chained, with the return value of the final call used as the name of the template to retrieve.</p>
 <div class="codehilite"><pre>public IncludeEventHandler extends EventHandler
 {
-    public String includeEvent( String includeResourcePath, 
+    public String includeEvent( Context context,
+                                String includeResourcePath, 
                                 String currentResourcePath, 
                                 String directiveName );
 }
@@ -1115,7 +1118,8 @@ velocityEngine.init();
 <p>When a user-supplied method throws an exception, the <code>MethodExceptionEventHandler</code> is invoked with the Class, method name and thrown Exception.  The handler can either return a valid Object to be used as the return value of the method call or throw the passed-in or new Exception, which will be wrapped and propogated to the user as a <code>MethodInvocationException</code>.  While <code>MethodExceptionEventHandler</code>'s can be chained only the first handler is actually called -- all others are ignored.</p>
 <div class="codehilite"><pre>public interface MethodExceptionEventHandler extends EventHandler
 {
-    public Object methodException( Class claz, 
+    public Object methodException( Context context,
+                                   Class claz, 
                                    String method, 
                                    Exception e )
          throws Exception;
@@ -1128,28 +1132,13 @@ velocityEngine.init();
 <li><code>org.apache.velocity.app.event.implement.PrintExceptions</code></li>
 </ul>
 </blockquote>
-<h3 id="orgapachevelocityappeventnullseteventhandler"><code>org.apache.velocity.app.event.NullSetEventHandler</code><a class="headerlink" href="#orgapachevelocityappeventnullseteventhandler" title="Permanent link">&para;</a></h3>
-<blockquote>
-<p>When a #set() rejects an assignment due to the right hand side being an invalid or null reference, this is normally logged.  The <code>NullSetEventHandler</code> allows you to 'veto' the logging of this condition.  Multiple <code>NullSetEventHandler</code>'s can be chained; each event handler is called in sequence until a false is returned.</p>
-<div class="codehilite"><pre>public interface NullSetEventHandler extends EventHandler
-{
-    public boolean shouldLogOnNullSet( String lhs, 
-                                       String rhs );
-}
-</pre></div>
-
-
-<p>Available implementations include:</p>
-<ul>
-<li><em>none provided</em></li>
-</ul>
-</blockquote>
 <h3 id="orgapachevelocityappeventreferenceinsertioneventhandler"><code>org.apache.velocity.app.event.ReferenceInsertionEventHandler</code><a class="headerlink" href="#orgapachevelocityappeventreferenceinsertioneventhandler" title="Permanent link">&para;</a></h3>
 <blockquote>
 <p>A <code>ReferenceInsertionEventHandler</code> allows the developer to intercept each write of a reference ($foo) value to the output stream and modify that output.  Multiple <code>ReferenceInsertionEventHandler</code>'s may be chained with each step potentially altering the inserted reference.</p>
 <div class="codehilite"><pre>public interface  ReferenceInsertionEventHandler extends EventHandler
 {
-    public Object referenceInsert( String reference, 
+    public Object referenceInsert( Context context,
+                                     String reference, 
                                    Object value  );
 }
 </pre></div>

Modified: velocity/site/production/release-process.html
URL: http://svn.apache.org/viewvc/velocity/site/production/release-process.html?rev=1777166&r1=1777165&r2=1777166&view=diff
==============================================================================
--- velocity/site/production/release-process.html (original)
+++ velocity/site/production/release-process.html Tue Jan  3 17:07:37 2017
@@ -317,6 +317,15 @@ h2:hover > .headerlink, h3:hover > .head
 <p>These steps must be performed <strong>for each</strong> release.</p>
 <ul>
 <li>
+<p>Archive the previous release candidate</p>
+<p>If it's not the first release candidate you're trying to release, you should archive the previous release candidate. For instance:</p>
+<div class="codehilite"><pre>svn mv ci -m &quot;[engine] archive engine 2.0 RC4&quot; https://_your_apache_id_@svn.apache.org/repos/asf/velocity/engine/tags/2.0 https://_your_apache_id_@svn.apache.org/repos/asf/velocity/engine/tags/2.0-RC4
+</pre></div>
+
+
+<p>And don't forget to also drop the staged artifact.</p>
+</li>
+<li>
 <p>Prepare the release tag</p>
 <p>To prepare the release Subversion tag, check out the branch/trunk from where
 you are preparing the release and type:</p>
@@ -336,7 +345,7 @@ you are preparing the release and type:<
 </li>
 <li>
 <p>Close the staging repository</p>
-<p>Login to {{{https://repository.apache.org using} Nexus repository}} your Apache LDAP credentials.</p>
+<p>Login to <a href="https://repository.apache.org">Nexus repository</a> using your Apache LDAP credentials.</p>
 <p>Click on "Staging". Then click on "velocity" in the list of repositories.</p>
 <p>In the panel below you should see an open repository that is linked to your username and ip.</p>
 <p>Right click on this repository and select "Close".</p>
@@ -350,7 +359,7 @@ you are preparing the release and type:<
 <p>If you click on your repository, a tree view will appear below.</p>
 <p>You can then browse the contents to ensure the artifacts are as you expect them.</p>
 <p>Pay particular attention to the existence of *.asc (signature) files.</p>
-<p>If the you don't like the content of the repository, right click your repository and choose "Drop".</p>
+<p>If you don't like the content of the repository, right click your repository and choose "Drop".</p>
 <p>You can then rollback your release and repeat the process.</p>
 <p>Note the repository URL, you will need this in your vote email.</p>
 </li>
@@ -471,7 +480,7 @@ Everyone who has tested the build is inv
 <li>Promote staged artifacts</li>
 </ul>
 <p>Once the release is deemed fit for public consumption it can be transfered to a production repository where it will be available to all users.</p>
-<p>Login to {{{https://repository.apache.org}Nexus repository}} again.</p>
+<p>Login to <a href="https://repository.apache.org">Nexus repository</a> again.</p>
 <p>Click on "Staging" and then on the repository with id "velocity-staging".</p>
 <p>Find your closed staging repository, right click on it and choose "Promote".</p>
 <p>Select the "Releases" repository and click "Promote".</p>

Modified: velocity/site/production/tools/devel/changes.html
URL: http://svn.apache.org/viewvc/velocity/site/production/tools/devel/changes.html?rev=1777166&r1=1777165&r2=1777166&view=diff
==============================================================================
--- velocity/site/production/tools/devel/changes.html (original)
+++ velocity/site/production/tools/devel/changes.html Tue Jan  3 17:07:37 2017
@@ -279,6 +279,69 @@ h2:hover > .headerlink, h3:hover > .head
     <tbody>
       <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>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> XmlTool now uses the standard JRE XML parser instead of the org.jdom API ; it is now in two flavors, the generic tools one and the view tools one. The view tools flavor allows the parsing of http query xml post data. . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Added a new JsonTool for parsing json. It is in two flavors, the generic tools one and the view tools one. The view tools flavor allows the parsing of http query json post data. . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Added an EscapeTool.unurl(String) unescaping method . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Deprecated ConversionTool: date/time parsing and formatting methods belong to DateTool, while number parsing and formatting methods belong to NumberTool ; toLocale() method is now in LocaleConfig . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Deprecated SortTool, and added a CollectionTool to gather lists sorting/splitting methods . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Deprecated MathTool number parsing methods, which are redundant with NumberTool ones . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> Deprecated AlternateTool . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
+          <img src="images/add.png"/>
+        </td>
+        <td> DateTool reenginering: <ul>  <li> added iso and iso_tz date/datetime standard formats </li>  <li> added intl and intl_tz for human-readable international format (time zone displayed by id) </li>  </ul>  . </td>
+        <td>cbrisson</td>
+      </tr>
+      <tr>
+        <td>
           <img src="images/fix.png"/>
         </td>
         <td> use static logging in Tools classes . </td>