Author: cbrisson
Date: Wed Jul 20 14:44:53 2016
New Revision: 1753524
URL: http://svn.apache.org/viewvc?rev=1753524&view=rev
Log:
[site] push last changes in prod
Added:
velocity/site/production/engine/devel/configuration.html
Modified:
velocity/site/production/engine/devel/build.html
velocity/site/production/engine/devel/changes.html
velocity/site/production/engine/devel/dependencies.html
velocity/site/production/engine/devel/developer-guide.html
velocity/site/production/engine/devel/getting-started.html
velocity/site/production/engine/devel/glossary.html
velocity/site/production/engine/devel/index.html
velocity/site/production/engine/devel/left.nav
velocity/site/production/engine/devel/license.html
velocity/site/production/engine/devel/overview.html
velocity/site/production/engine/devel/source-repository.html
velocity/site/production/engine/devel/upgrading.html
velocity/site/production/engine/devel/user-guide.html
velocity/site/production/engine/devel/vtl-reference.html
velocity/site/production/engine/devel/webapps.html
Modified: velocity/site/production/engine/devel/build.html
URL:
http://svn.apache.org/viewvc/velocity/site/production/engine/devel/build.html?rev=1753524&r1=1753523&r2=1753524&view=diff
==============================================================================
--- velocity/site/production/engine/devel/build.html (original)
+++ velocity/site/production/engine/devel/build.html Wed Jul 20 14:44:53 2016
@@ -170,6 +170,7 @@ h2:hover > .headerlink, h3:hover > .head
<li><a href="user-guide.html">User Guide</a></li>
<li><a href="developer-guide.html">Developer Guide</a></li>
<li><a href="vtl-reference.html">VTL Reference</a></li>
+<li><a href="configuration.html">Configuration</a></li>
<li><a href="glossary.html">Glossary</a></li>
<li><a href="apidocs/index.html">Javadoc</a></li>
</ul>
@@ -229,7 +230,7 @@ h2:hover > .headerlink, h3:hover > .head
<h2 id="required-tools">Required Tools<a class="headerlink"
href="#required-tools" title="Permanent link">¶</a></h2>
<p>To build Velocity we require <a href="http://maven.apache.org/">Maven</a>
version 2.2.1 or higher (Maven 3 can be used too) to perform the build process.
We assume that you have followed Maven's installation instructions and have it
properly installed.</p>
<p>Velocity requires JDK 1.6 or greater to compile.</p>
-<p>Finally, if you wish to modify Velocity's grammar you will need to a tool
called <a href="http://javacc.dev.java.net">JavaCC</a>. We recommend version
3.2 or greater (for compatibility with JDK 1.5 syntax changes).</p>
+<p>Finally, if you wish to modify Velocity's grammar you will need to a tool
called <a href="http://javacc.dev.java.net">JavaCC</a>. We recommend version
3.2 or greater.</p>
<h2 id="building">Building<a class="headerlink" href="#building"
title="Permanent link">¶</a></h2>
<p>In each case below, it is assumed that you were successful in getting the
distribution from Subversion, and were successful in unpacking. Also, it is
assumed that you are starting in the 'velocity' directory, the root of the
distribution tree. All directory references will be relative to 'velocity'.</p>
<p>Change to the <strong>build</strong> directory (<code>cd build</code>).
Then, to build the jar file, simply type:</p>
Modified: velocity/site/production/engine/devel/changes.html
URL:
http://svn.apache.org/viewvc/velocity/site/production/engine/devel/changes.html?rev=1753524&r1=1753523&r2=1753524&view=diff
==============================================================================
--- velocity/site/production/engine/devel/changes.html (original)
+++ velocity/site/production/engine/devel/changes.html Wed Jul 20 14:44:53 2016
@@ -170,6 +170,7 @@ h2:hover > .headerlink, h3:hover > .head
<li><a href="user-guide.html">User Guide</a></li>
<li><a href="developer-guide.html">Developer Guide</a></li>
<li><a href="vtl-reference.html">VTL Reference</a></li>
+<li><a href="configuration.html">Configuration</a></li>
<li><a href="glossary.html">Glossary</a></li>
<li><a href="apidocs/index.html">Javadoc</a></li>
</ul>
@@ -314,6 +315,13 @@ h2:hover > .headerlink, h3:hover > .head
<tbody>
<tr>
<td>
+ <img src="images/fix.png"/>
+ </td>
+ <td> Applied performance patch for MapGetExecutor: it's faster to
directly use object instance rather than to inspect all public interfaces .
Fixes <a
href="https://issues.apache.org/jira/browse/VELOCITY-815">VELOCITY-815</a>.
Thanks to Oswaldo Hernandez.</td>
+ <td>cbrisson</td>
+ </tr>
+ <tr>
+ <td>
<img src="images/add.png"/>
</td>
<td> The new configuration property context.autoreference.key, if
present, allows to specify the name of the reference under which the context is
accessible in itself . Fixes <a
href="https://issues.apache.org/jira/browse/VELOCITY-799">VELOCITY-799</a>.
</td>
Added: velocity/site/production/engine/devel/configuration.html
URL:
http://svn.apache.org/viewvc/velocity/site/production/engine/devel/configuration.html?rev=1753524&view=auto
==============================================================================
--- velocity/site/production/engine/devel/configuration.html (added)
+++ velocity/site/production/engine/devel/configuration.html Wed Jul 20
14:44:53 2016
@@ -0,0 +1,576 @@
+<!DOCTYPE html>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+<html lang="en">
+ <head>
+ <title>Apache Velocity Engine - Configuration</title>
+
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+ <meta property="og:image"
content="http://www.apache.org/images/asf_logo.gif" />
+
+ <link rel="stylesheet" type="text/css" href="/css/site.css">
+
+
+
+
+
+ </head>
+
+ <body>
+ <div id="page">
+ <div id="header">
+
+ <div id="logo2"><img
src="/engine/devel/images/velocity-logo.png"/></div>
+
+ <a href="/">
+<svg height="60" width="50%" viewBox="20 20 800 110"
preserveAspectRatio="xMinYMin">
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="1395.619" x2="-4570.1162" y1="697.55487" x1="-5167.0962"
gradientUnits="userSpaceOnUse" id="SVGID_1_">
+ <stop id="stop3521" style="stop-color:#F69923" offset="0" />
+ <stop id="stop3523" style="stop-color:#F79A23" offset="0.3123" />
+ <stop id="stop3525" style="stop-color:#E97826" offset="0.8383" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="620.50482" x2="-5326.209" y1="620.50482" x1="-9585.3418"
gradientUnits="userSpaceOnUse" id="SVGID_2_">
+ <stop id="stop3546" style="stop-color:#9E2064" offset="0.3233" />
+ <stop id="stop3548" style="stop-color:#C92037" offset="0.6302" />
+ <stop id="stop3550" style="stop-color:#CD2335" offset="0.7514" />
+ <stop id="stop3552" style="stop-color:#E97826" offset="1" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="1047.6898" x2="-6533.1782" y1="1047.6898" x1="-9071.207"
gradientUnits="userSpaceOnUse" id="SVGID_3_">
+ <stop id="stop3557" style="stop-color:#282662" offset="0" />
+ <stop id="stop3559" style="stop-color:#662E8D" offset="9.548390e-02" />
+ <stop id="stop3561" style="stop-color:#9F2064" 1 offset="0.7882" />
+ <stop id="stop3563" style="stop-color:#CD2032" offset="0.9487" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="580.81702" x2="-5086.9941" y1="580.81702" x1="-9346.126"
gradientUnits="userSpaceOnUse" id="SVGID_4_">
+ <stop id="stop3568" style="stop-color:#9E2064" offset="0.3233" />
+ <stop id="stop3570" style="stop-color:#C92037" offset="0.6302" />
+ <stop id="stop3572" style="stop-color:#CD2335" offset="0.7514" />
+ <stop id="stop3574" style="stop-color:#E97826" offset="1" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="638.4408" x2="-6797.2012" y1="638.4408" x1="-9035.5029"
gradientUnits="userSpaceOnUse" id="SVGID_5_">
+ <stop id="stop3579" style="stop-color:#282662" offset="0" />
+ <stop id="stop3581" style="stop-color:#662E8D" offset="9.548390e-02" />
+ <stop id="stop3583" style="stop-color:#9F2064" offset="0.7882" />
+ <stop id="stop3585" style="stop-color:#CD2032" offset="0.9487" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="1021.6218" x2="-5086.9941" y1="1021.6218" x1="-9346.126"
gradientUnits="userSpaceOnUse" id="SVGID_6_">
+ <stop id="stop3590" style="stop-color:#9E2064" offset="0.3233" />
+ <stop id="stop3592" style="stop-color:#C92037" offset="0.6302" />
+ <stop id="stop3594" style="stop-color:#CD2335" offset="0.7514" />
+ <stop id="stop3596" style="stop-color:#E97826" offset="1" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="999.73297" x2="-5351.2017" y1="999.73297" x1="-9610.334"
gradientUnits="userSpaceOnUse" id="SVGID_7_">
+ <stop id="stop3601" style="stop-color:#9E2064" offset="0.3233" />
+ <stop id="stop3603" style="stop-color:#C92037" offset="0.6302" />
+ <stop id="stop3605" style="stop-color:#CD2335" offset="0.7514" />
+ <stop id="stop3607" style="stop-color:#E97826" offset="1" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="1152.7261" x2="-5086.9941" y1="1152.7261" x1="-9346.126"
gradientUnits="userSpaceOnUse" id="SVGID_8_">
+ <stop id="stop3616" style="stop-color:#9E2064" offset="0.3233" />
+ <stop id="stop3618" style="stop-color:#C92037" offset="0.6302" />
+ <stop id="stop3620" style="stop-color:#CD2335" offset="0.7514" />
+ <stop id="stop3622" style="stop-color:#E97826" offset="1" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="1137.7247" x2="-5086.9941" y1="1137.7247" x1="-9346.126"
gradientUnits="userSpaceOnUse" id="SVGID_9_">
+ <stop id="stop3631" style="stop-color:#9E2064" offset="0.3233" />
+ <stop id="stop3633" style="stop-color:#C92037" offset="0.6302" />
+ <stop id="stop3635" style="stop-color:#CD2335" offset="0.7514" />
+ <stop id="stop3637" style="stop-color:#E97826" offset="1" />
+ </linearGradient>
+ <linearGradient
gradientTransform="matrix(0.07810935,0.01915457,0.02093045,-0.07148201,452.38809,497.7395)"
y2="1134.7161" x2="-6011.9995" y1="1134.7161" x1="-6953.4072"
gradientUnits="userSpaceOnUse" id="SVGID_10_">
+ <stop id="stop3646" style="stop-color:#9E2064" offset="0.3233" />
+ <stop id="stop3648" style="stop-color:#C92037" offset="0.6302" />
+ <stop id="stop3650" style="stop-color:#CD2335" offset="0.7514" />
+ <stop id="stop3652" style="stop-color:#E97826" offset="1" />
+ </linearGradient>
+ <g transform="translate(275,-230)" id="g3735">
+ <path d="m 95.030525,353.34688 c -5.868388,1.89866 -18.455097,2.86966
-35.232972,2.68962 l -7.844759,-17.69411 c 11.922072,0.96277 23.155947,1.27149
33.446456,0.7785 0.806681,-0.0278 1.205437,-0.0597 1.205437,-0.0597
-0.39975,0.0215 -0.805689,0.0382 -1.205437,0.0597 -3.380984,0.11837
-13.97859,0.22097 -32.909158,-1.88263 6.824373,-6.72909 18.288583,-16.31958
28.008861,-23.85834 18.433387,9.69185 21.017957,20.51606 21.017957,20.51606 0,0
5.61321,15.54576 -6.486385,19.4509 z" id="path3527" style="fill:url(#SVGID_1_)"
/>
+ <path d="m 3.8322454,303.07135 c 0.059217,-0.0415 0.1120778,-0.0878
0.1712971,-0.12929 l -1.0221478,0.89604 c -0.088131,0.0386 -0.1658908,0.0658
-0.2478563,0.10915 0.3676459,-0.29732 0.7362578,-0.58424 1.098707,-0.8759 z"
id="path3529" style="fill:none" />
+ <path d="m -27.876072,290.63399 c -0.650899,0.45658 -1.281214,0.94828
-1.904317,1.45519 0.623103,-0.50691 1.259608,-0.99386 1.904317,-1.45519 z"
id="path3531" style="fill:none" />
+ <path d="m -128.18492,294.56272 c 0.27819,0.088 0.55639,0.17608
0.82938,0.26978 5.73136,1.8314 11.32321,3.58465 16.79937,5.26839
6.14427,1.88764 12.119072,3.68379 17.941982,5.39228 6.136306,1.80423
12.096924,3.5122 17.888098,5.1287 6.074555,1.69886 11.961044,3.29193
17.65531,4.79537 4.634037,1.22062 9.141965,2.38304 13.528979,3.48159
1.458542,0.36649 2.910894,0.72823 4.350865,1.08046 2.85092,0.70149
5.659501,1.38013 8.402938,2.03773 2.537553,0.60576 5.026574,1.18393
7.479394,1.74394 0.816212,0.19205 1.625242,0.36892 2.435266,0.55621
0.129295,0.0317 0.263817,0.0577 0.393113,0.0893 l -0.868431,0.76291
0.823816,1.77257 c -0.199639,-0.047 -0.398312,-0.0837 -0.603148,-0.12504
-3.709945,-0.80082 -7.434286,-1.63202 -11.17299,-2.49357 -2.160061,-0.49944
-4.326285,-1.00361 -6.493528,-1.51823 -6.008289,-1.42577 -12.02773,-2.90842
-18.046963,-4.44886 -6.083384,-1.55106 -12.155172,-3.16085 -18.201961,-4.8094
-5.94027,-1.61506 -11.850346,-3.27456 -17.722022,-4.95287 -5.860317,-1.67925
-11.67
1838,-3.38866 -17.421218,-5.10831 -6.00377,-1.79907 -11.9226,-3.61019
-17.74509,-5.43429 -1.31344,-0.40964 -2.62686,-0.81925 -3.9351,-1.23456
-4.69313,-1.47853 -9.30551,-2.95301 -13.84851,-4.42253 l -1.30665,-2.80027
0.97437,-0.85544 c 0.1365,0.0469 0.27298,0.0937 0.4033,0.1358 5.95137,1.97137
11.76945,3.86936 17.45943,5.68831 z" id="path3533" style="fill:none" />
+ <path d="m -30.254972,292.46861 0,0 c 0.0052,-0.006 0.01127,-0.001
0.01647,-0.007 0,0 -0.0052,0.006 -0.01647,0.007 z" id="path3535"
style="fill:none" />
+ <path d="m -44.667842,285.26517 c -0.973928,0.73986 -1.967656,1.51281
-2.988395,2.30367 -0.0052,0.006 -0.01647,0.007 -0.02166,0.0123
0.500572,-0.40778 0.995948,-0.80989 1.498505,-1.19683 0.50256,-0.38694
1.00094,-0.75776 1.511673,-1.1191 z" id="path3537" style="fill:#be202e" />
+ <path d="m -44.667842,285.26517 c -0.973928,0.73986 -1.967656,1.51281
-2.988395,2.30367 -0.0052,0.006 -0.01647,0.007 -0.02166,0.0123
0.500572,-0.40778 0.995948,-0.80989 1.498505,-1.19683 0.50256,-0.38694
1.00094,-0.75776 1.511673,-1.1191 z" id="path3539"
style="opacity:0.35;fill:#be202e" />
+ <path d="m -30.2218,292.45544 c 0,0 -0.0052,0.006 -0.01127,10e-4
-0.0052,0.006 -0.01127,9.9e-4 -0.01647,0.007 0.153662,-0.13318
0.314646,-0.25108 0.463195,-0.37852 0.628302,-0.51257 1.264807,-0.99953
1.904289,-1.45521 -0.763241,0.60216 -1.549259,1.20616 -2.339509,1.82623 l 0,0
0,0 z" id="path3541" style="fill:#be202e" />
+ <path d="m -30.2218,292.45544 c 0,0 -0.0052,0.006 -0.01127,10e-4
-0.0052,0.006 -0.01127,9.9e-4 -0.01647,0.007 0.153662,-0.13318
0.314646,-0.25108 0.463195,-0.37852 0.628302,-0.51257 1.264807,-0.99953
1.904289,-1.45521 -0.763241,0.60216 -1.549259,1.20616 -2.339509,1.82623 l 0,0
0,0 z" id="path3543" style="opacity:0.35;fill:#be202e" />
+ <path d="m -3.0502818,330.5069 c 6.1572269,1.1827 12.247534,2.26571
18.2471238,3.24041 6.227231,1.01426 12.356561,1.90504 18.357978,2.65895
0.348762,0.0456 0.708911,0.0903 1.063863,0.1407 5.913525,0.73472
11.699134,1.33257 17.339307,1.78976 l 7.844762,17.69411 c -1.160612,-0.0121
-2.333632,-0.0338 -3.529455,-0.0536 -4.497401,-0.0917 -9.271992,-0.26093
-14.266831,-0.51239 -5.629411,-0.28469 -11.556567,-0.6821 -17.699796,-1.1778
-5.67533,-0.46487 -11.549098,-1.02415 -17.5529729,-1.68334 -5.1106845,-0.5626
-10.3308648,-1.18997 -15.622198,-1.90096 -0.197654,-0.0262 -0.3953057,-0.0524
-0.5929873,-0.0786 L -20.52484,326.94198 c 5.866009,1.25856 11.69707,2.45163
17.4745582,3.56492 z" id="path3554" style="fill:url(#SVGID_2_)" />
+ <path d="m -148.64432,287.87492 c -4.62455,-1.5418 -9.31626,-3.12551
-14.09367,-4.76537 -0.0714,-0.0258 -0.13651,-0.0469 -0.20787,-0.0727
-0.67629,-0.2295 -1.34737,-0.46467 -2.02369,-0.69419 -3.21697,-1.10818
-6.09263,-2.12815 -12.63913,-4.44059 1.0996,-3.6285 -0.41103,-8.38228
-2.49019,-13.37944 3.85283,3.31605 6.24773,7.77315 6.52364,12.94094
11.22895,-13.43253 25.02773,-21.83891 40.65304,-19.66506 1.39603,0.1929
2.79384,0.46445 4.21819,0.83367 -6.03156,-0.16844 -10.5525,1.89547
-15.78323,8.30262 -0.0165,0.007 -0.0384,0.0188 -0.0549,0.0255 0.0165,-0.007
0.0384,-0.0188 0.0549,-0.0255 12.65883,-5.62036 21.02643,-6.89439
31.69203,-5.50534 2.52825,0.32813 5.18536,0.80351 8.06151,1.40845
-16.05366,1.09099 -26.93227,8.28126 -33.83488,19.35554 l -7.46769,6.54422 c
-0.87076,-0.28223 -1.73631,-0.57012 -2.60806,-0.86277 z" id="path3565"
style="fill:url(#SVGID_3_)" />
+ <path d="m -127.92557,298.05617 c 5.82769,1.81842 11.74652,3.62955
17.74512,5.43431 5.74415,1.7253 11.554681,3.42428 17.421188,5.10828
5.866507,1.68401 11.775562,3.33306 17.722022,4.95287 6.046789,1.64856
12.123776,3.25267 18.201961,4.8094 6.013043,1.53569 12.038702,3.02311
18.046963,4.44886 2.167243,0.51462 4.333467,1.0188 6.493528,1.51824
3.738705,0.86155 7.463045,1.69274 11.172991,2.49357 0.199636,0.047
0.398312,0.0837 0.603147,0.12503 l 11.0633797,23.68219 c -0.3953333,-0.0524
-0.7854697,-0.11047 -1.1807777,-0.16285 -5.606921,-0.76978 -11.295338,-1.6118
-17.027898,-2.55534 -5.790549,-0.94943 -11.619023,-1.99561 -17.461681,-3.12996
-4.930086,-0.95526 -9.854792,-1.97402 -14.768868,-3.06189 -0.99728,-0.22482
-1.97698,-0.44581 -2.962873,-0.67154 -6.150175,-1.40914 -11.974938,-2.89686
-17.487932,-4.42532 -6.244233,-1.73255 -12.086525,-3.52355 -17.517683,-5.33696
-3.574927,-1.18983 -6.978977,-2.39336 -10.215327,-3.58405 -2.73994,-1.04133
-5.46008,-2.11577 -8.13662,-3.21469 -6.3197
7,-2.58273 -12.45563,-5.34303 -18.38577,-8.29314 l -11.10848,-23.79411 c
4.54303,1.46954 9.15538,2.94401 13.84853,4.42255 1.30203,0.41054
2.62167,0.82493 3.93508,1.23455 z" id="path3576" style="fill:url(#SVGID_4_)" />
+ <path d="m -135.39748,315.78421 c -7.2115,-3.62494 -14.10198,-7.55402
-20.5914,-11.85137 -0.2272,-0.15514 -0.45863,-0.29422 -0.68582,-0.44936
2.3312,6.55285 0.24599,17.70369 0.21823,17.65338 -3.57467,-11.87432
-8.27251,-22.40852 -15.98628,-29.36565 -3.27442,2.37386 -5.94744,7.01608
-8.28358,12.96033 -0.41103,-8.38228 1.53485,-12.94527 2.45003,-14.5997
-4.28418,4.11989 -11.70198,6.14259 -19.64656,7.81875 9.09151,-4.3892
15.21177,-8.8767 17.7976,-13.46995 -24.55723,-8.42409 -51.09999,-18.3439
-78.93127,-29.25317 2.33282,-1.41596 4.74343,-1.47765 7.19121,-0.67033
5.0236,1.99314 38.05928,14.98608 83.16344,30.23283 1.28124,0.43321
2.57389,0.86552 3.8727,1.30257 0.36193,0.12335 0.72908,0.24106 1.08481,0.35966
4.73826,1.59047 9.59244,3.19267 14.55737,4.81229 1.13136,0.36642
2.26272,0.73284 3.40026,1.10401 0.0237,0.009 0.0476,0.0172 0.0652,0.021 l
11.11272,23.77804 c -0.25321,-0.12682 -0.52301,-0.24705 -0.7886,-0.38338 z"
id="path3587" style="fill:url(#SVGID_5_)" />
+ <path d="m -20.879529,324.31241 c -0.803833,-0.18253 -1.613855,-0.36983
-2.435266,-0.5562 -2.447621,-0.56569 -4.936644,-1.14385 -7.479421,-1.74397
-2.748608,-0.6519 -5.5458,-1.33146 -8.402911,-2.03771 -1.439971,-0.35222
-2.880933,-0.71488 -4.350864,-1.08045 -4.387015,-1.09855 -8.894942,-2.26097
-13.528979,-3.48159 -5.694267,-1.50344 -11.580756,-3.09652 -17.65531,-4.79538
-5.791175,-1.61649 -11.75182,-3.32448 -17.888098,-5.1287 -5.82291,-1.70849
-11.803902,-3.50939 -17.941982,-5.39227 -5.47616,-1.68374 -11.06801,-3.43699
-16.79937,-5.26839 -0.27821,-0.088 -0.55639,-0.17608 -0.82938,-0.26978
-5.68998,-1.81895 -11.50806,-3.71694 -17.44804,-5.68923 -0.13651,-0.0469
-0.27299,-0.0937 -0.40331,-0.1358 l 7.4677,-6.54423 c -0.099,0.16552
-0.21555,0.32718 -0.31452,0.4927 9.07173,-7.71799 26.60886,-13.7657
42.082402,-14.50031 7.130974,-0.33982 14.689435,0.18964 22.840099,1.56994
6.067741,1.02703 12.461933,2.52695 19.257152,4.49905 5.938834,1.72022
12.180797,3.78914 18.773426,6.22395 -2.953
943,1.10323 -5.869407,2.7287 -8.744022,4.78162 -0.499373,0.3604
-1.009112,0.73216 -1.511672,1.1191 -0.502585,0.38691 -1.004151,0.78427
-1.498505,1.19683 l 0,0 0,0 c 0.0052,-0.006 0.01647,-0.007 0.02166,-0.0123
10.741665,-5.44059 21.911677,-5.49972 33.275347,-3.05294 -3.512293,0.90633
-8.725108,2.75774 -13.490013,6.1124 -0.650869,0.45659 -1.281184,0.9483
-1.904287,1.4552 -0.160021,0.1283 -0.314677,0.25106 -0.463195,0.37852 l 0,0 0,0
c 0.0052,-0.006 0.01127,-9.9e-4 0.01647,-0.007 0,0 0.0052,-0.006
0.01127,-9.9e-4 l 0,0 c 3.833524,-1.80927 7.415482,-3.06785 10.971709,-3.81484
0.75953,-0.16062 1.521076,-0.30038 2.285595,-0.40887 1.160272,-0.17169
2.320337,-0.28559 3.490588,-0.35301 0.747698,-0.0441 1.497407,-0.0674
2.255322,-0.065 1.7736055,-1.9e-4 3.5809872,0.11249 5.4459147,0.34666
0.5691898,0.07 1.1394009,0.1504 1.7219926,0.24033 0.8080111,0.16642
1.5932437,0.33468 2.3670894,0.50385 3.4947139,0.7708 6.5151055,1.56378
9.1028098,2.33365 1.2938545,0.38493 2.4717831,0.75813 3.5461715,1.1
2911 0.427069,0.1444 0.842778,0.28973 1.24088,0.4312 1.189109,0.43009
2.22612,0.83033 3.11722,1.20547 1.333581,0.56035 2.345383,1.05716
3.054216,1.4469 l 0,0 0,0 c -0.484902,0.0914 -1.006187,0.22239 -1.55767,0.39787
-3.810562,1.20862 -9.0630554,4.26613 -12.8155016,7.10372 l 6.8589836,-6.00695
-6.8589836,6.00695 c -0.059219,0.0415 -0.1120802,0.0878 -0.1712972,0.1293
-0.3686395,0.2869 -0.73626,0.58424 -1.1100962,0.87681 0.088156,-0.0386
0.1659184,-0.0658 0.2478563,-0.10915 l -23.4688293,20.55321 c -0.123105,-0.0269
-0.246211,-0.0538 -0.380705,-0.0798 z" id="path3598"
style="fill:url(#SVGID_6_)" />
+ <path d="m 52.489098,337.22784 c -5.221409,-0.58001 -11.072737,-1.32494
-17.582802,-2.29555 -0.337345,-0.0465 -0.687098,-0.10255 -1.030661,-0.15384
-5.631475,-0.8466 -11.74798,-1.84346 -18.359704,-3.03705 -5.7115598,-1.02402
-11.780866,-2.1875 -18.2388704,-3.51423 -5.6261705,-1.15166 -11.5511356,-2.4265
-17.7644676,-3.83584 L 2.9813947,303.8381 c 9.3594193,-4.04821
15.0606363,-4.69376 22.0219053,-4.22681 1.892116,0.15844 3.845172,0.35401
5.836389,0.58854 6.095793,0.72012 12.552647,1.79478 18.766426,3.08853
5.997499,1.25326 11.744739,2.71043 16.714058,4.25614 3.159483,0.98674
6.000949,2.00943 8.377522,3.03258 2.095388,0.90383 4.020884,1.83177
5.804442,2.7763 -9.724453,7.55488 -21.194854,17.14061 -28.013039,23.87446 z"
id="path3609" style="fill:url(#SVGID_7_)" />
+ <path d="m -46.179514,286.38427 c -0.502558,0.38693 -1.004124,0.78429
-1.498506,1.19682 l 0,0 c 0.494382,-0.41253 0.995948,-0.80989 1.498506,-1.19682
z" id="path3611" style="fill:#be202e" />
+ <path d="m -46.179514,286.38427 c -0.502558,0.38693 -1.004124,0.78429
-1.498506,1.19682 l 0,0 c 0.494382,-0.41253 0.995948,-0.80989 1.498506,-1.19682
z" id="path3613" style="opacity:0.35;fill:#be202e" />
+ <path d="m -46.179514,286.38427 c -0.502558,0.38693 -1.004124,0.78429
-1.498506,1.19682 l 0,0 c 0.494382,-0.41253 0.995948,-0.80989 1.498506,-1.19682
z" id="path3624" style="fill:url(#SVGID_8_)" />
+ <path d="m -30.254972,292.46861 c 0.153663,-0.13318 0.314647,-0.25107
0.463193,-0.37852 -0.148463,0.12751 -0.303257,0.25016 -0.463193,0.37852 l 0,0
z" id="path3626" style="fill:#be202e" />
+ <path d="m -30.254972,292.46861 c 0.153663,-0.13318 0.314647,-0.25107
0.463193,-0.37852 -0.148463,0.12751 -0.303257,0.25016 -0.463193,0.37852 l 0,0
z" id="path3628" style="opacity:0.35;fill:#be202e" />
+ <path d="m -30.254972,292.46861 c 0.153663,-0.13318 0.314647,-0.25107
0.463193,-0.37852 -0.148463,0.12751 -0.303257,0.25016 -0.463193,0.37852 l 0,0
z" id="path3639" style="fill:url(#SVGID_9_)" />
+ <path d="m -30.233189,292.45636 c 0,0 0.0052,-0.006 0.01127,-0.001 l 0,0
0,0 0,0 c 0,0 -0.0052,0.006 -0.01127,0.001 z" id="path3641"
style="fill:#be202e" />
+ <path d="m -30.233189,292.45636 c 0,0 0.0052,-0.006 0.01127,-0.001 l 0,0
0,0 0,0 c 0,0 -0.0052,0.006 -0.01127,0.001 z" id="path3643"
style="opacity:0.35;fill:#be202e" />
+ <path d="m -30.233189,292.45636 c 0,0 0.0052,-0.006 0.01127,-0.001 l 0,0
0,0 0,0 c 0,0 -0.0052,0.006 -0.01127,0.001 z" id="path3654"
style="fill:url(#SVGID_10_)" />
+ </g>
+ <text id="text3761" y="61.094482" x="290"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:Oswald;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve">
+ <tspan y="61.094482" x="290" id="tspan3763">The</tspan>
+ </text>
+ <text id="text3416" y="72.094482" x="356"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:57.5px;line-height:125%;font-family:Oswald;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve">
+ <tspan y="72.094482" x="356" id="tspan3418">Apache Velocity Project</tspan>
+ </text>
+ <path id="path3557" d="m 897.15,23.54449 0,1.58889 3.72099,0 0,10.51111
1.72469,0 0,-10.51111 3.74815,0 0,-1.58889 -9.19383,0 z m 21.49753,0
-4.15555,8.44691 -4.18272,-8.44691 -2.07778,0 0,12.1 1.58889,0 0,-9.60123
4.11482,8.32469 1.1,0 4.11481,-8.32469 0,9.60123 1.58889,0 0,-12.1 -2.09136,0
z" style="fill:#6d6e71" />
+ <text id="text3599" y="114.09448" x="400"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35px;line-height:125%;font-family:Arial;text-align:start;letter-spacing:0.03em;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve">
+ <tspan y="114.09448" x="400"
id="tspan3601">http://velocity.apache.org/</tspan>
+ </text>
+</svg>
+</a>
+
+ </div>
+ <div id="breadcrumb">
+ <ul><li><a href="http://www.apache.org">apache</a></li><li><a
href="/">velocity</a></li><li><a href="/engine/">engine</a></li><li><a
href="/engine/devel/">devel</a></li><li><a href="#">configuration</a></li></ul>
+ </div>
+ <div id="middle">
+ <div id="leftnav">
+
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink,
h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink,
dt:hover > .elementid-permalink { visibility: visible }</style>
+<h2 id="velocity-engine">Velocity Engine<a class="headerlink"
href="#velocity-engine" title="Permanent link">¶</a></h2>
+<ul>
+<li><a href="index.html">Welcome</a></li>
+<li><a href="overview.html">Overview</a></li>
+<li><a href="getting-started.html">Getting Started</a></li>
+<li><a href="webapps.html">Web Applications</a></li>
+<li><a href="/download.cgi#engine">Downloads</a></li>
+<li><a href="http://wiki.apache.org/velocity/VelocityFAQ">FAQ</a></li>
+</ul>
+<h2 id="docs">Docs<a class="headerlink" href="#docs" title="Permanent
link">¶</a></h2>
+<ul>
+<li><a href="user-guide.html">User Guide</a></li>
+<li><a href="developer-guide.html">Developer Guide</a></li>
+<li><a href="vtl-reference.html">VTL Reference</a></li>
+<li><a href="configuration.html">Configuration</a></li>
+<li><a href="glossary.html">Glossary</a></li>
+<li><a href="apidocs/index.html">Javadoc</a></li>
+</ul>
+<h2 id="developers">Developers<a class="headerlink" href="#developers"
title="Permanent link">¶</a></h2>
+<ul>
+<li><a href="license.html">License</a></li>
+<li><a href="changes.html">Changes</a></li>
+<li><a href="upgrading.html">Upgrading</a></li>
+<li><a href="dependencies.html">Dependencies</a></li>
+<li><a href="source-repository.html">Sources</a></li>
+<li><a href="build.html">Building</a></li>
+<li><a href="https://issues.apache.org/jira/browse/VELOCITY">Issues</a></li>
+<li><a href="http://wiki.apache.org/velocity/RoadMap">Road Map</a></li>
+<li><a href="http://wiki.apache.org/velocity/CodeStandards">Coding
Standards</a></li>
+<li><a href="http://wiki.apache.org/velocity/DocumentationGuidelines">Doc
Guidelines</a></li>
+</ul>
+<h2 id="community">Community<a class="headerlink" href="#community"
title="Permanent link">¶</a></h2>
+<ul>
+<li><a href="http://wiki.apache.org/velocity/">Wiki</a></li>
+<li><a href="/news.html">News</a></li>
+<li><a href="http://wiki.apache.org/velocity/PoweredByVelocity">Powered by
Velocity</a></li>
+<li><a href="http://wiki.apache.org/velocity/VelocityEditors">IDE/Editor
Plugins</a></li>
+<li><a
href="http://wiki.apache.org/velocity/PublishedArticlesAndBooks">Articles and
Books</a></li>
+<li><a href="/contact.html">Mailing Lists</a></li>
+</ul>
+<h2 id="translations-outdated">Translations (outdated)<a class="headerlink"
href="#translations-outdated" title="Permanent link">¶</a></h2>
+<ul>
+<li><a href="http://www.jajakarta.org/velocity/">Site (Japanese)</a></li>
+<li><a href="translations/user-guide_fi.html">User's Guide (Finnish)</a></li>
+<li><a href="translations/user-guide_fr.html">User's Guide (French)</a></li>
+<li><a href="translations/user-guide_es.html">User's Guide (Spanish)</a></li>
+</ul>
+
+ <div id="bottom-nav">
+ <img src="/images/pbv90x30.png"/>
+ <div id="rss">
+ <a class="poweredBy" href="/rss/news.rss" title="Velocity News
Feed"><img class="poweredBy" alt="Velocity News Feed"
src="/images/feed-icon-24x24.jpg"></a>
+ </div>
+ <iframe src="http://www.apache.org/ads/buttonbar.html"
style="border-width:0; float: left" frameborder="0" scrolling="no" width="135"
height="265"></iframe>
+ </div>
+ </div>
+ <div id="content"><div class="section-content"><style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink,
h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink,
dt:hover > .elementid-permalink { visibility: visible }</style>
+<h2 id="velocity-configuration-contents">Velocity Configuration - Contents<a
class="headerlink" href="#velocity-configuration-contents" title="Permanent
link">¶</a></h2>
+<div class="toc">
+<ul>
+<li><a href="#velocity-configuration-contents">Velocity Configuration -
Contents</a></li>
+<li><a href="#configuring-velocity">Configuring Velocity</a></li>
+<li><a href="#logging">Logging</a></li>
+<li><a href="#character-encoding">Character Encoding</a></li>
+<li><a href="#vtl-directives">VTL Directives</a><ul>
+<li><a href="#define-directive">#define() Directive</a></li>
+<li><a href="#evaluate-directive">#evaluate() Directive</a></li>
+<li><a href="#foreach-directive">#foreach() Directive</a></li>
+<li><a href="#if-directive">#if() Directive</a></li>
+<li><a href="#set-directive">#set() Directive</a></li>
+<li><a href="#include-and-parse-directives">#include() and #parse()
Directives</a></li>
+</ul>
+</li>
+<li><a href="#resource-management">Resource Management</a></li>
+<li><a href="#velocimacros">Velocimacros</a></li>
+<li><a href="#strict-reference-setting">Strict Reference Setting</a></li>
+<li><a href="#string-interpolation">String Interpolation</a></li>
+<li><a href="#math">Math</a></li>
+<li><a href="#parser-configuration">Parser Configuration</a></li>
+<li><a href="#event-handlers">Event Handlers</a></li>
+<li><a href="#pluggable-introspection">Pluggable Introspection</a></li>
+<li><a href="#context">Context</a></li>
+<li><a href="#pluggable-resource-manager-and-resource-cache">Pluggable
Resource Manager and Resource Cache</a></li>
+<li><a href="#configuration-examples">Configuration Examples</a></li>
+</ul>
+</div>
+<h2 id="configuring-velocity">Configuring Velocity<a class="headerlink"
href="#configuring-velocity" title="Permanent link">¶</a></h2>
+<p>Velocity's runtime configuration is controlled by a set of configuration
keys listed below. Generally, these keys will have values that consist of
either a String, or a comma-separated list of Strings, referred to as a CSV for
comma-separated values.</p>
+<p>There is a set of default values contained in Velocity's jar, found in
/src/java/org/apache/velocity/runtime/defaults/velocity.defaults, that Velocity
uses as its configuration baseline. This ensures that Velocity will always have
a 'correct' value for its configuration keys at startup, although it may not be
what you want.</p>
+<p>Any values specified before init() time will replace the default values.
Therefore, you only have to configure velocity with the values for the keys
that you need to change, and not worry about the rest. Further, as we add more
features and configuration capability, you don't have to change your
configuration files to suit - the Velocity engine will always have default
values.</p>
+<p>Please sees the section <a
href="developer-guide.html#using-velocity"><strong>Using Velocity</strong></a>
for discussion on the configuration API.</p>
+<p>Below are listed the configuration keys that control Velocity's behavior,
organized by category. Each key is listed with its current default value to the
right of the '=' sign.</p>
+<h2 id="logging">Logging<a class="headerlink" href="#logging" title="Permanent
link">¶</a></h2>
+<p><code>runtime.log.instance = *Java Object instance*</code></p>
+<blockquote>
+<p>Living Java instance, that must implement the interface org.slf4j.Logger.
This property can only be set programmatically. By default, Velocity uses the
SLF4J static discovery mechanism, see the <a
href="developer-guide.html#logging">Logging</a> section in the dev guide.</p>
+</blockquote>
+<p><code>runtime.log.name = Velocity</code></p>
+<blockquote>
+<p>If no living Logger instance has been given using the previous property,
Velocity will get a Logger object using the provided name.</p>
+</blockquote>
+<p><code>runtime.log.invalid.references = true</code></p>
+<blockquote>
+<p>Property to turn off the log output when a reference isn't valid. Good
thing to turn off in production, but very valuable for debugging.</p>
+</blockquote>
+<h2 id="character-encoding">Character Encoding<a class="headerlink"
href="#character-encoding" title="Permanent link">¶</a></h2>
+<p><code>input.encoding = UTF-8</code></p>
+<blockquote>
+<p>Character encoding for input (templates). If not specified, Velocity relies
on the 'file.encoding' system property.</p>
+</blockquote>
+<h2 id="vtl-directives">VTL Directives<a class="headerlink"
href="#vtl-directives" title="Permanent link">¶</a></h2>
+<h3 id="define-directive">#define() Directive<a class="headerlink"
href="#define-directive" title="Permanent link">¶</a></h3>
+<p><code>define.provide.scope.control = false</code></p>
+<blockquote>
+<p>Used to turn on the automatic provision of the $define scope control during
#define() calls. The default is false. Set it to true if you want a local,
managed namespace you can put references in when within a #define block or if
you want it for more advanced #break usage.</p>
+</blockquote>
+<h3 id="evaluate-directive">#evaluate() Directive<a class="headerlink"
href="#evaluate-directive" title="Permanent link">¶</a></h3>
+<p><code>evaluate.provide.scope.control = false</code></p>
+<blockquote>
+<p>Used to turn on the automatic provision of the $evaluate scope during
#evaluate() or Velocity[Engine].evaluate(...) calls. The default is false. Set
it to true if you want a local, managed namespace you can put references in
during an evaluation or if you want it for more advanced #break usage.</p>
+</blockquote>
+<h3 id="foreach-directive">#foreach() Directive<a class="headerlink"
href="#foreach-directive" title="Permanent link">¶</a></h3>
+<p><code>foreach.provide.scope.control = true</code></p>
+<blockquote>
+<p>Used to control the automatic provision of the $foreach scope during
#foreach calls. This gives access to the foreach status information (e.g.
$foreach.index or $foreach.hasNext). The default is true. Set it to false if
unused and you want a tiny performance boost.</p>
+</blockquote>
+<p><code>directive.foreach.maxloops = -1</code></p>
+<blockquote>
+<p>Maximum allowed number of loops for a #foreach() statement.</p>
+</blockquote>
+<p><code>directive.foreach.skip.invalid = true</code></p>
+<blockquote>
+<p>Tells #foreach to simply skip rendering when the object it is iterating
over is not or cannot produce a valid Iterator.</p>
+</blockquote>
+<h3 id="if-directive">#if() Directive<a class="headerlink"
href="#if-directive" title="Permanent link">¶</a></h3>
+<p><code>directive.if.tostring.nullcheck = true</code></p>
+<blockquote>
+<p>Default behavior is to check return value of toString() and treat an object
with toString() that returns null as null. If all objects have toString()
methods that never return null, this check is unnecessary and can be disabled
to gain performance. In Velocity 1.5, no such null check was performed.</p>
+</blockquote>
+<h3 id="set-directive">#set() Directive<a class="headerlink"
href="#set-directive" title="Permanent link">¶</a></h3>
+<p><code>directive.set.null.allowed = false</code></p>
+<blockquote>
+<p>If true, having a right hand side of a #set() statement with an invalid
reference or null value will set the left hand side to null. If false, the left
hand side will stay the same.</p>
+</blockquote>
+<h3 id="include-and-parse-directives">#include() and #parse() Directives<a
class="headerlink" href="#include-and-parse-directives" title="Permanent
link">¶</a></h3>
+<p><code>directive.include.output.errormsg.start = <!-- include error
:</code>
+<code>directive.include.output.errormsg.end = see error log --></code></p>
+<blockquote>
+<p>Defines the beginning and ending tags for an in-stream error message in the
case of a problem with the #include() directive. If both the .start and .end
tags are defined, an error message will be output to the stream, of the form
'.start msg .end' where .start and .end refer to the property values. Output to
the render stream will only occur if both the .start and .end (next) tag are
defined.</p>
+</blockquote>
+<p><code>directive.parse.max.depth = 10</code></p>
+<blockquote>
+<p>Defines the allowable parse depth for a template. A template may #parse()
another template which itself may have a #parse() directive. This value
prevents runaway #parse() recursion.</p>
+</blockquote>
+<p><code>template.provide.scope.control = false</code></p>
+<blockquote>
+<p>Used to turn on the automatic provision of the $template scope control
during #parse calls and template.merge(...) calls. The default is false. Set it
to true if you want a secure namespace for your template variables or more
advanced #break control.</p>
+</blockquote>
+<h2 id="resource-management">Resource Management<a class="headerlink"
href="#resource-management" title="Permanent link">¶</a></h2>
+<p><code>resource.manager.logwhenfound = true</code></p>
+<blockquote>
+<p>Switch to control logging of 'found' messages from resource manager. When a
resource is found for the first time, the resource name and classname of the
loader that found it will be noted in the runtime log.</p>
+</blockquote>
+<p><code>resource.manager.cache.class</code></p>
+<blockquote>
+<p>Declares the class to be used for resource caching. The current default is
<code>org.apache.velocity.runtime.resource.ResourceCacheImpl</code>. When
<code>resource.manager.defaultcache.size</code> is set to 0, then the default
implementation is the standard Java <code>ConcurrentHashMap</code>. Otherwise,
a non-zero cache size uses an LRU Map. The default cache size is 89. Note
that the ConcurrentHashMap may be better at thread concurrency.</p>
+</blockquote>
+<p><code>resource.manager.defaultcache.size</code></p>
+<blockquote>
+<p>Sets the size of the default implementation of the resource manager cache
size. The default is 89.</p>
+</blockquote>
+<p><code>resource.loader = <name> (default = file)</code></p>
+<blockquote>
+<p><em>Multi-valued key. Will accept CSV for value.</em> Public name of a
resource loader to be used. This public name will then be used in the
specification of the specific properties for that resource loader. Note that as
a multi-valued key, it's possible to pass a value like "file, class" (sans
quotes), indicating that following will be configuration values for two
loaders.</p>
+</blockquote>
+<p><code><name>.loader.description = Velocity File Resource
Loader</code></p>
+<blockquote>
+<p>Description string for the given loader.</p>
+</blockquote>
+<p><code><name>.resource.loader.class =
org.apache.velocity.runtime.resource.loader.FileResourceLoader</code></p>
+<blockquote>
+<p>Name of implementation class for the loader. The default loader is the
file loader.</p>
+</blockquote>
+<p><code><name>.resource.loader.path = .</code></p>
+<blockquote>
+<p><em>Multi-valued key. Will accept CSV for value.</em> Root(s) from which
the loader loads templates. Templates may live in subdirectories of this root.
ex. homesite/index.vm This configuration key applies currently to the
FileResourceLoader and JarResourceLoader.</p>
+</blockquote>
+<p><code><name>.resource.loader.cache = false</code></p>
+<blockquote>
+<p>Controls caching of the templates in the loader. Default is false, to make
life easy for development and debugging. This should be set to true for
production deployment. When 'true', the <code>modificationCheckInterval</code>
property applies. This allows for the efficiency of caching, with the
convenience of controlled reloads - useful in a hosted or ISP environment where
templates can be modifed frequently and bouncing the application or servlet
engine is not desired or permitted.</p>
+</blockquote>
+<p><code><name>.resource.loader.modificationCheckInterval = 2</code></p>
+<blockquote>
+<p>This is the number of seconds between modification checks when caching is
turned on. When this is an integer > 0, this represents the number of
seconds between checks to see if the template was modified. If the template
has been modified since last check, then it is reloaded and reparsed.
Otherwise nothing is done. When <= 0, no modification checks will take
place, and assuming that the property <code>cache</code> (above) is true, once
a template is loaded and parsed the first time it is used, it will not be
checked or reloaded after that until the application or servlet engine is
restarted.</p>
+<p>To illustrate, here is an example taken right from the default Velocity
properties, showing how setting up the FileResourceLoader is managed</p>
+</blockquote>
+<div class="codehilite"><pre>resource.loader = file
+
+file.resource.loader.description = Velocity File Resource Loader
+file.resource.loader.class =
org.apache.velocity.runtime.resource.loader.FileResourceLoader
+file.resource.loader.path = .
+file.resource.loader.cache = false
+file.resource.loader.modificationCheckInterval = 2
+</pre></div>
+
+
+<h2 id="velocimacros">Velocimacros<a class="headerlink" href="#velocimacros"
title="Permanent link">¶</a></h2>
+<p><code>velocimacro.library = VM_global_library.vm</code></p>
+<blockquote>
+<p><em>Multi-valued key. Will accept CSV for value.</em> Filename(s) of
Velocimacro library to be loaded when the Velocity Runtime engine starts.
These Velocimacros are accessable to all templates. The file is assumed to be
relative to the root of the file loader resource path.</p>
+</blockquote>
+<p><code>velocimacro.permissions.allow.inline = true</code></p>
+<blockquote>
+<p>Determines of the definition of new Velocimacros via the #macro() directive
in templates is allowed. The default value is true, meaning any template can
define and use new Velocimacros. Note that depending on other properties,
those #macro() statements can replace global definitions.</p>
+</blockquote>
+<p><code>velocimacro.permissions.allow.inline.to.replace.global =
false</code></p>
+<blockquote>
+<p>Controls if a Velocimacro defind 'inline' in a template can replace a
Velocimacro defined in a library loaded at startup.</p>
+</blockquote>
+<p><code>velocimacro.permissions.allow.inline.local.scope = false</code></p>
+<blockquote>
+<p>Controls 'private' templates namespaces for Velocimacros. When true, a
#macro() directive in a template creates a Velocimacro that is accessable only
from the defining template. This means that Velocimacros cannot be shared
unless they are in the global or local library loaded at startup. (See above.)
It also means that templates cannot interfere with each other. This property
also allows a technique where there is a 'default' Velocimacro definition in
the global or local library, and a template can 'override' the implementation
for use within that template. This occurrs because when this property is true,
the template's namespace is searched for a Velocimacro before the global
namespace, therefore allowing the override mechanism.</p>
+</blockquote>
+<p><code>velocimacro.context.localscope = false</code></p>
+<blockquote>
+<p>Controls whether reference access (set/get) within a Velocimacro will
change the context, or be of local scope in that Velocimacro. This feature is
deprecated and has been removed in Velocity 2.0. Instead, please use the
$macro namespace for storage of references local to your Velocimacro. (e.g.
#set( $macro.foo = 'bar') and $macro.foo)</p>
+</blockquote>
+<p><code>velocimacro.library.autoreload = false</code></p>
+<blockquote>
+<p>Controls Velocimacro library autoloading. When set to <code>true</code>
the source Velocimacro library for an invoked Velocimacro will be checked for
changes, and reloaded if necessary. This allows you to change and test
Velocimacro libraries without having to restart your application or servlet
container, just like you can with regular templates. This mode only works when
caching is <em>off</em> in the resource loaders (e.g.
<code>file.resource.loader.cache = false</code> ). This feature is intended for
development, not for production.</p>
+</blockquote>
+<p><code>velocimacro.arguments.strict = false</code></p>
+<blockquote>
+<p>When set to true, will throw a <code>ParseErrorException</code> when
parsing a template containing a macro with an invalid number of arguments. Is
set to false by default to maintain backwards compatibility with templates
written before this feature became available.</p>
+</blockquote>
+<p><code>velocimacro.body.reference = false</code></p>
+<blockquote>
+<p>Defines name of the reference that can be used to get the body content (an
AST block) given for a block macro call (e.g. #@myMacro() has a body #end). The
default reference name is "bodyContent" (e.g. $bodyContent). This block macro
feature was introduced in Velocity 1.7.</p>
+</blockquote>
+<p><code>macro.provide.scope.control = false</code></p>
+<blockquote>
+<p>Used to turn on the automatic provision of the $macro scope control during
#macro calls. The default is false. Set it to true if you need a local
namespace in macros or more advanced #break controls.</p>
+</blockquote>
+<p><code><somebodymacro>.provide.scope.control = false</code></p>
+<blockquote>
+<p>Used to turn on the automatic provision of the $<nameofthemacro> scope
control during a call to a macro with a body (e.g. #@foo #set($foo.a=$b) ...
$foo.a #end). The default is false. Set it to true if you happen to need a
namespace just for your macro's body content or more advanced #break controls.
+</p></p>
+</blockquote>
+<h2 id="strict-reference-setting">Strict Reference Setting<a
class="headerlink" href="#strict-reference-setting" title="Permanent
link">¶</a></h2>
+<p><code>runtime.references.strict = false</code></p>
+<blockquote>
+<p>New in Velocity 1.6, when set to true Velocity will throw a
<code>MethodInvocationException</code> for references that are not defined in
the context, or have not been defined with a #set directive. This setting will
also throw an exception if an attempt is made to call a non-existing property
on an object or if the object is null. When this property is true then
property 'directive.set.null.allowed' is also set to true. Also,
'directive.foreach.skip.invalid' defaults to true when this property is true,
but explicitly setting 'directive.foreach.skip.invalid' will override this
default. For a complete discussion see <a
href="user-guide.html#strict-reference-mode">Strict References Setting</a>.</p>
+<p><code>runtime.references.strict.escape = false</code> Changes escape
behavior such that putting a forward slash before a reference or macro always
escapes the reference or macro and absorbs the forward slash regardless if the
reference or macro is defined. For example "\$foo" always renders as "$foo", or
"#foo()" is always rendered as "#foo()". This escape behavior is of use in
strict mode since unintended strings of characters that look like references or
macros will throw an exception. This provides an easy way to escape these
references. However, even in non-strict mode the developer may find this a
more consistent and reliable method for escaping.</p>
+</blockquote>
+<h2 id="string-interpolation">String Interpolation<a class="headerlink"
href="#string-interpolation" title="Permanent link">¶</a></h2>
+<p><code>runtime.interpolate.string.literals = true</code></p>
+<blockquote>
+<p>Controls interpolation mechanism of VTL String Literals. Note that a VTL
StringLiteral is specifically a string using double quotes that is used in a
#set() statement, a method call of a reference, a parameter to a VM, or as an
argument to a VTL directive in general. See the VTL reference for further
information.</p>
+</blockquote>
+<h2 id="math">Math<a class="headerlink" href="#math" title="Permanent
link">¶</a></h2>
+<p><code>runtime.strict.math = false</code></p>
+<blockquote>
+<p>Affects all math operations in VTL. If changed to true, this will cause
Velocity to throw a MathException whenever one side of a math operation has a
null value (e.g. <code>#set( $foo = $null * 5 )</code>) or when trying to
divide by zero. If this value is left <code>false</code>, then rendering will
continue and that math operation will be ignored.</p>
+</blockquote>
+<h2 id="parser-configuration">Parser Configuration<a class="headerlink"
href="#parser-configuration" title="Permanent link">¶</a></h2>
+<p><code>parser.pool.class =
org.apache.velocity.runtime.ParserPoolImpl</code></p>
+<blockquote>
+<p>This property selects the implementation for the parser pool. This class
must implement ParserPool. Generally there is no reason to change this though
if you are building a high volume web application you might consider including
an alternate implementation that automatically adjusts the size of the pool.</p>
+</blockquote>
+<p><code>parser.pool.size = 20</code></p>
+<blockquote>
+<p>This property is used by the default pooling implementation to set the
number of parser instances that Velocity will create at startup and keep in a
pool. The default of 20 parsers should be more than enough for most uses. In
the event that Velocity does run out of parsers, it will indicate so in the
log, and dynamically create overflow instances as needed. Note that these
extra parsers will not be added to the pool, and will be discarded after use.
This will result in very slow operation compared to the normal usage of pooled
parsers, but this is considered an exceptional condition. A web application
using Velocity as its view engine might exhibit this behavior under extremely
high concurrency (such as when getting Slashdotted). If you see a
corresponding message referencing the <code>parser.pool.size</code> property in
your log files, please increment this property immediately to avoid performance
degradation.</p>
+</blockquote>
+<h2 id="event-handlers">Event Handlers<a class="headerlink"
href="#event-handlers" title="Permanent link">¶</a></h2>
+<p>See the <a href="developer-guide.html#event-handlers">Event Handlers</a>
section of the dev guide.</p>
+<p><code>eventhandler.include.class =</code><em>classname</em></p>
+<blockquote>
+<p>register an <a
href="apidocs/org/apache/velocity/app/event/IncludeEventHandler.html">include
event handler</a>.</p>
+</blockquote>
+<p><code>eventhandler.invalidreference.class =</code><em>classname</em></p>
+<blockquote>
+<p>register an <a
href="apidocs/org/apache/velocity/app/event/InvalidReferenceEventHandler.html">invalid
reference event handler</a>.</p>
+</blockquote>
+<p><code>eventhandler.methodexception.class =</code><em>classname</em></p>
+<blockquote>
+<p>register a <a
href="apidocs/org/apache/velocity/app/event/MethodExceptionEventHandler.html">method
exception event handler</a>.</p>
+</blockquote>
+<p><code>eventhandler.referenceinsertion.class =</code><em>classname</em></p>
+<blockquote>
+<p>register a <a
href="apidocs/org/apache/velocity/app/event/ReferenceInsertionEventHandler.html">reference
insertion event handler</a>.</p>
+</blockquote>
+<h2 id="pluggable-introspection">Pluggable Introspection<a class="headerlink"
href="#pluggable-introspection" title="Permanent link">¶</a></h2>
+<p><code>runtime.introspector.uberspect =
org.apache.velocity.util.introspection.UberspectImpl</code></p>
+<blockquote>
+<p>This property sets the 'Uberspector', the introspection package that
handles all introspection strategies for Velocity. You can specify a
comma-separated list of Uberspector classes, in which case all Uberspectors are
chained. The default chaining behaviour is to return the first non-null value
for each introspection call among all provided uberspectors. You can modify
this behaviour (for instance to restrict access to some methods) by subclassing
org.apache.velocity.util.introspection.AbstractChainableUberspector (or
implementing directly
org.apache.velocity.util.introspection.ChainableUberspector). This allows you
to create more interesting rules or patterns for Uberspection, rather than just
returning the first non-null value.</p>
+<p>Some alternate Uberspectors are provided. Please refer to the <a
href="developer-guide.html#customizing-introspection">Customizing
Introspection</a> section for a detailed list. You would for instance use
<code>runtime.introspector.uberspect =
org.apache.velocity.util.introspection.SecureUberspector</code> to avoid
template authors to instanciate new classes or to use reflection, or use
<code>runtime.introspector.uberspect =
org.apache.velocity.util.introspection.UberspectImpl,
org.apache.velocity.util.introspection.UberspectPublicFields</code> to expose
Java public fields in your templates.</p>
+</blockquote>
+<h2 id="context">Context<a class="headerlink" href="#context" title="Permanent
link">¶</a></h2>
+<p><code>context.autoreference.key = *name*</code></p>
+<blockquote>
+<p>This property has no default value. If present, the Context object will
become accessible from the templates under the provided name. For instance,
with the configuration "<code>context.autoreference.key = self</code>", then
<code>$self</code> will contain the context itself. This feature is meant to be
used for debugging purposes.</p>
+</blockquote>
+<h2 id="pluggable-resource-manager-and-resource-cache">Pluggable Resource
Manager and Resource Cache<a class="headerlink"
href="#pluggable-resource-manager-and-resource-cache" title="Permanent
link">¶</a></h2>
+<p>The Resource Manager is the main part of the resource (template and static
content) management system, and is responsible for taking application requests
for templates, finding them in the available resource loaders, and then
optionally caching the parsed template. The Resource Cache is the mechanism
that the Resource Manager uses to cache templates for quick reuse. While the
default versions of these two facilities are suitable for most applications,
for advanced users it now is possible to replace the default resource manager
and resource cache with custom implementations.</p>
+<p>A resource manager implementation must implement the
<code>org.apache.velocity.runtime.resource.ResourceManager</code> interface. A
description of the requirements of a resource manager is out of scope for this
document. Implementors are encouraged to review the default implementation. To
configure Velocity to load the replacement implementation, use the
configuration key:</p>
+<div class="codehilite"><pre>resource.manager.class
+</pre></div>
+
+
+<p>This key is also defined as a contstant
<code>RuntimeConstants.RESOURCE_MANAGER_CLASS</code></p>
+<p>A resource cache implementation must implement the
<code>org.apache.velocity.runtime.resource.ResourceCache</code> interface As
with the resource manager, a description of the requirements of a resource
manager is out of scope for this document. Implementors are encouraged to
review the default implementation. To configure Velocity to load the
replacement implementation, use the configuration key:</p>
+<div class="codehilite"><pre>resource.manager.cache.class
+</pre></div>
+
+
+<p>This key is also defined as a contstant
<code>RuntimeConstants.RESOURCE_MANAGER_CACHE_CLASS</code></p>
+<p>A resource cache implementation may want to limit the cache size (rather
than providing an unbounded cache which could consume all available memory).
To configure Velocity to set the size for your cache, use the configuration
key:</p>
+<div class="codehilite"><pre>resource.manager.cache.size
+</pre></div>
+
+
+<p>This key is also defined as a contstant
<code>RuntimeConstants.RESOURCE_MANAGER_CACHE_SIZE</code></p>
+<h2 id="configuration-examples">Configuration Examples<a class="headerlink"
href="#configuration-examples" title="Permanent link">¶</a></h2>
+<p>Configuring the resource loaders for Velocity is straightforward. The
properties that control the are listed in the <a
href="#Configuring_Resource_Loaders">resource configuration</a> section, for
further reference.</p>
+<p>The first step in configuring one or more resource loaders is do 'declare'
them by name to Velocity. Use the property <code>resource.loader</code> and
list one or more loader names. You can use anything you want - these names are
used to associate configuration properties with a given loader.</p>
+<div class="codehilite"><pre>resource.loader = file
+</pre></div>
+
+
+<p>That entry declares that we will have a resource loader known as 'file'.
The next thing to do is to set the important properties. The most critical is
to declare the class to use as the loader:</p>
+<div class="codehilite"><pre>file.resource.loader.class =
org.apache.velocity.runtime.resource.loader.FileResourceLoader
+</pre></div>
+
+
+<p>In this case, we are telling velocity that we are setting up
+a resource loadercalled 'file', and are using the class
<code>org.apache.velocity.runtime.resource.loader.FileResourceLoader</code> to
be the class to use. The next thing we do is set the properties important to
this loader.</p>
+<div class="codehilite"><pre>file.resource.loader.path = /opt/templates
+file.resource.loader.cache = true
+file.resource.loader.modificationCheckInterval = 2
+</pre></div>
+
+
+<p>Here, we set a few things. First, we set the path to find the templates to
be <code>/opt/templates</code>. Second, we turned caching on, so that after a
template or static file is read in, it is cached in memory. And finally, we
set the modification check interval to 2 seconds, allowing Velocity to check
for new templates.</p>
+<p>Those are the basics. What follows are a few examples of different
configuraitons.</p>
+<p><strong>Do-nothing Default Configuration: </strong> As the name says, there
is nothing you have to do or configure to get the default configuration. This
configuration uses the FileResourceLoader with the current directory as the
default resource path, and caching is off. As a properties set, this is
expressed as:</p>
+<div class="codehilite"><pre>resource.loader = file
+
+file.resource.loader.description = Velocity File Resource Loader
+file.resource.loader.class =
org.apache.velocity.runtime.resource.loader.FileResourceLoader
+file.resource.loader.path = .
+file.resource.loader.cache = false
+file.resource.loader.modificationCheckInterval = 0
+</pre></div>
+
+
+<p><strong>Multiple Template Path Configuration: </strong> This configuration
uses the FileResourceLoader with several directories as 'nodes' on the template
search path. We also want to use caching, and have the templates checked for
changes in 10 second intervals. As a properties set, this is expressed as:</p>
+<div class="codehilite"><pre>resource.loader = file
+
+file.resource.loader.description = Velocity File Resource Loader
+file.resource.loader.class =
org.apache.velocity.runtime.resource.loader.FileResourceLoader
+file.resource.loader.path = /opt/directory1, /opt/directory2
+file.resource.loader.cache = true
+file.resource.loader.modificationCheckInterval = 10
+</pre></div>
+
+
+<p><strong>Multiple Loader Configuration :</strong> This configuration sets
up three loaders at the same time, the FileResourceLoader, the
ClasspathResourceLoader, and the JarResourceLoader. The loaders are set-up such
that the FileResourceLoader is consulted first, then the
ClasspathResourceLoader, and finally the JarResourceLoader. This would allow
you to qickly drop a template into the file template area to replace on of the
templates found in the classpath (usually via a jar) without having to rebuild
the jar.</p>
+<div class="codehilite"><pre>#
+# specify three resource loaders to use
+#
+resource.loader = file, class, jar
+
+#
+# for the loader we call 'file', set the FileResourceLoader as the
+# class to use, turn off caching, and use 3 directories for templates
+#
+file.resource.loader.description = Velocity File Resource Loader
+file.resource.loader.class =
org.apache.velocity.runtime.resource.loader.FileResourceLoader
+file.resource.loader.path = templatedirectory1, anotherdirectory, foo/bar
+file.resource.loader.cache = false
+file.resource.loader.modificationCheckInterval = 0
+
+#
+# for the loader we call 'class', use the ClasspathResourceLoader
+#
+class.resource.loader.description = Velocity Classpath Resource Loader
+class.resource.loader.class =
org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
+
+#
+# and finally, for the loader we call 'jar', use the JarResourceLoader
+# and specify two jars to load from
+#
+jar.resource.loader.description = Velocity Jar Resource Loader
+jar.resource.loader.class =
org.apache.velocity.runtime.resource.loader.JarResourceLoader
+jar.resource.loader.path = jar:file:/myjarplace/myjar.jar,
jar:file:/myjarplace/myjar2.jar
+</pre></div>
+
+
+<p>Node that the three names 'file', 'class', and 'jar' are merely for your
convenience and sanity. They can be anything you want - they are just used to
associate a set of properties together. However, it is recommended that you
use names that give some hint of the function.</p>
+<p>Note that while all three require very little configuration information for
proper operation, the ClasspathResourceLoader is the simplest.</p></div></div>
+ <hr/>
+ <div id="copyright">
+ Copyright © 2016 The Apache Software Foundation, Licensed under
the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License,
Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The
Apache Software Foundation.
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
Modified: velocity/site/production/engine/devel/dependencies.html
URL:
http://svn.apache.org/viewvc/velocity/site/production/engine/devel/dependencies.html?rev=1753524&r1=1753523&r2=1753524&view=diff
==============================================================================
--- velocity/site/production/engine/devel/dependencies.html (original)
+++ velocity/site/production/engine/devel/dependencies.html Wed Jul 20 14:44:53
2016
@@ -170,6 +170,7 @@ h2:hover > .headerlink, h3:hover > .head
<li><a href="user-guide.html">User Guide</a></li>
<li><a href="developer-guide.html">Developer Guide</a></li>
<li><a href="vtl-reference.html">VTL Reference</a></li>
+<li><a href="configuration.html">Configuration</a></li>
<li><a href="glossary.html">Glossary</a></li>
<li><a href="apidocs/index.html">Javadoc</a></li>
</ul>