All releases of FM-Classic


Release Notes: This release adds new writable template models: writable hashes, writable indexed models, and writable iterators. It contains a reimplementation of the reflection library. It provides formatting models for numbers, dates, and messages. It also allows variables to be dynamically scoped for some block elements.


Release Notes: This release added native Java 1.5 support as well as a Java 1.2 release. It allows more constant expressions to be evaluated at compile time rather than waiting until runtime and added an expression cache to improve in-memory size. The expression builder's performance was improved slightly.


Release Notes: This release updates its support for JDom to JDom beta 10 and JDom 1.0. This breaks compatibility with earlier JDom releases. It fixes several scenarios where the "break" instruction didn't work as expected. It adds an "exit" instruction to allow functions to be terminated early. Finally, it adds better logging support to many areas.


Release Notes: This version adds integer numeric support to the template models, and adds support for the <elseif> instruction. Templates can now be serialized. There were many additions and updates to the manual. It adds a new caching policy to allow cache entries to be expired. Lots more utility models were added to the freemarker.ext.misc package. More compile-time sanity checks have been added.


Release Notes: Compiled templates are now serializable. A new caching policy has been added for template caches. Templates can now be expired from a cache after a given period of time. Many constant expressions are now evaluated at compile time rather than run time for better runtime performance.


Release Notes: This beta release adds native numeric support to the 1.x code base. New template models have been introduced to supercede the old template list model, and thread safety is now supported correctly. New operators have been added, including elseif and numeric operators. The parser has received more attention, mainly to ensure that new operators don't interfere with variable names. Old deprecated classes and methods have been removed.


Release Notes: This release contains a reworked package structure, merging the Expose and FreeMarker trees into a common code base. The exception classes now take an optional exception as a parameter to indicate the underlying cause of an exception. The examples have been updated and reorganized, and some of the internals were streamlined.