blob: 44332185aa664293127eb19a8da8bb64084ea61a [file] [log] [blame]
<!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 Tools - Changes Report</title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta property="og:image" content="https://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="/tools/devel/images/velocitytools.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.671838,-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.31977,-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.953943,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.12911 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="/tools/">tools</a></li><li><a href="/tools/devel/">devel</a></li><li><a href="#">changes</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-tools">Velocity Tools<a class="headerlink" href="#velocity-tools" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="index.html">Overview</a></li>
<li><a href="/download.cgi#tools">Download</a></li>
</ul>
<h2 id="subprojects">Subprojects<a class="headerlink" href="#subprojects" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="generic.html">GenericTools</a></li>
<li><a href="view.html">VelocityView</a></li>
</ul>
<h2 id="docs">Docs<a class="headerlink" href="#docs" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="tools-summary.html">Standard Tools</a></li>
<li><a href="apidocs/index.html">Javadoc</a></li>
<li><a href="upgrading.html">Upgrading</a></li>
<li><a href="configuration.html">Configuration</a></li>
<li><a href="standalone.html">Standalone Use</a></li>
<li><a href="frameworks.html">Web Integration</a></li>
<li><a href="creating-tools.html">Creating Tools</a></li>
<li><a href="contributions.html">Contributions</a></li>
<li><a href="/engine/devel/glossary.html">Glossary</a></li>
<li><a href="https://wiki.apache.org/velocity/VelocityFAQ">FAQ</a></li>
<li><a href="https://wiki.apache.org/velocity/">Wiki</a></li>
</ul>
<h2 id="development">Development<a class="headerlink" href="#development" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="changes.html">Changes</a></li>
<li><a href="dependencies.html">Dependencies</a></li>
<li><a href="index.html#helping-out">Participating</a></li>
<li><a href="/download.cgi#tools">Source Code</a></li>
<li><a href="https://issues.apache.org/jira/browse/VELTOOLS">Report Issue</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="https://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="changes-report">Changes Report<a class="headerlink" href="#changes-report" title="Permanent link">&para;</a></h2>
<h3 id="release-history">Release History<a class="headerlink" href="#release-history" title="Permanent link">&para;</a></h3>
<p><p>
<table class="standard">
<thead>
<tr>
<th>Version</th>
<th>Date</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>3.1</td>
<td>2021-02-27</td>
<td/>
</tr>
<tr>
<td>3.0</td>
<td>2018-10-01</td>
<td/>
</tr>
<tr>
<td>2.0</td>
<td>2010-05-10</td>
<td/>
</tr>
<tr>
<td>1.4</td>
<td>2007-11-26</td>
<td/>
</tr>
<tr>
<td>1.3</td>
<td>2007-02-08</td>
<td/>
</tr>
<tr>
<td>1.2</td>
<td>2005-11-09</td>
<td/>
</tr>
<tr>
<td>1.1</td>
<td>2004-02-21</td>
<td/>
</tr>
<tr>
<td>1.1-rc1</td>
<td>2004-02-21</td>
<td/>
</tr>
<tr>
<td>1.1-beta1</td>
<td>2003-11-10</td>
<td/>
</tr>
<tr>
<td>1.0</td>
<td>2003-07-16</td>
<td/>
</tr>
</tbody>
</table>
</p>
<h3>Release 3.1 - 2021-02-27</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix potential XSS vulterability in VelocityViewServlet error handling. . </td>
<td>Jackson Henry</td>
</tr>
<tr>
<td/>
<td> Added Travis CI. . Thanks to mgrigorov.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added an `exact` mode to ComparisonDateTool (which uses an actual dates/months difference rather than a global milliseconds difference) . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added a new BreadcrumbTool meant to help displaying UI breadcrumb trails . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added an optional 'factory' attribute to tools with the classname of a factory for creating new tools instances . </td>
<td>cbrisson</td>
</tr>
</tbody>
</table>
</p><h3>Release 3.0 - 2018-10-01</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> upgraded to servlet API 3.1.0 . </td>
<td>michaelo</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> JsonTool now uses an explicit dependency to <code> com.github.cliftonlabs.json-simple </code> . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-179">VELTOOLS-179</a>. </td>
<td>michaelo</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> The <code> tools.xml </code> file can now use XInclude file inclusion mechanism . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-162">VELTOOLS-162</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Most tools are now serializable . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-161">VELTOOLS-161</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> CollectionTool.sort() now filters out null elements . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> ViewLayoutServlet layout cannot be changed using GET parameters, unless configured with the <code> tools.view.servlet.layout.dynamic </code> servlet param to true . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Review tools-view initialization: default tools are now loaded only when asked for via the <code> org.apache.velocity.tools.loadDefaults </code> parameter (as an init or servlet parameter). . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Drop undocumented autoloaded tools feature, and have org.apache.velocity.tools.loadDefaults default to false . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Make tools-view initialization much pickier about file accesses, to ease the use of a Java SecurityManager . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed BrowserTool Accept-Language header parsing . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added new <code> $conv.toList(obj) </code> method . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added <code> $browser.IPAddress </code> . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed deprecated components velocity-tools-uberjar and velocity-tools-assembly . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> ImportTool reenginering: <ul> <li> the ImportSupport utility class has been splitted between o.a.v.generic.ImportSupport and o.a.v.view.ViewImportSupport </li> <li> the ImportTool now has a generic version (for remote URLs import) and a view version (for local URLs import) which cannot use remote URLs in safe mode </li> <li> the local URLs import respects the 3.1 servlets specification: query parameters of the included URL do overwrite original ones </li> </ul> . </td>
<td>cbrisson</td>
</tr>
<tr>
<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>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> new generic LogTool to emit logs from inside templates . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> drop unmaintained Struts tools . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> full review of BrowserTool implementation, update user-agents detection algorithm . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed deprecated 1.x configuration handling and depreacted 1.x tools initialization support . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Switched engine dependency to 2.0 . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Replace all uses of commons-collections ExtendedProperties class by org.apache.velocity.util.ExtProperties . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Removed deprecated class org.apache.velocity.tools.generic.log.LogSystemCommonsLog . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> MathTool: added bitwise operations . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> fixed result type calculations . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Switched log system facade to SLF4j . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded to JUnit 4.12, commons-beanutils 1.9.3, commons-digester 3.2, and Velocity Engine 2.0. . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-129">VELTOOLS-129</a>. Thanks to Michael Osipov.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> fix sync problems . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-128">VELTOOLS-128</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> correct handling and better reporting of commited responses in error() . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added a custom number formats cache in ConversionUtils . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> added localization of DateFormat format strings . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-144">VELTOOLS-144</a>. </td>
<td>schultz</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> fixed a LinkTool bug with parametersToIgnore management . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-148">VELTOOLS-148</a>. </td>
<td>schultz</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> changed LinkTool.addRequestParams to accept Object[] . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-149">VELTOOLS-149</a>. </td>
<td>schultz</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> $link.absolute($uri) should not encode query strings in the argument . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-146">VELTOOLS-146</a>. </td>
<td>schultz</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> ValidatorTool generates invalid XHTML even when in XHTML mode . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-152">VELTOOLS-152</a>. </td>
<td>schultz</td>
</tr>
</tbody>
</table>
</p><h3>Release 2.0 - 2010-05-10</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> More convention over configuration and smart defaults . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New configuration formats (more concise/flexible/powerful xml, properties, java) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Entirely new core infrastructure (lazy-loading tools, easier access, standalone support etc) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added VelocityViewTag for JSP integration . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added DisplayTool, ConversionTool, ClassTool, LoopTool, FieldTool, a generic version of LinkTool and more . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Refactored and enhanced a number of existing tools . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Improved documentation . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Deprecated many outdated things . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Legacy support for almost all Tools 1.4 configurations and extensions . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Better integration of $application, $session and $request scope control objects . </td>
<td>cbrisson</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.4 - 2007-11-26</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added ability to add current request parameters to LinkTool, including controls for automatically and/or manually ignoring some of those . Thanks to Christopher Schultz.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> fixed infinite recursion in RenderTool . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-87">VELTOOLS-87</a>. Thanks to Andrea Bernardo Ciddio.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded DVSL version used for documentation to v1.0 . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix order preservation problem in SortTool . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-85">VELTOOLS-85</a>. Thanks to Tatyana.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Protect BrowserSniffer from requests without user-agent . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added support for a MethodExceptionHandler - the TilesTool.get() method now only returns null if one isn't present . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed StrutsLinkTool.setForward() to look for forwards local to the action mapping, before looking up global forwards . Thanks to Christopher Schultz.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Rearrange/refactor/deprecate some internal methods in VelocityViewServlet in preparation for VelocityTools 2.0 upgrades . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded Velocity Engine dependency to build and test against v1.5 (NOTE: Velocity Engine 1.5 will be required for VelocityTools 2.0.) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added propertyKey() and propertyValue() escaping support to EscapeTool . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-81">VELTOOLS-81</a>. Thanks to Phil Cornelius.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed bug in request-path restriction when using wildcards . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Make default locale and format for NumberTool configurable, just as they are in DateTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add ComparisonDateTool (with some tests and showcase demos) for comparing dates and displaying the comparisons textually . Thanks to Chris Townsen.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add ability to configure default Locale for DateTool and to lock down configure() so it is safe to use in application scope . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add better support for dynamic locales in MessageTool . Thanks to Christopher Schultz.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Use ResourceTool for common text throughout the Showcase example . </td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.3 - 2007-02-08</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added ResourceTool and ViewResourceTool for access to and use of ResourceBundles . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded to latest versions of Commons-Digester (1.8) and Commons-Validator (1.3.1) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Updated ValidatorTool to mirror key changes/features in Struts 1.3.x's JavascriptValidatorTag . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-58">VELTOOLS-58</a>. Thanks to Christopher Schultz and Niall Pemberton.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added url(String) method to EscapeTool for URL encoding . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-73">VELTOOLS-73</a>. Thanks to Marc Novakowski.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added start.showcase.webapp and stop.showcase.webapp ant targets to manually launch the showcase webapp using the embedded Jetty servlet container . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added a testcases framework for generic and view tools . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed VelocityViewServlet to look for toolbox config at "/WEB-INF/toolbox.xml" and velocity init properties at "/WEB-INF/velocity.properties" when no other locations are specified (i.e. change the standard location into a convention to reduce configuration needs) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded VelocityStruts dependencies to those for Struts 1.3.x series and updated "struts" example app according to <a href="http://wiki.apache.org/struts/StrutsUpgradeNotes12to13"> provided directions </a> . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Replaced "layout" example with new "showcase" example to interactively demonstrate all tools and the VelocityLayoutServlet . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added auto() and manual() methods to AlternatorTool and deprecated the make() methods that took a boolean parameter . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added getAll() method to ParameterParser to retrieve map of all params via <code> $params.all </code> . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added configurable getSelf() function to LinkTool to make self-referencing links easier . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added create() methods to CookieTool to support more complex Cookie creation . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added ContextTool for convenient access to context data and meta-data . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Overhauled ant build process: dependencies are now automatically download, jars have manifests, checksums are auto-generated, and more. Also, building with JDK 1.3 is no longer supported . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-71">VELTOOLS-71</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Updated license headers and notices to comply with new ASF policy . </td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Made auto-alternate default of AlternatorTool configurable via toolbox config . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add addQueryData(Map) and params(Map) method to LinkTool . Thanks to Mark Brunkhart.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed a number of problems with ImportSupport . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-56">VELTOOLS-56</a>. Thanks to Christopher Schultz.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add ability to restrict availability of request-scoped tools according to a request path value set in the tool configuration . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-67">VELTOOLS-67</a>. Thanks to Claude Brisson.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Change VelocityViewServlet to read logger and resource loader config from velocity.properties file instead of hard-coding it . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-68">VELTOOLS-68</a>. </td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added setAbsolute() and absolute() methods to LinkTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Made default format of DateTool configurable via toolbox definition . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Deprecated ViewTool and Configurable interfaces ; ViewToolInfo has been enhanced to automatically recognize such tools by checking for init(Object) and/or configure(Map) methods . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Enhanced TextKey trick in MessageTool to make using args and bundles easier . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add getInteger() and getDouble() convenience methods to ValueParser . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added get() method to StrutsLinkTool to allow syntax like <code> $link.action.saveFoo </code> . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added param(), relative(), anchor(), and uri() convenience methods to LinkTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added currency(), number(), integer(), and percent() convenience methods to NumberTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed auto-alternate default in AlternatorTool to match Alternator default . </td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.2 - 2005-11-09</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Updated documentation to cover new features and sync to many infrastructure changes . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed incomplete escaping in ValidatorTool . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-52">VELTOOLS-52</a>. Thanks to Christopher Schultz.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed infinite loop logging problem with Tomcat 5.5 in the "simple" example webapp . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded jars to Struts 1.2.7, Commons-Logging 1.0.4, Commons-Validator 1.1.4, Digester 1.7, Commons-Collections 3.1, Beanutils 1.7.0, Struts SSL Extension for 1.2, and Commons-Lang 2.1 . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added VelocityStruts support for non-resource and session-scoped action messages . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-51">VELTOOLS-51</a>. Thanks to Niall Pemberton.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Factored generic parsing code out of ParameterParser into new ValueParser for parsing strings pulled from any Map . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Improved error handling/recovery in toolbox xml parsing by adding validation of tool info . </td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added BrowserSnifferTool for identifying browsers and their features ; this depends on Java 1.4's regexp support for use . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added EscapeTool for commons escaping needs ; this requires commons-lang for use . Thanks to Shinobu Kawai.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added ListTool as utility for using arrays like Lists in templates . Thanks to Shinobu Kawai.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added DateTool methods to provide easy access to date values (e.g. month, year, day) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Converted VelocityView and VelocityStruts to use a VelocityEngine instead of the Velocity singleton. This means only the servlets log directly to the VelocityEngine instance; the tools and other classes now use commons-logging (which can still be redirected to the VVS's VelocityEngine). Also, both the RenderTool and LogSystemCommonsLog now support either the singleton or non-singleton approach . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Fixed bad relative URIs in LinkTool when webapp is installed as root . Thanks to Laurent Dauvilaire.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Factored basic pagination code out of AbstractSearchTool into new AbstractPagerTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Make StrutsUtils.errorMarkup() support errors.prefix/suffix . Thanks to Shinobu Kawai.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Fixed ImportSupport bug with multiple calls to ImportResponseWrapper.getWriter() or getOutputStream() . Thanks to Shinobu Kawai.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Made DateTool.toDate(Object) accept Number in place of Long . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed RenderTool NPE when passed null VTL string . Thanks to Tim Colson.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Enable template cache refreshing and global macro autoreloading in WebappLoader . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Stopped using Velocity's dependency jar . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded Struts, commons-collections, commons-logging, and commons-validator to Struts 1.2.4 versions . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added new SortTool . Thanks to Brett Sutton.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added MathTool methods for totalling or averaging lists or arrays of values . Thanks to Leon Messerschmidt.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Prevent NPE in RenderTool.recurse() when an evaluation fails . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded jars from Velocity 1.3.1 to Velocity 1.4 . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Simplified MessageTool interface to support $text.this.that syntax instead of just $text.get('this.that') . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added Alternator and AlternatorTool to improve on the old VelocityFormatter.makeAutoAlternator() . Thanks to Daniel Rall.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added new Configurable interface and support for configuring tools in the toolbox definition . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added methods for integer division and modulus to MathTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Remove members, methods, and classes deprecated in 1.1 . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Bring example Struts apps up to speed with latest Struts version . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgrade jars to Struts 1.2.0 and Validator 1.1.2 . </td>
<td>marino</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.1 - 2004-02-21</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Deprecated StrutsUtils' getActionErrors() and getActionMessages() in favor of getErrors() and getMessages() . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Fixed javadoc warnings during build . Thanks to Nathan Green.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Some sort of improvements to Struts example apps . </td>
<td>marino</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.1-rc1 - 2004-02-21</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed recommended keys for MessageTool and ActionMessagesTool to $text and $messages . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed XMLToolboxManager to use thread context classloader when digesting toolbox . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Fixed session tool initialization/synchronization issue . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added TilesTool methods to import attributes to specific scopes (page/request/session/application) . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added new demos for using ValidatorTool, TilesTool, and SecureLinkTool to VelocityStruts example app . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgraded/refactored MathTool to add floor() and ceil(), make type-handling more intuitive and flexible, and improve number parsing . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Improved resource bundle support in ActionMessagesTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> ErrorsTool now extends ActionMessagesTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> LinkTool now encodes URLs using the response's character encoding . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed inadvertant JDK 1.4 dependencies from ImportSupport . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Made XMLToolboxManager not abstract . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> De-staticized non-private methods in RenderTool and LinkTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added NumberTool for formatting numbers . Thanks to Mike Kienenberger.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Filled out and cleaned up DateTool's toDate(...) methods . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed VelocityViewServlet's error method to print the stack trace of the root cause when it encounters a MethodInvocationException . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added importAttributes() method to TilesTool to automatically put all attributes of the current Tiles context into the Velocity context . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Replaced TilesTool's getString(String) method with getAttribute(String) in order to support "put lists." . </td>
<td>marino</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.1-beta1 - 2003-11-10</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Made VelocityViewServlet use response.getOutputStream() if response.getWriter() fails. This is functionality is deprecated and provided as a migration path from 1.0 behavior . Thanks to Daniel Rall.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> De-staticized MathTool to make it extendable . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Factored common functionality of ErrorsTool, MessageTool, and ActionMessagesTool into abstract MessageResourcesTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added ImportTool as a simple ImportSupport-based tool . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Converted TilesTool to extend ImportSupport. This allows easy mixing of view technologies (JSP, Velocity, etc.) in VelocityStruts applications . Thanks to Matthew Payne.</td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added ImportSupport class for building tools that can import resources from local or remote URLS . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Overhauled DateTool to make it more extendable, user-friendly, and add support for standard, localized date-time styles (see DateTool javadoc for more) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added support for specifying message resource bundles to StrutsUtils, ErrorsTool, ActionMessagesTool, and MessageTool . Thanks to Marinó A. Jónsson.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added commons-validator (1.0.2) and sslext jars to library . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added SecureLinkTool for using Struts SSL Extension with VelocityStruts . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added ValidatorTool to provide Struts 1.1 javascript validation for VelocityStruts . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> output.encoding property (if non-default) is appended to default content-type as the charset . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> VelocityViewServlet now uses response.getWriter() instead of response.getOutputStream() . Thanks to Matthew Payne.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Improved VelocityViewServlet error handling (exceptions are logged and error() is now more robust) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Put VelocityViewServlet's requestCleanup() call in a 'finally' clause to allow clean after errors during a request . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed miscellaneous javadoc and doc typos . Thanks to Takayoshi Kimura.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Allow system to reclaim objects held by pooled writers in VelocityViewServlet . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed LinkTool to automatically check for XHTML setting . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added support for standard XHTML mode setting via toolbox config . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Moved request/response/session/application keys to ViewContext and add getAttribute() method . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added selectModule() and getForwardURL() to StrutsUtils . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Convert VelocityStruts tools to use new StrutsUtils methods and be module aware . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed unused imports from StrutsLinkTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Refactor StrutsUtils to use Struts 1.1 classes and support modules . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added TilesTool . </td>
<td>marino</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Allow subclasses of VelocityViewServlet to use different ToolboxManager implementations . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added CookieTool . Thanks to Dmitri Colebatch.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added demo of &lt;data&gt; elements to simple VelocityView example . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Made simple VelocityStruts example catch Commons-Logging output with LogSystemCommonsLog . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Convert toolbox setup to use Digester instead of dom4j . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added LogSystemCommonsLog and CommonsLogLogSystem to provide bridges between Commons-Logging and Velocity's LogSystem . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added Commons Logging 1.0.3 jar . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added ActionMessagesTool . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Upgrade deprecated Struts 1.0 uses in examples . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Updated jars to Struts 1.1, BeanUtils 1.6.1, Digester 1.5, Collections 2.1 . </td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.0 - 2003-07-16</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Initial release. . </td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p>
</p></div></div>
<hr/>
<div id="copyright">
Copyright &#169; 2020 The Apache Software Foundation, Licensed under the <a href="https://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>