About
Community
Docs
Tools
Comparisons
Site Translations
|
Velocity Changes
|
This document tracks the changes in Velocity between releases.
1.4-rc1
|
This section describes changes to the 1.4 branch after
rc1. It was released as v1.4 on April 14, 2004.
- Update license to Apache Software License v2.0
|
|
1.4
|
This section describes changes to the main branch after the
1.3 release. They were released as part of 1.4 rc1 on
Oct-9-2003.
-
Added support for dynamic selection of output character encoding to
VelocityServlet. By default, the selected encoding is the value of
the output.encoding Velocity property, but can be made dynamic by
overriding the new chooseCharacterEncoding() method. (dlr)
-
Bill Boland pointed out that VelocityServlet's pooling of
VelocityWriter was preventing the underlying OutputStreamWriter from
being garbage collected. This was fixed by clearing the
VelocityWriter's reference to its internal OutputStreamWriter to allow
the latter to be GC'd while VelocityWriter is pooled. (#18951)
-
Deprecated org.apache.velocity.runtime.Runtime in favor of the
RuntimeInstance and RuntimeSingleton classes. (dlr)
-
Fix to MethodMap part of introspector to make the overloaded
method selection work as specified in the JLS, from Attila
Szegedi. (gmj)
-
Tiny fix for bug where multiple slashes not getting rendered correctly. (#7380)
(gmj)
-
Fix for bug where #set($foo = !true) not working. (#7387) (gmj)
-
Fix for bug where $##(nl) foo ate the $ (#7381) (gmj)
-
Disallow any WORD tokens for directives except 1st arg to #macro() or thi 'in'
in foreach. (#7383,#7384) (gmj)
-
Remove '=' as a valid token for anything but #set() as nothing else can do
assignment. (#7385) (gmj)
-
Fix problem where VM in stringlit as arg to VM NPE'd. Whoops. (gmj)
-
Deprecated
Velocity.templateExists(String) in favor of
the more appropriately named
Velocity.resourceExists(String) . (dlr)
-
Deprecated VelocityServlet's
properties key in favor of
the namespace protected org.apache.velocity.properties
key. (dlr)
-
Update user guide - remove confusing (wrong) content. (gmj)
-
Brought all introspective-ish behavior under one umbrella interface, Uberspect,
to allow customizable, pluggable introspection. (gmj)
- ``
Fixes for bug 7684 : make sure event handler called with real reference literal
even if a quiet reference. Bug 7183 : fixes to win32 .bat files in examples
(gmj)
-
Fix for bugs 8517, 6955 : anything ...#set... was confusing the parser (gmj)
-
Removed deprecated use of DEFAULT_OUTPUTTER.output() in Anaka's NodeList (gmj)
-
Upgraded JDOM to v1.0b9 (gmj)
|
|
1.3.1-rc2
|
This section desscribes changes to the VEL_1_3_BRANCH after
the 1.3.1-rc2 release. It was released as 1.3.1 on it's own branch,
VEL_1_3_1_BRANCH on March 31, 2003.
|
|
1.3.1-rc1
|
This section describes changes to the VEL_1_3_BRANCH after the
1.3.1-rc1 release. This was released as 1.3.1-rc2 on July 24, 2002.
-
Another fix to primitive argument introspection problem,
suggested by Chris Felaco(gmj)
-
Another minor introspection tweak, for null values (gmj)
|
|
1.3
|
This section describes changes to the VEL_1_3_BRANCH after the
1.3 release. This was released as 1.3.1-rc1 on July 22, 2002.
-
Fixed primitive argument introspection problem. (gmj)
|
|
1.3-rc1
|
This section describes changes to the VEL_1_3_BRANCH after the
1.3-rc1 release. This branch was released as v1.3 on July 7, 2002.
-
Fixed javadoc in ClasspathResourceLoader (gmj)
-
Backport from HEAD the #foo("#bar('a')") NPE fix (gmj)
-
Update User's Guide - remove confusing and wrong content. (gmj)
-
Fixed problem discovered by Ivan Bella where concurrent method
invocations with varying parameters would be incorrect. (gmj)
-
Brought recent Spanish and French translations of the User's Guide to the
1.3 branch. (gmj)
|
|
1.3-dev
|
This section describes changes to the main branch after the
1.2 release. This was then branched as VEL_1_3_BRANCH in CVS
and released as v1.3-rc on March 17, 2002.
-
Fix to LogSystem. ORed when I should have ANDed. Reported
by Matt Gould (mpg@mpgsoftware.com). (gmj)
-
Documentation patch for 'getting started', reported by
Yuji Kumasaka (kumasaka@mms.intec.co.jp) (gmj)
-
Changed AnakiaTask to not specify Xerces, but let JDOM find
a parser. (gmj)
-
Change reported in bug #4256 by Jim Mackraz (jim@mackraz.com)
reviewd and fixed by DLR. (gmj)
-
Fixed Velocimacro autoload infinite loop bug. (gmj)
-
Update docs re autoload VM and repeatability of init() (gmj)
-
Added constructors to VelocityContext for plug and play
interoperability with the java.util.Map interface (dlr, gmj)
-
Committed Texen patches from Stephane Bailliez
(sbailliez@imediation.com) anticipating review by the Texen
aficianados in the Velocity community. (gmj)
-
Fix problem where local-scope VMs were interfering with
VM library autoloading. (gmj)
-
Added support for primitive arrays in #foreach() re bug #4370
(gmj)
-
Parser fixes for $foo.bar} and $foo.bar#if (gmj)
-
Changed build targets to not include external dependencies in
velocity jars by default. (gmj)
-
Added support for an 'ApplicationContext' to allow the application
set an Object accessable to custom loaders and loggers. (gmj)
-
Added
cleanup() hook method to
TexenTask to easily allow subclasses to perform
cleanup activities without overriding
execute() . (dlr)
-
ResourceManager and ResourceCache are now pluggable.
Default implementations work as they always did. (gmj)
-
Added support for allowing user to configure pluggable
directives. We supported it, but offered no way of
actually configuring it as such. (gmj)
-
Fixed lonely # in #macro() bug reported by
Tim Chamberlain (tchamberlain@sportingnews.com) and
added template test. (gmj)
-
Deprecation update : AnakiaTask b/c JDOM, default logger
b/c LogKit 1.0. (gmj)
-
New simple log4j logger, uses either an existing category if that is
passed to it, or just writes to a new file.
-
Log support enhanced to include automatic selection for default file logger
using either Jakarta Avalon Logkit or Jakarta Log4j, whichever it finds
in the classpath. (gmj)
-
Fix for problem reported by Robert Edgar where a reference-ish entity
like \${foo} wouldn't render the preceeding \
-
Support for is<Property>() introspection. (gmj)
-
Added better resolution of method ambiguity based on invocation
parameters so we better choose between overloaded methods. (gmj)
-
Patch from Michael McKibben for introspector to fix problem
where public interface methods implemented by a private or default
class were skipped when resolving access. (gmj)
-
Modified the Introspector and environs to make it independent
of Velocity-specific imports for reuse by others. (gmj)
-
Patch from Dan Finkelstein to fix problem when a resource
loader in named, but has no defined parameters, resulting in
NPE from ResourceManager. (gmj)
-
Adjusted formatting of the default error output from
VelocityServlet as suggested by Igor Fedulov. (gmj)
-
Fix for so-called runt reference bug reported by
Lukas Zimmermann such that $foo.bar()RUNT had following
RUNT treated as a reference. (gmj)
-
Update servlet1 example to use the 'new' handleRequest() (gmj)
-
Added support for ${user.home}/build.properties to Ant build
file. (dlr)
-
VelocityServlet subclasses may now use a web.xml context
parameter as the default value for the path to their
velocity.properties file. (dlr)
-
Added patch from Sylwester Lachiewicz (matrix@plusnet.pl)
for the DataSourceResourceLoader
to bring the javadoc up to date re the properties example,
and he also added examples for the DataSource configuration as well as the
syntax needed to create a compatible table. (gmj)
-
Small fix to enable logical complement #set($foo = !$bar), as reported by
Chris Rousseau. (gmj)
-
Doc fixes by many. Thanks all. (gmj)
-
Fix to StringUtils.chop(). (gmj)
-
Fix to StringLiteral bug found by Stephane Bailliez - in high load situations
it was possible to get an NPE if the timing worked out just right. Also
fixed a side-effect found by Victor Salaman. (gmj)
-
Fix to $foo## bug reported by Nathan Bubna. (gmj)
-
Fix to VM bug found by Paulo Gaspar, where when using inline-scope VMs and
VM recursion the namespace got dumped at the wrong time, killing the
recursion. (gmj)
-
Add class to provide bean-like access to Texen. (jvz)
-
Small introspection side-effect fix suggested by Sven Meier, prevents
Obj[] from getting altered in event of null value. (gmj)
-
Log4jLogSystem deprecated in favor of the simpler SimpleLog4jLogSystem.
(gmj)
|
|
1.2
|
1.2 was released on December 9, 2001.
|
|
1.2-rc3
|
This section describes changes to the VEL_1_2_BRANCH after the
1.2-rc3 release. 1.2-rc3 was released on November 7, 2001
for a quick community check. It is intended to be the final
rc for the 1.2 release.
-
Small fix to Velocity.java and VelocityEngine.java for
invokeVelocimacro() - the were broken in the last major
VM change (months ago) and never noticed. (gmj)
-
Added notes re the new no-dep jar. (gmj)
|
|
1.2-rc2
|
This section describes changes to the VEL_1_2_BRANCH after the
1.2-rc2 release. 1.2-rc2 was released on October 18, 2001
as an administrative fix for 1.2-rc1 (files were damaged.)
-
Backport the 'disappearing curly' and 'nit' fixes from 1.3 (gmj)
-
Backport autoreload infinte loop and local-scope
interferance bugs. (gmj )
-
Backport Texen patches from Stephane Bailliez and follow-on
fixes from jvz and dlr. (gmj)
-
Changed build targets to not include external dependencies in
velocity jars by default. (gmj)
|
|
1.2-rc1
|
This section describes changes to the VEL_1_2_BRANCH after the
1.2-rc1 release. These are updates working towards a rc2 or
final.
-
Fix to LogSystem. ORed when I should have ANDed. Reported
by Matt Gould (mpg@mpgsoftware.com). (gmj)
-
Documentation patch for 'getting started', reported by
Yuji Kumasaka (kumasaka@mms.intec.co.jp) (gmj)
-
Changed AnakiaTask to not specify Xerces, but let JDOM find
a parser. (gmj)
-
Change reported in bug #4256 by Jim Mackraz (jim@mackraz.com)
reviewd and fixed by DLR. (gmj)
|
|
1.2-dev
|
This section describes changes to the main branch after the 1.1 release.
This was then branched as VEL_1_2_BRANCH in CVS and released as v1.2-rc1
on September 26, 2001.
-
Fix to AbstractContext to 'roll forward' EventCartridges to ensure that
the last one added is available at render time. (gmj)
-
Small changes to developer docs re jar-src target and docs target. (gmj)
-
Small changes to AND and OR nodes to support the legal but wacky use like
#set( $foo = ($woog || $bar ) ). (gmj)
-
Major change to Parser char stream - no longer using the stock, javacc generated
ASCII 8-bit char stream but rather a Unicode 'custom' char stream. This solves
the problems reported with 16 bit characters that unluckily have a 0a or 0d in the
low-order byte. (gmj)
-
Added additional templates to encoding test using contributions from
Ilkka Priha, Michael Zhou and Vitaly Repetenko. Thanks guys! (gmj)
-
Update from Russel Edens to clear fileWriter cache for Texen's
Generator.java. (JSS)
-
Fix to VM system to prevent dumping of VM namespace when using
namespaces (in local.scope). (gmj)
-
Fix to VM system to have correct 'schmoo'
output of a non-reference passed as arg to VM. Thanks to DLR
and Paulo for flogging this out of me :) (gmj)
-
Updates to StringUtils from Robert Burrell Donkin. (gmj)
-
Added MIE propogation from #parse() and VMs to propogate out. Thanks
to Michael Salmon for pointing this out. (gmj)
-
Added logging interface to Velocity class for completeness. (gmj)
-
Patch by Michael Salmon to WebMacro converter tool to let arbitrary
set of files be converted. (gmj)
-
TokenManagerError now thrown as ParserException to allow catching
at application level. (Suggested by Tim Joyce.) (gmj)
-
Small parser fix to get ObjectArrray and IntegerRange handling right
everywhere. (gmj)
-
Speed optimzations for test provider. (dlr)
-
Enhancement to MIE message suggested by Conor MacNeill to make interpretation
of exception more useful when debugging. (gmj)
-
Small fix to #parse() and #include()
such that when the template/resource was not file based
but stream based, there was no 'parent template' encoding to use
for decoding the arg to #parse/#include. Runtime default is used.
Thanks to Dan Finkelstein for finding this bug. (gmj)
-
Fix to problem reported by Andreas Wikberger (and patch too!) where
two loads were required to have template refresh after change when
time-based caching was enabled. (gmj)
-
Updated log4j adapter to be compatible with 1.1.x and updated
jars in build/lib to match. (gmj)
-
Changed VMFactory to not output scary messages when library is
not found or empty string. Suggested by Tal Dayan. (gmj)
-
Added auto alternator functionality to VelocityFormatter. (dlr)
-
Modified Velocity to support separate runtime instances and
added application support class o.a.v.app.VelocityEngine (gmj)
-
Updated junit to v3.7 in build/lib (gmj)
-
Checked in patches from Attila Szegedi which improves the XPath
support in Anakia. These are fully backwards compatible with
previous versions. (jss)
-
Fixed the build/test.sh convenience script to use Ant. (jss)
-
Intrspector fix using contributions from Attila Szegedi
(szegedia@freemail.hu) - removes problems associated with
access to inner classes and public interfaces on default
or private facades. (gmj)
-
Added new autoreload feature for VM system - VM global libraries
will be automatically reloaded on use. See 'Configuration' section
of developers guide for more info. (gmj)
-
Logging changes : moved prefix out of RuntimeInstance into logger
impl to support better log4j users who don't need it. Changed
ExternalLoggerTest to support that as well as sep runtime instance.
Needed to support log4j adapter contrib from Jeroen C. van Gelderen.
Also, LogSystem.init() now can throw an Exception. (gmj)
-
Also added AvalonLogSystem switch to allow user to simply
specify by name a logger from the existing hierarchy. Thanks to
Carsten Ziegeler. (gmj)
-
Texen enhancement - allow to use template resources from
a jar. (jvz)
-
Allow proper propagation of VelocityExceptions (RNFE, PEE, and MIE)
from #parse() and #include(), where appropriate. (gmj)
-
Bug fix to allow formal reference to be passed into VMs. (gmj)
-
Revamping of Introspector to allow dump of cache
when classloader change is detected, by Attila Szegedi
and Paulo Gaspar. (gmj)
-
Added testcase to verify introspection cache dumped when
classloader changed. (gmj)
-
Added PrimordialLogSystem and changed RuntimeInstance to use it. (gmj)
-
Minor fixes to ASTRefernce presentation. (gmj)
-
Texen enhancement - allow multiple properties files to be specified. (jvz)
|
|
1.1-rc2
|
This section describes changes to the VEL_1_1_BRANCH after the
1.1-rc2 release. This was released as v1.1 on June 16, 2001.
-
Update from Russel Edens to clear fileWriter cache for Texen's
Generator.java. (JSS)
|
|
1.1-rc1
|
This section describes changes to VEL_1_1_BRANCH after the 1.1-rc1
release. This was released as v1.1-rc2 on June 2, 2001.
-
Fix to AbstractContext to 'roll forward' EventCartridges to ensure that
the last one added is available at render time. (gmj)
-
Small changes to developer docs re jar-src target and docs target. (gmj)
-
Small changes to AND and OR nodes to support the legal but wacky use like
#set( $foo = ($woog || $bar ) ). (gmj)
-
Major change to Parser char stream - no longer using the stock, javacc generated
ASCII 8-bit char stream but rather a Unicode 'custom' char stream. This solves
the problems reported with 16 bit characters that unluckily have a 0a or 0d in the
low-order byte. (gmj)
-
Added additional templates to encoding test using contributions from
Ilkka Priha, Michael Zhou and Vitaly Repetenko. Thanks guys! (gmj)
|
|
1.1-dev
|
This section describes changes to the main branch after the 1.0.1 release.
This was then branched as VEL_1_1_BRANCH in CVS and released as v1.1-rc1 on May 20, 2001.
-
Removed build.sh and build.bat scripts in favor of making people "install" Ant.
-
Added Kent's, others and my changes to VelocityServlet. Fundamental change is changing
handleRequest() to take a req, resp and ctx args, as well as making returning
null permissible to indicate that request is taken care of. (gmj)
-
Added support for alternate encoding for templates (input sources). It is now
controllable by two properties (input and output), and tested with UTF-8.
UTF-8 rocks. Why are there others? :) Also added testcase. (gmj)
-
Fixed problem where MethodInvocationExceptions were not correctly generated for
method exceptions in a few places. All seems to work now. (gmj)
-
Added fix from Charles Bennet for build.xml to include all necessary parts in classpath
for building examples. (gmj)
-
Performance improvment additions for the AST, the majority from Kent Johnson, plus
his suggestions for Configuration and ResourceManager (gmj)
-
More MethodInvocationExceptions fun : the LHS of a #set() could throw
an Exception, and we wouldn't propogate it. (gmj)
-
EventCartridge support. See docs :) (gmj)
-
Documentation : basic EventCartridge description. (gmj)
-
Added request specific encoding specification for templates. (gmj)
-
Additions from Tim Joyce for more Method Exception propogation
and exception event handling. (gmj)
-
Performance patches from Kaspar Nielsen for ASTDirective and Include. (gmj)
-
Texen patch from Robert Burrell Donkin which makes Texen throw all exceptions
rather than eating them, and some javadoc. (gmj)
-
Fix for the much acclaimed and dreaded #$foo, $$foo #$#$foofoo, etc bug. (gmj)
-
Added some autoconfigure support for the servlet example to hele
users new to Servlets, and added a little README to help then find
Tomcat and setup a webapp. (gmj)
-
Removed the .close() of the output stream in VelocityServlet
and symmetrized VelocityWriter recycle. (gmj)
-
Converted from using the Velocity Configuration class (now deprecated) to
the Jakarta Commons collections component's ExtendedProperties class.
(Which came from Velocity and was renamed.) Should result in no changes
other than deprecation of Configuration and one deprecated method in
o.a.v.app.Velocity. (gmj)
-
Removed build/build.sh and build/build.bat and build/lib/ant*.jar to
move to explicit Ant-based build. (jss)
-
Changed JarResourceLoader to use normal 'path' configuration key
and added jar test to MultiLoaderTestCase. (gmj)
-
Updated the regexp in the WM conversion tool. (dlr)
-
Added EventHandler test case and example, and
removed NullReferenceEventHandler
as redundant. (gmj)
-
Moved all event-realated things to o.a.v.app.event package,
updated all things that depend upon it,
and modified the context stuff to support a public event
interface. Also renamed the null set method to something
more appropos, and added arg to method. (gmj)
-
Added switch to turn off 'resource found' messages in
ResourceManager. Default is on. Key is
'resource.manager.logwhenfound'. (gmj)
|
|
1.0.1-dev
|
Released as v1.0.1-rc1 on April 10, 2001.
No changes following rc1. Released as v1.0.1 on April 22, 2001.
-
Small fix to ASTGENode.java to catch NPE if LHS or RHS is null or not
int or Integer. (gmj)
-
Added examples-clean-forumdemo target to build.xml for cleaning up
after building the forumdemo. (JSS)
-
Small fix to ASTAndNode.java to short circuit if LHS is false, and to
log an error of LHS or RHS is null. (gmj)
-
Small fix to ASTGTNode.jave to catch NPE if LHS or RHS is null. (gmj)
-
Documentation : changed license instructions in coding-standards.xml (gmj)
-
Added 'throws Exception' to handleRequest() in VelocityServlet.java
(suggestion from Christoph Reck) (gmj)
-
Updates to README.txt and examples/README.txt as suggested by Kent Johnson (gmj)
-
Added Enumerator as a valid iteration type for #foreach() - added warnings
to use of same to documentation. (gmj)
-
Added panic sqawk in AvalonLogSystem() to also go to stderr. (gmj)
-
Finished all comparison nodes (NPE prevention and good logging) and
enhanced logical.vm test template to try them all. (gmj)
-
Added xmlapp_example to examples, and added to examples build target.
Was moved from whiteboard. (gmj)
|
|
1.0b3
|
Released as version 1.0 on April 2, 2001
-
Documentation: Fix the VTL Reference guide for the #if
statement. Thanks to Joaquim Carvalho for the find. (JSS)
-
Documentation: Fixed the html in the user guide that generates
the TOC so that the numbers come out in proper order. (JSS)
-
Added common base class for application-level exceptions in package
org.apache.velocity.exception. Thanks to Kyle Downey for the
suggestion. (gmj)
-
Added javadoc to o.a.v.context.AbstractContext clarifying which
of the internalXXX methods are required. Thanks to
Joshua Levy for the suggestion. (gmj)
-
Added license and javadoc to examples/context_example/DBContext.java
to clarify why some internalXXX methods are stubbed out. (gmj)
-
Documentation : Clarification of VM properties and added note on
VM declaration / usage order in user guide. (gmj)
-
Fixed HttpServletRequestWrap.java - getInputStream() wasn't calling
the method on the wrapped HttpServletRequest. Thanks to
Shahar Solomianik. (gmj)
-
Removed build.compiler from the build.xml file. (JSS)
-
Fixed problem found by jon where high concurrency would lead to
a dry parser pool, which would lead to vast unpleasantness masked
as resource access errors. All seems to be better now. Simple
fix, so little risk. (gmj)
-
Added
parser.pool.size as a configuration parameter to
help tune Velocity configurations for high concurrency loads. (gmj)
-
Documentation : developers-guide - information/example on making a
custom logger, and start of work on documenting resource loaders. (gmj)
-
Removed some debugging gibberish from
InternalContextAdapterImpl.java (gmj)
-
Committed John McNally's Texen patch to texen's Generator.java
to keep from accumulating introspection cache data in iterative
calls to parse() with template caching off. (gmj)
-
Documentation : added some special-case Context information and a
secion on Vel and XML in the developers guide. (gmj)
|
|
1.0b2
|
Released as version 1.0 beta 2 on March 26, 2001
-
Make the distribution have CRLF for all of the text files (JSS).
-
Fixed release packaging to create things in the right directory
structure (JSS).
-
Re-added 'include' support for Configuration. (JVZ)
-
Fixed VMProxy bug when reference arg was null. (#1074) (gmj)
-
Fixed nullpointer problem in cache refresh in ResourceManager
(reported by Ilkka Priha) (gmj)
-
VelocityServlet now respects the 'default.contentType'
property again. That must have fallen out during the 'request
process' rework in VelServlet. (reported by csterg@aias.gr) (gmj)
-
Changed AnakiaTask and TexenTask to use the canonical
template file path rather than the literal string specified.
Motivated for ease of gump-tion. Also added
failonerror to the testcases.xml for the same reason. (gmj)
-
Added Sam's suggestion for normalizing \n[\r] when comparing
results to expected results in the testbed via BaseTestCase (gmj)
-
Qualified import statments in Generator.java. Added tests for
automatic boolean mapping in TexenTestCase.java. Added default
boolean mapping to texen for properties used with the
contextProperties option. Allow variants on boolean values in
Configuration.java, and changes to relevant templates in testbed.
Added default objects to context in TexenTask.java. (JVZ)
-
Documentation changes to Configuration.java (DLR)
-
Augmented the MethodInvocationException message in ASTMethod to
make the stacktraces more useful - noted from some traffic on
Turbine list. (gmj)
-
Added powered by logo. Look in
xdocs/images/powered-by-logo.psd/.gif (JSS)
-
Changed the internals of the Configuration class so that
setProperty(K,V) will replace the value at K with V;
addProperty(K,V) works the way setProperty(K,V) used
to: if there is a value already stored at K then
V is added to the vector. If nothing is being stored
at K then the scalar V is simply added. setProperty(K,V)
is basically a short form for clearProperty(K)/addProperty(K,V).
Also added setConfiguration(C), so that an application using
velocity could easily take a subset of the application
configuration using C.subset(velocityProps) and set the
whole velocity configuration at once. This is now how
the velocity service works in Turbine. (JVZ)
-
Added support to the Runtime/Velocity classes for
addProperty(K,V). (JVZ)
-
Added support to Runtime/Velocity classes for setConfiguration.
(JVZ)
-
Confirmed that the build.bat works on Win98 as well as made the
classpath that the build.bat generates equal to the one that
build.sh generates. (JSS)
|
|
|
|
|