blob: a828bb4cccc0eb7c3c75d874c0ae829bc540347f [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 Engine - Changes Report</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.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="/engine/">engine</a></li><li><a href="/engine/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-engine">Velocity Engine<a class="headerlink" href="#velocity-engine" title="Permanent link">&para;</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">&para;</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>
<li><a href="upgrading.html">Upgrading</a></li>
</ul>
<h2 id="developers">Developers<a class="headerlink" href="#developers" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="license.html">License</a></li>
<li><a href="changes.html">Changes</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">&para;</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">&para;</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="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>2.2</td>
<td>2020-02-02</td>
<td/>
</tr>
<tr>
<td>2.1</td>
<td>2019-03-15</td>
<td/>
</tr>
<tr>
<td>2.0</td>
<td>2017-08-06</td>
<td/>
</tr>
<tr>
<td>1.7</td>
<td>2010-11-29</td>
<td/>
</tr>
<tr>
<td>1.7-beta1</td>
<td>2010-04-10</td>
<td/>
</tr>
<tr>
<td>1.6.4</td>
<td>2010-05-10</td>
<td/>
</tr>
<tr>
<td>1.6.3</td>
<td>2009-12-16</td>
<td/>
</tr>
<tr>
<td>1.6.2</td>
<td>2009-03-19</td>
<td/>
</tr>
<tr>
<td>1.6.1</td>
<td>2008-12-15</td>
<td/>
</tr>
<tr>
<td>1.6</td>
<td>2008-12-01</td>
<td/>
</tr>
<tr>
<td>1.6-beta2</td>
<td>2008-10-26</td>
<td/>
</tr>
<tr>
<td>1.6-beta1</td>
<td>2008-09-22</td>
<td/>
</tr>
<tr>
<td>1.5</td>
<td>2007-01-28</td>
<td/>
</tr>
<tr>
<td>1.5-beta2</td>
<td>2006-11-24</td>
<td/>
</tr>
<tr>
<td>1.5-beta1</td>
<td>2006-09-13</td>
<td/>
</tr>
</tbody>
</table>
</p>
<h3>Release 2.2 - 2020-02-02</h3><p>
<table class="standard">
<thead>
<tr>
<th>Type</th>
<th>Changes</th>
<th>Bye</th>
</tr>
</thead>
<tbody>
<tr>
<td/>
<td> Deprecated 2.1 flag <code> velocimacro.arguments.preserve_literals </code> in favor of the new <code> valocimacro_enable_bc_mode </code> flag, which will also, like 1.7 does, use global context values as defaults for missing macro arguments which do not have an explicit default value. . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed regression: Macro arguments names cannot collide with external references names . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-926">VELOCITY-926</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed macro calls without parenthesis eating the following newline in BC mode . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-925">VELOCITY-925</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed bad cache handling for java.lang.Class methods . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-924">VELOCITY-924</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed parser regression when || follow a Velocity expression . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-923">VELOCITY-923</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added BigInteger and BigDecimal implicit conversions . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed abnormal suppression of zero-width whitespaces . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-919">VELOCITY-919</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added an example of how to build a customized parser where the '#', '$', '*' and '@' can be replaced by any character . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-917">VELOCITY-917</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added the <code> runtime.log.track_locations </code> debugging flag (disabled by default), which: <ul> <li> display a VTL stack trace on any error </li> <li> Implement template location tracking with slf4j MDC tags: Once activated, an MDC-aware logger will be able to display the <code> file </code> , <code> line </code> and <code> column </code> MDC tags </li> </ul> . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-916">VELOCITY-916</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added the following 1.7.x backward compatibility flags: <ul> <li><code> event_handler.invalid_references.quiet </code> - warn on invalid quiet references </li> <li><code> event_handler.invalid_references.null </code> - warn on null references </li> <li><code> event_handler.invalid_references.tested </code> - warn on invalid references tested with <code> #if() </code></li> </ul> Those three flags are false by default, but can be set to true to mimic 1.7.x behavior . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-915">VELOCITY-915</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Introspection: favor non-vararg methods on ambiguities as does the Java compiler . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Also allow hyphen in subproperties when the corresponding backward compatibility flag is on . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-912">VELOCITY-912</a>. </td>
<td>cbrisson</td>
</tr>
</tbody>
</table>
</p><h3>Release 2.1 - 2019-03-15</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> Reorganization of configuration properties key names, for clarity and consistency, see the <a href="configuration-property-changes-in-2.1.html"> table of correspondance </a> . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-909">VELOCITY-909</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Rendering of arrays should display their content, as for lists . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Enhance space gobbling ("lines" mode): do not eat ending newline when directive doesn't start after a newline . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix unary negate . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Deprecate the Class to Class CoversionHandler in favor of a Class to Type TypeConversionHandler, which allows to specity converters towards generic types specializations. The minimum JDK is now 1.8 . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-892">VELOCITY-892</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Rely on Locale.ROOT for lowercase/uppercase operations . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-908">VELOCITY-908</a>. </td>
<td>michaelo</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added the <code> velocimacro.preserve.arguments.literals </code> flag (false by default), for backward compatibility. When true, for any macro argument that evaluates to null, the macro will display the provided argument literal representation instead of the literal argument reference . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-904">VELOCITY-904</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Default block for empty loops: <code> #foreach($i in []) loop block #else empty #end </code> . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-903">VELOCITY-903</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Include proper OSGi bundle informations in manifest files . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-888">VELOCITY-888</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Alternate reference values: <code> ${foo|'foo'} </code> evaluates to false whenever boolean evaluation of $foo is false . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-898">VELOCITY-898</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix parser regression in #macro whitespaces handling . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-889">VELOCITY-889</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added a new 'parser.allow_hypen_in_identifiers' boolean property (false per default) to (dis)allow '-' in reference identifiers . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-542">VELOCITY-542</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix parsing of a terminal hash or dollar sign in sing litteral and template . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-896">VELOCITY-896</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Implicit conversion to numbers in integer ranges . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-895">VELOCITY-895</a>. </td>
<td>cbrisson</td>
</tr>
</tbody>
</table>
</p><h3>Release 2.0 - 2017-08-06</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 DataSourceResourceLoader for UTF-8 correct handling in VARCHAR/CLOB columns, and for connection / statement / result set life cycle . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Allow expressions inside []: <code> $foo[$bar + 1] </code> . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New strategy for reference boolean evaluation: <ol> <li> return false for a null object </li> <li> return its value for a Boolean object, or the result of the <code> getAsBoolean() </code> method if it exists. </li> <li> if <code> directive.if.emptycheck </code> is false (true by default), stop here and return true. </li> <li> check for emptiness: <ul> <li> return whether an array is empty. </li> <li> return whether <code> isEmpty() </code> is false (covers String and all Collection classes). </li> <li> return whether <code> length() </code> is zero (covers CharSequence classes other than String). </li> <li> returns whether <code> size() </code> is zero. </li> <li> return whether a Number <b> strictly </b> equals zero. </li> </ul> </li> <li> check for emptiness after explicit conversion methods: <ul> <li> return whether the result of <code> getAsString() </code> is empty (and false for a null result) if it exists. </li> <li> return whether the result of <code> getAsNumber() </code> <b> strictly </b> equals zero (and false for a null result) if it exists. </li> </ul> </li> </ol> . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Reviewed event handling API: <ul> <li> added a Context argument for all events </li> <li> got rid of the Executor pattern ; event handlers are directly called by the cartridge </li> </ul> . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Removed references to ExtProperties from the engine configuration API. . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Default encoding is now UTF-8. . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Make Velocity use the base logger namespace 'org.apache.velocity' unless specified with runtime.log.name in the configuration, and have the runtime instance log with this base namespace, and other modules log with children namespaces: <ul> <li> directive, and velocity.directive.[directivename] </li> <li> parser </li> <li> loader and loader.[loadername] </li> <li> macro </li> <li> rendering </li> <li> event </li> </ul> Get rid of UberspectLoggable interface. . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added unary negate math operator . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add a configurable space gobbling feature, to control indentation in the generated code. <br/> Possible values for the 'space.gobbling' configuration key: <ul> <li><code> none </code> : no space gobbling at all </li> <li><code> bc </code> : Velocity 1.x backward compatible space gobbling </li> <li><code> lines </code> (the default) : gobbles whitespaces and endline from lines containing a single VTL directive </li> <li><code> structured </code> : like 'lines', but also fixes indentation in children text blocks </li> </ul> . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> added a new pluggable ConversionHandler class which, by default, converts method arguments as needed between main basic Java data types (boolean, numbers and strings) . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> added a runtime.string.interning option to trigger Java String interning on or off . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Applied Jarkko memory-saving patch which frees tokens while parsing. Macros now use a call by sharing convention. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-841">VELOCITY-841</a>. Thanks to Jarkko Viinamäki.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> support $array.empty, as for $list.empty . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-843">VELOCITY-843</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> avoid useless string calculation in ASTStringLiteral . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-833">VELOCITY-833</a>. Thanks to Jarkko Viinamäki.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> nicified AST tree debug output . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> fix parsing of $obj._method() . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-830">VELOCITY-830</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> loading default properties should not prepend '/' and should use classloader to get resource stream . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-827">VELOCITY-827</a>. Thanks to Dawid Weiss.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Allow conversion of method args from String to Enum constant . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-825">VELOCITY-825</a>. </td>
<td>cbrisson</td>
</tr>
<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>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> MethodExceptionEventHandler now provide template location infos . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-746">VELOCITY-746</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Attach macros to their defining template. Also fixes VELOCITY-776. Thanks to Simon Kitching for the multithreading testcase. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-797">VELOCITY-797</a>. Thanks to Jarkko Viinamäki.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> have #foreach honnor the Closeable interface on the iterator . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-820">VELOCITY-820</a>. Thanks to Robert Fuller.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Don't leave 'initializing' to true if a problem occurs during initialization. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-804">VELOCITY-804</a>. Thanks to Felipe Maschio.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Remove dependency upon commons-collections-3 (except at compile-time for deprecated methods and classes which are needed for backward compatibility), use our own ExtProperties object. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-790">VELOCITY-790</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add a first implementation for the JSR 223 standard scripting interface. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-735">VELOCITY-735</a>. Thanks to Dishara Wijewardana.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix Template default encoding initialization problem. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-809">VELOCITY-809</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> The ResourceLoader API now provides a Reader rather than an InputStream. Also fixes VELOCITY-599. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-793">VELOCITY-793</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> InvalidReferenceHandler events should not be triggered by quiet references, null values, or by references testing inside #if / #elseif. Thanks to Renato Steiner for his testcase. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-553">VELOCITY-553</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Take advantage of the major version jump to enforce String keys in internal Context API . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-266">VELOCITY-266</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix regression: #set&lt;tab&gt;left-paren no longer valid grammar Patch from Mike Kienenberger applied + added test . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-863">VELOCITY-863</a>. Thanks to Mike Kienenberger.</td>
<td>sdumitriu</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> switch to slf4j logging facade . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> fix parser for '$map{key}' text rendering (StackOverflow 32805217) . </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Vulnerability in dependency: commons-collections: 3.2.1 . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-869">VELOCITY-869</a>. </td>
<td>sdumitriu</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Exception displayed when trying to loop over an Iterable private class . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-870">VELOCITY-870</a>. </td>
<td>sdumitriu</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> #foreach should work over any Iterable class . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-871">VELOCITY-871</a>. </td>
<td>sdumitriu</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Catch exceptions raised during chainable uberspector initialization . </td>
<td>sdumitriu</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Hypen is no more allowed in variable names . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-542">VELOCITY-542</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Method arguments can now be expressions . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-706">VELOCITY-706</a>. </td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Parser generation from the .jjt file is now handled by Maven . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-819">VELOCITY-819</a>. Thanks to Jarkko Viinamäki.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add a public fields Uberspector . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-12">VELOCITY-12</a>. Thanks to Candid Dauth.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Support query modification in DataSourceResourceLoader . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-814">VELOCITY-814</a>. Thanks to Darren Cruse.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add clear() to ResourceCache . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-813">VELOCITY-813</a>. Thanks to Oswaldo Hernandez.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Make #if() return false for empty strings and empty collections . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-692">VELOCITY-692</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add SLF4J logging option . </td>
<td>apetrelli</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Use Maven 2 as build system . </td>
<td>apetrelli</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed quotes escaping so that doubling single quotes only works when enclosing quotes are single quotes (and same behaviour for double quotes) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-785">VELOCITY-785</a>. Thanks to Jarkko Viinamäki.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed all remaining "throws Exception" clauses and the now useless ExceptionUtils class. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-751">VELOCITY-751</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Remove directive.if.tostring.nullcheck crutch with intent to replace testing of toString() null status with support for toBoolean() (or similar) method on objects being "#if'd". . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-731">VELOCITY-731</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Remove directive.set.null.allowed and instead always allow null to be #set to references. This also means removing all NullSetEventHandler code, since it was only in play when nulls were not allowed to be #set. . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Remove features deprecated in 1.7 ($velocityCount, $velocityHasNext, velocimacro.context.localscope, directive.evaluate.context.class and all internal supporting code (ProxyVMContext, EvaluateContext, etc). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-704">VELOCITY-704</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add ability to specify default values for macro parameters, e.g.; #macro(foo bar=1) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-697">VELOCITY-697</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add ability to place line comments next to macro parameter definitions. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-695">VELOCITY-695</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Block directives no longer require parenthesis so #@foo #end is now allowed. Also, brackets now work with Block Macros so #{@foo}bar#end works. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-690">VELOCITY-690</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed all deprecations (Anakia, Texen, VelocityServlet, etc.) . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed macro arguments to be pass by value. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-687">VELOCITY-687</a>. </td>
<td>byron</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.7 - 2010-11-29</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> Fixed quotes escaping so that doubling single quotes only works when enclosing quotes are single quotes (and same behaviour for double quotes) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-785">VELOCITY-785</a>. Thanks to Jarkko Viinamäki.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add access to template and directive debugging info via $/scope/.info. . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> LogManager now catches UnsupportedOperationExceptions during LogChute init. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-766">VELOCITY-766</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Ensure that DataSourceResourceLoader closes PreparedStatements. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-760">VELOCITY-760</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Mark optional dependencies as such in OSGi bundle manifest. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-753">VELOCITY-753</a>. Thanks to Matt Ryall.</td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.7-beta1 - 2010-04-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> Add support for OSGi-ready manifests in build/release tasks. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-694">VELOCITY-694</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> When comparing parameter types during method mapping, make Object always less specific than other types. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-753">VELOCITY-753</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Avoid NPEs in case of bad #foreach config. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-759">VELOCITY-759</a>. Thanks to Rachid.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Use LinkedHashMap to maintain order of VTL-created maps. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-755">VELOCITY-755</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Treat \ as non-special in string literals, except when specifying unicode sequences. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-555">VELOCITY-555</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Allow escaping of quotes (single or double) within string literals by doubling them ("" or ''). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-555">VELOCITY-555</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Give #parse better log/exception messages and give IncludeEventHandler a chance to handle null #parse args. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-758">VELOCITY-758</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix $.x parsing failures (particularly helpful for jQuery users). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-754,VELOCITY-729">VELOCITY-754,VELOCITY-729</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Log Velocimacro additions at debug level, as in pre-1.6 versions. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-744">VELOCITY-744</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add removeDirective(name) and loadDirective(classname) methods to allow runtime changes to the directive set. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-742">VELOCITY-742</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Throw an informative VelocityException when #define is given no parameter (instead of an ArrayIndexOutOfBoundsException). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-727">VELOCITY-727</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Throw an informative VelocityException when #parse is given no args (instead of an NPE). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-728">VELOCITY-728</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Changed #stop to a directive implementation (get it out of the parser) and allow it to accept a message as an argument to be written to the logs for debugging purposes. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-704">VELOCITY-704</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Change the scoping behavior of Velocity, keeping it optional (everything global scoped by default) but now providing an explicit namespace in content-containing directives (like macros, #foreach, #parse, etc.) in which references that should stay local may be kept. This is accompanied by numerous related changes, including: &lt;ul&gt; &lt;li&gt;A Scope reference can now be automatically made available within each content directive: &lt;ul&gt; &lt;li&gt;$template in Template.merge and #parse content&lt;li&gt; &lt;li&gt;$macro in #macro&lt;/li&gt; &lt;li&gt;$foreach in #foreach&lt;/li&gt; &lt;li&gt;$evaluate in #evaluate or Velocity.evaluate(...) content&lt;/li&gt; &lt;li&gt;$define in #define&lt;/li&gt; &lt;li&gt;$&amp;lt;amacro&amp;gt; in #@&amp;lt;amacro&amp;gt; (where &amp;lt;amacro&amp;gt; is the name of a macro being called with a body)&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;For performance and compatibility these are all off by default, *except* for $foreach. The others may be enabled by setting a velocity property like: &lt;br/&gt;&lt;code&gt;macro.provide.scope.control = true&lt;/code&gt;&lt;/li&gt; &lt;li&gt;When scopes of the same type are nested make the parent Scope available through the child (e.g. $foreach.parent or $foreach.topmost).&lt;/li&gt; &lt;li&gt;When a Scope reference overrides an existing reference that is not a Scope, make it available through the Scope (e.g. $foreach.replaced).&lt;/li&gt; &lt;li&gt;Made #break work in any of the above scopes to exit the most immediate one, unless a different scope is provided as an argument (e.g. #break($macro) or #break($foreach.topmost)).&lt;/li&gt; &lt;li&gt;Deprecated $velocityCount; please use $foreach.count or $foreach.index.&lt;/li&gt; &lt;li&gt;Deprecated $velocityHasNext; please use $foreach.hasNext, $foreach.first or $foreach.last&lt;/li&gt; &lt;li&gt;Deprecated velocimacro.context.localscope setting; please get/set local #macro references as members of the provided $macro scope control instead. (e.g. #set( $macro.foo = 'bar' ) and $macro.foo ).&lt;/li&gt; &lt;li&gt;Deprecated directive.evaluate.context.class setting; please get/set local #evaluate references as members of the provided $evaluate scope control instead. (e.g. #set( $evaluate.foo = 'bar' ) and $evaluate.foo ).&lt;/li&gt; &lt;/ul&gt; All of the deprecated features will be removed in Velocity 2.0. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-704">VELOCITY-704</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Calling #set on a macro argument (for which a #set-able reference was passed) will no longer propagate the new value to the original reference, but merely set the value of the macro argument reference. This was an obscure, infrequently used feature and was decided to be more problematic and unpredictable than useful. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-681">VELOCITY-681</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> In strict mode attempts to render references that evaluate to null will throw an exception. In the user wishes to suppress the exception and render nothing then the reference can be preceeded with '$!' as in $!foo. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-688">VELOCITY-688</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> The non default VelocityEngine construtors now do not initialize the runtime system so that properties may be set after construction. Also fixes an Initialization race condition. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-673">VELOCITY-673</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Make velocimacro.arguments.strict=true work with block macros. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-685">VELOCITY-685</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added a property for changing 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. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-623">VELOCITY-623</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix StringIndexOutOfBoundsException caused by #[[##x]]# (line comment on same line as end of textblock). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-676">VELOCITY-676</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix NPE caused by #@foo (w/o #end) in template. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-675">VELOCITY-675</a>. Thanks to Jarkko Viinamäki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Minor performance tweaks based on Findbugs findings . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-668">VELOCITY-668</a>. Thanks to Jarkko Viinamäki.</td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Pre 1.6 behavior of specifying #macro without parenthesis would throw a VelocityException has been restored. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-667">VELOCITY-667</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add support for calling velocimacros with body content by prefixing the macro name with @. (e.g. #macro( bold )&lt;strong&gt;$bodyContent&lt;/strong&gt;#end #@bold()any valid VTL here#end) The $bodyContent reference may be renamed via a velocimacro.body.reference setting in your velocity.properties. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-666">VELOCITY-666</a>. Thanks to Jarkko Viinamaki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Added #[[this is included in output but not parsed]]# syntax to replace and deprecate the much more limited #literal directive (which required parse-able content). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-661">VELOCITY-661</a>. Thanks to Jarkko Viinamaki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Re-implement #stop so that it stops template execution and rendering. This Also addresses a performance bottleneck detected in the old implementation. #stop is a general use directive now, and not just for debugging. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-663">VELOCITY-663</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Reduce performance bottleneck with the referenceInsert event handler call . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-662">VELOCITY-662</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Better error reporting when toString() throw an exception when testing an #if conditional. For example #if($foo) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-656">VELOCITY-656</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added bracketed index syntax, $foo[0], or #set($foo[0] = 1) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-406">VELOCITY-406</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Removed java.lang.Exception from throws clause of Velocity and VelocityEngine API. Also removed IOException so that all method calls use unchecked exceptions. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-659">VELOCITY-659</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Removed obsolete WebMacro conversion tool and experimental Veltag (which has been replaced by VelocityViewTag from VelocityTools). . </td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.6.4 - 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/fix.png"/>
</td>
<td> Fix double-checked locking in RuntimeInstance's optional lazy-init. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-750">VELOCITY-750</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix 100% CPU loop hang under simultaneous HashMap calls in ClassMap due to classic bug in Sun's implementation. Now uses ConcurrentHashMap when available and Hashtable otherwise. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-718">VELOCITY-718</a>. </td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.6.3 - 2009-12-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/fix.png"/>
</td>
<td> Add directive.if.tostring.nullcheck config switch to match past performance for those who do not need to check whether $foo.toString() returns null when doing #if( $foo ). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-731">VELOCITY-731</a>. Thanks to Jorgen Rydenius.</td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.6.2 - 2009-03-19</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 obscure caching problem in multiple resource loader situations where resources may exist in more than one loader and appear and disappear from loaders. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-702">VELOCITY-702</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix old regression from 1.4 in supporting methods declared as abstract in a public class but implemented in a non-public class. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-701">VELOCITY-701</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix problem with FileResourceLoader's resourceExists() when configured w/multiple paths. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-693">VELOCITY-693</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix ClassMap introspection bug introduced in 1.5, where public super-interface methods implemented in protected or private classes were unreachable. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-689">VELOCITY-689</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix regression in proxying of macro argument #set calls. Note that in 1.7, calling #set on a macro argument (for which a #set-able reference was passed) will not propagate the new value to the original reference, but merely set the value of the macro argument reference. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-681">VELOCITY-681</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix loss of inline macros when #evaluate is used. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-682">VELOCITY-682</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix name of sources jar for maven deployment. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-554">VELOCITY-554</a>. Thanks to Adrian Tarau.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Pre 1.6 behavior of specifying #macro without parenthesis would throw a VelocityException has been restored. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-667">VELOCITY-667</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Better error reporting when toString() throw an exception when testing an #if conditional. For example #if($foo) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-656">VELOCITY-656</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix $velocityHasNext so that it works in nested foreach blocks. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-658">VELOCITY-658</a>. Thanks to Jarkko Viinamäki.</td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Throw an exception in strict mode when &gt;=, &lt;=, &lt; or &gt; comparisons can't be made. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-645">VELOCITY-645</a>. </td>
<td>byron</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix $velocityHasNext so it is not always true. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-657">VELOCITY-657</a>. </td>
<td>cbrisson</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.6.1 - 2008-12-15</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> Correct/enhance template name reporting for #include and #parse. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-654">VELOCITY-654</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed redundant error message in ASTReference. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-653">VELOCITY-653</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix limitation in new macro implementation that resisted #set calls to change references defined as arguments for the macro. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-615">VELOCITY-615</a>. Thanks to Steve O'Hara.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix vararg bugs when calling overloaded methods like get(String,String,Object[]) and get(String,List). (e.g. in VelocityStruts' MessageTool) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-651">VELOCITY-651</a>. Thanks to Stephan Schmid.</td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.6 - 2008-12-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/fix.png"/>
</td>
<td> Fix NPE when null value is passed to array/vararg method. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-649">VELOCITY-649</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Track template name in Node, to get proper template name in the exception message when a reference in a macro causes that exception. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-644">VELOCITY-644</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Update Finnish and Spanish User Guide sections on division operation. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-352">VELOCITY-352</a>. Thanks to Gonzalo Diethelm, Joni Salonen.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix classpath for XMLApp example. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-641">VELOCITY-641</a>. Thanks to Will Glass-Husain.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix references to Oro dependency to make it clear that it is only necessary for certain reference event handlers. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-617">VELOCITY-617</a>. Thanks to Adrian Tarau.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Remove old Anakia/Texen docs and examples. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-640">VELOCITY-640</a>. Thanks to Will Glass-Husain.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix bug in vararg support where an array passed to a vararg method was being wrapped in another array. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-642">VELOCITY-642</a>. Thanks to Ilkka Priha.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Locked down versions for reporting plugins in Maven POM. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-638">VELOCITY-638</a>. Thanks to Benjamin Bentmann.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add Maven-Ant tasks for installing and deploying Maven artifacts, including previously missing source and javadoc jars (VELOCITY-554). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-466">VELOCITY-466</a>. Thanks to Adrian Tarau.</td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.6-beta2 - 2008-10-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/fix.png"/>
</td>
<td> Fix User Guide's Table of Contents anchor links. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-632">VELOCITY-632</a>. Thanks to Sebb.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix parser bug that prevented references from immediately preceding #set directives. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-631">VELOCITY-631</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Revert change made for VELOCITY-285, as it broke pass-by-name nature of macro arguments. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-630">VELOCITY-630</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix line numbers in string literals. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-629">VELOCITY-629</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix line number for exceptions with body of #foreach directive. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-627">VELOCITY-627</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Log full macro stack when a RuntimeException occurs in a template. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-626">VELOCITY-626</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Format template and line/column numbers consistently in error and log messages. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-622">VELOCITY-622</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Don't override pre-configured log levels for JdkLogChute or Log4JLogChute. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-624">VELOCITY-624</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add optional 'runtime.references.strict' property that has Velocity throw exceptions when it encounters undefined references or velocimacros in a template. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-618">VELOCITY-618</a>. Thanks to Byron Foster.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Inlude Maven Ant tasks jar in downloads and add support for downloading from Maven2 repos. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-554">VELOCITY-554</a>. Thanks to Adrian Tarau.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix problem with single backslash in interpolated (double-quoted) strings. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-585">VELOCITY-585</a>. Thanks to Jon Seymour.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix escaping of bracketed directives (e.g. \#{if}($foo)$bar\#{end}). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-616">VELOCITY-616</a>. Thanks to Alik.</td>
<td>nbubna</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.6-beta1 - 2008-09-22</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> Uberspectors chaining . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-588">VELOCITY-588</a>. Thanks to Vincent Massol, Sergiu Dumitriu.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add ability to set a connection timeout for URLResourceLoader. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-585">VELOCITY-585</a>. Thanks to Tim White.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Make it easier to override ResourceFactory.getResource(...) in ResourceManagerImpl. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-227">VELOCITY-227</a>. Thanks to Charles Morehead.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Fix BooleanPropertyExecutor to recognize "public Boolean isFoo" properties. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-544">VELOCITY-544</a>. Thanks to Adam Bishop, Jarkko Viinamaki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add a separate resourceExists(String name) method to ResourceLoader(s) to improve performance. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-439">VELOCITY-439</a>. Thanks to Tassos Bassoukos, Henning Schmiedehausen.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Fix missing # and $ characters within #literal() directive output. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-355">VELOCITY-355</a>. Thanks to Geoffrey Lowney, Dan Ertman.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add support for static utility classes: context.put("math", Math.class) -&gt; $math.sin(0) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-102">VELOCITY-102</a>. Thanks to Juozas Baliuka, Adrian Tarau, Jim Seach.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add #define directive set an unrendered block of VTL as a reference. (e.g. #define( $foo )Hello, $bar!#end #set( $bar = 'world') $foo -&gt; Hello, world!) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-174">VELOCITY-174</a>. Thanks to Andrew Tetlaw.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add #break directive to exit #foreach loops early. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-612">VELOCITY-612</a>. Thanks to Jarkko Viinamaki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Fixed major performance issues with Velocimacros. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-607">VELOCITY-607</a>. Thanks to Jarkko Viinamaki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Removed many, various performance bottlenecks and concurrency issues. (Also see VELOCITY-595) . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-606">VELOCITY-606</a>. Thanks to Jarkko Viinamaki.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New VTL syntax $velocityHasNext within #foreach loops . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-600">VELOCITY-600</a>. Thanks to Adrian Tarau.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Multi-line comments in macros were rendering extra *# when evaluated. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-580">VELOCITY-580</a>. Thanks to Marnix van Bochove.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Have VelocityCharStream use an exponential buffer expansion rate. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-570">VELOCITY-570</a>. Thanks to Ronald Klop.</td>
<td>cbrisson</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Prevent exception due to simultaneous rendering of macros. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-566">VELOCITY-566</a>. Thanks to Etienne Massip.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New VTL syntax allows arrays to be treated like fixed length lists. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-533">VELOCITY-533</a>. Thanks to Christopher Schultz.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added support for varargs in method calls. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-534">VELOCITY-534</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Prevent NPE when template is parsed simultaneously by multiple users. (may apply only to macros). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-536">VELOCITY-536</a>. Thanks to Lei Gu, Dima Tkach.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Users can now include libraries of macros with #parse in a template. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-362">VELOCITY-362</a>. Thanks to Supun Kamburugamuva.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Macro libraries can now be selected programatically when merging templates. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-529">VELOCITY-529</a>. Thanks to Supun Kamburugamuva.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Catch IllegalArgumentException when invoking method. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-452">VELOCITY-452</a>. Thanks to Alexey Panchenko.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed parse error for map definitions ending with a reference. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-538">VELOCITY-538</a>. </td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add new property velocimacro.max.depth which limits max macro calling depth. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-297">VELOCITY-297</a>. Thanks to Supun Kamburugamuva.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add ability to add directives programmatically . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-547">VELOCITY-547</a>. Thanks to Adam Heath.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Allow user directives to have no content. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-548">VELOCITY-548</a>. Thanks to Adam Heath.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> IncludeNotFound event handler was displaying "not found" template. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-551">VELOCITY-551</a>. Thanks to Michiel Toneman.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix StringResourceLoader to make it possible to use more than one loader per VM. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-541">VELOCITY-541</a>. </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Make unicode encoding work in velocity templates. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-520">VELOCITY-520</a>. Thanks to Stepan Koltsov.</td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add a ServletLogChute that allows logging through the servlet API. Ported from the Velocity Tools project. . </td>
<td>nbubna</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add a CommonsLogLogChute that allows logging through commons-logging. . </td>
<td>nbubna</td>
</tr>
<tr>
<td/>
<td> Deprecate integrated texen and anakia, factor it out into separate jars. . </td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added new directive #evaluate() to dynamically evaluate VTL. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-509">VELOCITY-509</a>. </td>
<td>wglass</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.5 - 2007-01-28</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 to SecureUberspector to work properly with #foreach and iterators. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-516">VELOCITY-516</a>. Thanks to Vincent Massol.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Make FileResourceLoader unicode aware to allow skipping over BOM markers like those created by Windows Notepad. This is a workaround for a Java bug, where Java itself does not recognize the UTF-8 BOM as defined by the unicode standard. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-191">VELOCITY-191</a>. Thanks to Aki Nieminen.</td>
<td>henning</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.5-beta2 - 2006-11-24</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> New StringResourceLoader can retrieve templates from repository of in-memory Strings. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-183">VELOCITY-183</a>. Thanks to Eelco Hillenius.</td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> RuntimeInstance.getProperty now returns value set with RuntimeInstance.setProperty, even before initialization. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-493">VELOCITY-493</a>. Thanks to Claude Brisson.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> When macros have incorrect number of arguments, if property "velocimacro.arguments.strict" is set to true a ParseErrorException will be thrown. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-435">VELOCITY-435</a>. </td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> MethodInvocationException now contains line, column, template name allowing application to produce more useful error messages. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-414">VELOCITY-414</a>. Thanks to Matthijs Lambooy.</td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed race condition in template retrieval that caused macros to fail under simultaneous load. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-24">VELOCITY-24</a>. </td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New event handler InvalidReferenceHandler allows application to catch invalid references. Sample implementation collects them in list and optionally throws exception. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-423">VELOCITY-423</a>. </td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New, optional SecureIntrospector prohibits methods that involve manipulation of classes, classloaders or reflection objects. Use this introspector to secure Velocity against a risk of template writers using reflection to perform malicious acts. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-179">VELOCITY-179</a>. </td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed Serializable from InternalContextBase, because one of the members is not serializable anyway so this never worked (Found by Findbugs). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-458">VELOCITY-458</a>. </td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Add an additional pair of Executors that are smart about Map. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-449">VELOCITY-449</a>. Thanks to Alexey Panchenko.</td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Method caching now uses consistent keys. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-453">VELOCITY-453</a>. Thanks to Alexey Panchenko.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Change the meaning of localscope for macros to allow access to references from calling context. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-459">VELOCITY-459</a>. Thanks to Stephen Haberman.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Add a test for the DataSourceResource Loader. . </td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Fix a problem in the DataSourceResource Loader, removing a potential security issue with SQL injection. . </td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Build now creates the MD5 and SHA1 checksums for archives and jars. . </td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix a number of issues reported by running FindBugs on the Velocity source. . </td>
<td>henning</td>
</tr>
</tbody>
</table>
</p><h3>Release 1.5-beta1 - 2006-09-13</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> Stop references from calling object.toString() twice. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-438">VELOCITY-438</a>. Thanks to Stephen Haberman.</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> Pass through all runtime exceptions. Among other benefits, this allows plugins to throw a runtime exception to signify an application level problem in the calling application. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-429">VELOCITY-429</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> When #include was followed by #parse with the same file name, a ClassCastException was thrown. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-98">VELOCITY-98</a>. Thanks to Michal Chmielewski.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Wrapped exceptions now have Cause property set on JDK 1.4. (note that Velocity continues to run under JDK 1.3). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-425">VELOCITY-425</a>. Thanks to Llewellyn Falco.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> When Velocity is initialized, default.properties stream was not being closed. This made it difficult to undeploy webapps on Windows with Velocity unpacked. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-418">VELOCITY-418</a>. Thanks to Jason Weinstein.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Upgraded to latest commons collection, fixing problem with non-recognition of configuration file encoding in rare circumstances. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-151">VELOCITY-151</a>. Thanks to Kirk Wolf.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> The Introspector could throw a NPE when a parameter to an overloaded method was null. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-370">VELOCITY-370</a>. Thanks to Reggie Riser.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> If toString() returned null in a silent reference then "null" was displayed. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-381">VELOCITY-381</a>. Thanks to Llwellyn Falco and Dan Powell.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed bug in which empty body for #if (e.g. &lt;code&gt;#if(some expression)#end&lt;/code&gt; caused ParseException. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-359">VELOCITY-359</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added javacc task to build.xml simplifying modification process for editing syntax files. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-222">VELOCITY-222</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Velocity Engine was throwing NPE when used without a call to init(). Now gives a more meaningful exception message. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-374">VELOCITY-374</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> Fixed problem with Uberspect Info class being created incorrectly. Added template name to Info allowing better error reporting. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-404">VELOCITY-404</a>. Thanks to Llewellyn Falco.</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> Numerous improvements to the documentation. Reorganized table of contents, moved community content to the Wiki, added article on using Velocity in web applications. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> When testing objects in VTL for equality, if both objects are a number, use number equality. If both objects are the same class, use the equals method. New behavior: If objects are different classes, compare the String representation of both objects rather than logging an error. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-350">VELOCITY-350</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Velocity would give error when last line of file was a ## comment. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-272">VELOCITY-272</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> Added method to retrieve application attributes. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-412">VELOCITY-412</a>. Thanks to Malcolm Edgar.</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> Velocity now searches in the current thread's context classloader before the system classloader for all templates loaded with the ClasspathResourceLoader and for all user-defined ResourceLoaders, introspectors, event handlers, etc. A typical use for this is to have Velocity in the application container classpath while keeping templates and plugins in the webapp classpath. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-196">VELOCITY-196</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> #set now sets references to null when required. For backwards compatibility this must be enabled by setting the configuration key &lt;code&gt;directive.set.null.allowed&lt;/code&gt; to true. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to Thomas Veith.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New optional event handler that escapes all references. Regular expressions can be used to configure which references have HTML, JavaScript, SQL, or XML escaping. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New optional event handler implementation that forces #parse / #include to stay in same directory as parent template. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-154">VELOCITY-154</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New event handler to modify behavior of #parse / #include. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-260">VELOCITY-260</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> FileResourceLoader now accepts absolute path when configured to accept it. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-144">VELOCITY-144</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> String containing "##" was treated as unterminated String. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-126">VELOCITY-126</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Spruced up Geir's old URLResourceLoader and promoted it from the whiteboard to the main distribution. . Fixes <a href="https://issues.apache.org/jira/browse/VELTOOLS-55">VELTOOLS-55</a>. Thanks to Charles Harvey.</td>
<td>nbubna</td>
</tr>
<tr>
<td/>
<td> Throw Runtime exceptions from nodes up the chain. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-424">VELOCITY-424</a>. Thanks to Malcom Edgar.</td>
<td>henning</td>
</tr>
<tr>
<td/>
<td> Revert the split between org.apache.velocity.runtime.parser.node.Node and org.apache.velocity.runtime.parser.Node. The parser now only uses ...parser.node.Node because this change broke custom directives. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-426">VELOCITY-426</a>. Thanks to Malcom Edgar.</td>
<td>henning</td>
</tr>
<tr>
<td/>
<td> Made a lot of internal logging upgrades including: Deprecated LogSystem interface and replaced it (and all its implementations) with a new LogChute interface and implementations, added getLog() to RuntimeServices (and all its friends) to improve on and replace its now deprecated logging methods, added a JdkLogChute as a 3rd default option for those using JDK 1.4+, and added a StandardOutLogChute as final resort if other LogChute inits fail. See JIRA issues VELOCITY-403, VELOCITY-166, VELOCITY-403,VELOCITY-166,VELOCITY-78, VELOCITY-157, VELOCITY-159, VELOCITY-193. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-403">VELOCITY-403</a>. Thanks to .</td>
<td>nbubna</td>
</tr>
<tr>
<td/>
<td> Removed all J2EE build tasks. Now automatically detects availability of javax.sql.Datasource (in JDK 1.4+) and builds DatasourceResourceLoader when allowed. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-401">VELOCITY-401</a>. Thanks to .</td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> ant build now downloads the required dependency jars from ibiblio.org . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>henning</td>
</tr>
<tr>
<td/>
<td> Unified template name, line and column number reporting for ParserErrorException . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-373">VELOCITY-373</a>. Thanks to Malcolm Edgar.</td>
<td>henning</td>
</tr>
<tr>
<td/>
<td> Dropped the non-functional Velocity compiler. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>henning</td>
</tr>
<tr>
<td/>
<td> Started separating out the JavaCC generated parts of the Velocity Parser. Not yet complete to avoid user visible changes. Scheduled to be completed for 2.0 . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Contributed a maven build for Velocity . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Reworked the ant build to product only two jars: velocity.jar and velocity-dep.jar. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>henning</td>
</tr>
<tr>
<td/>
<td> Removed the Configuration class and all methods that references it. This class was deprecated since Velocity 1.1 and was scheduled to be gone for Velocity 1.3 or 1.4. Now it was finally removed in 1.5. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>henning</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Added support for decimal numbers. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-242">VELOCITY-242</a>. Thanks to Peter Romianowski.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> MethodInvocationException now consistently thrown (previously was hidden when in parameter to Velocimacro). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-284">VELOCITY-284</a>. Thanks to Mike Rettig.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixed problem in which foreach loop would fail to call overloaded method. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-109">VELOCITY-109</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Removed ERROR level log message "Can't find 'VM_global_library.vm'". . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-86">VELOCITY-86</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Anakia now generates consistent line endings based on platform. Requires upgrade to JDom 1.0. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-348">VELOCITY-348</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Anakia can now be pre-loaded with custom context values from an optional XML file. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-190">VELOCITY-190</a>. Thanks to Peter Ryan.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> Directives can now be delimited with curly braces, for example #if($condition)something#{else}otherthing#{end}. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-43">VELOCITY-43</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Nulls now handled appropriate within #foreach. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-254">VELOCITY-254</a>. Thanks to Christopher Reck.</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Upgraded JavaCC to version 3.2, providing JDK 1.5 compatibility. (Older version used keyword 'enum' which is reserved in JDK 1.5). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-324">VELOCITY-324</a>. Thanks to Shinobu Kuwai.</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> DatasourceResourceLoader now allows injection of Datasource, allowing it to be used in Inversion of Control (IOC) frameworks. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-267">VELOCITY-267</a>. Thanks to Matt Raible .</td>
<td>wglass</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> #stop now works properly. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-218">VELOCITY-218</a>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> ClasspathResourceLoader now searches ContextClassLoader for template. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-196">VELOCITY-196</a>. Thanks to Charles Oliver Nutter.</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> Removed use of &lt;a href="http://jakarta.apache.org/log4j/"&gt;Log4J's&lt;/a&gt; deprecated Category and Priority classes in favor of the corresponding and supported Logger and Level. To update, replace necessary references, and Category.getInstance() with Logger.getLogger(). . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-164">VELOCITY-164</a>. Thanks to .</td>
<td>dlr</td>
</tr>
<tr>
<td>
<img src="images/add.png"/>
</td>
<td> New Map literal syntax. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-152">VELOCITY-152</a>. Thanks to James Taylor.</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> Removed the long-deprecated Log4JLogSystem. Never fear, SimpleLog4JLogSystem remains. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>dlr</td>
</tr>
<tr>
<td/>
<td> Enhanced the implementation of ResourceCacheImpl using Jakarta Commons Collections LRUMap class. The previous greedy implementation did not set an upper bound for the cache size, meaning that cached resources were never relinquished (a possible memory leak). You can continue to use that behavior by setting the &lt;code&gt;resource.manager.cache.size&lt;/code&gt; for your cache to less than 1. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>dlr</td>
</tr>
<tr>
<td/>
<td> Took dan's modified SimpleLog4jLogSystem, and renamed Log4JLogSystem, and put back old version of SimpleLog4JLogSystem, as deprecated. That way we can move forward with an up-to-date version that uses Logger, and for one release, be backwards compatile for the Category-using log4j crowd. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to Daniel Rall.</td>
<td>geirm</td>
</tr>
<tr>
<td/>
<td> Deprecated org.apache.velocity.tools.VelocityFormatter class in favor of the various format classes in the Velocity Tools library. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>wglass</td>
</tr>
<tr>
<td/>
<td> Deprecated the org.apache.velocity.servlet.VelocityServlet class in favor of org.apache.velocity.tools.view.servlet.VelocityViewServlet from the Velocity Tools library. Servlet interaction is more a core competency of the Velocity Tools package than of Velocity's core. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>dlr</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix to BaseTestCase as suggested by Will Glass-Husain to handle line endings . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-185">VELOCITY-185</a>. Thanks to wglass.</td>
<td>geirm</td>
</tr>
<tr>
<td/>
<td> Parameterized cache and mod time control in TexenTask based on patch from Henning. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to henning.</td>
<td/>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fix to DatasourceResourceLoader - stop using the old Runtime singleton as would leak a little memory for each instance of VelocityEngine created. Hunted down by Will Glass-Husain. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-150">VELOCITY-150</a>. Thanks to wglass.</td>
<td>geirm</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> SimplePool now removes elements from pool on a get(). NOTE : Previously, it left the reference to the object in the pool. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-161">VELOCITY-161</a>. Thanks to wglass.</td>
<td>geirm</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Fixes problem with single line comment embedded in a multi-line comment. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-61">VELOCITY-61</a>. Thanks to wglass.</td>
<td>geirm</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Change for VELOCITY-221 and partial for VELOCITY-148, allowing newlines in directives. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-221">VELOCITY-221</a>. Thanks to .</td>
<td>geirm</td>
</tr>
<tr>
<td/>
<td> Change to finish request VELOCITY-148, allowing '+' as a string concat. We'll have to see how the community likes it. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-148">VELOCITY-148</a>. Thanks to .</td>
<td>geirm</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Didn't allow formal reference notation as first arg to foreach. . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-239">VELOCITY-239</a>. Thanks to .</td>
<td>geirm</td>
</tr>
<tr>
<td/>
<td> To make using w/ XML easier allow alternative logical operators 'and', 'or', 'lt', 'gt', 'le', 'ge', 'eq', 'ne', 'not'. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>geirm</td>
</tr>
<tr>
<td/>
<td> Allow newlines in strings. . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>geirm</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Tiny fix to VelocityWriter to prevent a NPE if someone passes it a null . Fixes <a href="https://issues.apache.org/jira/browse/VELOCITY-148">VELOCITY-148</a>. Thanks to .</td>
<td>geirm</td>
</tr>
<tr>
<td>
<img src="images/fix.png"/>
</td>
<td> Anakia changes to accomodate finalization of JDOM API. In AnakiaJDOMFactory, AnakiaTask, and OutputWrapper . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>geirm</td>
</tr>
<tr>
<td/>
<td> Added template, line and column info to MIEs thrown by ASTMethod . Fixes <a href="https://issues.apache.org/jira/browse/"/>. Thanks to .</td>
<td>geirm</td>
</tr>
</tbody>
</table>
</p>
</p></div></div>
<hr/>
<div id="copyright">
Copyright &#169; 2020 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>