This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
Click here for the manual.
Click here for
javadoc-generated documentation.
Click here for notes on the source code.
Note: the classes in freemarker.jar have been compiled with the -O option of
javac. They contain only source file debugging information. Before submitting a
bug report, please recompile FreeMarker with full debugging information, so you can submit a
complete stack trace of any exceptions thrown.
Authors: Benjamin Geer and Mike Bayer
Updates can be found at http://freemarker.sourceforge.net.
Version history:
| Version | Date | Changes |
|---|---|---|
| 1.6.1 | 20 June 2001 | Fixed regression with chaining dynamic keys. This was introduced by the new list literal syntax. |
| 1.6 | 16 June 2001 |
Bug fix for Solaris users: FreeMarker now explicitly closes file handles. Previously FreeMarker could cause the Sun Solaris JVM to run out of file handles under high load. |
| 1.6RC1 | 3 June 2001 |
New additions:
Updates: |
| 1.5.3 | 2 November 2000 |
a lot of fixes/additions:
|
| 1.5.2 | 2 November 1999 |
Fixed a parser bug introduced in 1.5. Better caching policy in |
| 1.5.1 | 29 October 1999 |
Better support for different character encodings. |
| 1.5 | 23 October 1999 |
Holger Arendt has added support for method calls in expressions; methods
implement a |
| 1.4.9 | 17 October 1999 |
Fixed a synchronization bug in |
| 1.4.8 | 29 June 1999 |
Extra parentheses in expressions are now always ignored. |
| 1.4.7 | 20 May 1999 | Improved compiler architecture.
The location of an expression containing a syntax error is now always reported with the error. |
| 1.4.6 | 6 May 1999 | FileTemplateCache now fails more gracefully if an I/O error
makes it impossible to list the files in a directory. |
| 1.4.5 | 5 May 1999 | TemplateCache is now an interface, implemented by FileTemplateCache.
By default, this implementation now loads templates as they are requested,
instead of preloading all available templates; the latter behavior can be
still selected at run time. |
| 1.4.4 | 29 April 1999 | Tweaked to prevent thread deadlocks when firing multicast events. |
| 1.4.3 | 24 April 1999 | Fixed a concurrency problem with switch-case statements.
Identifiers must now begin with a letter. |
| 1.4.2 | 23 April 1999 | If there's a compile-time error, the error message is now the only thing
in the output.
Fixed a compile-time error-trapping bug introduced in version 1.4.1. |
| 1.4.1 | 23 April 1999 |
Allowed underscores in identifiers. Some compiler optimization. Fixed a serialization problem with Some small improvements in error reporting. |
| 1.4 | 15 April 1999 | Added dynamic hash keys (see "Variables" in the manual). This required
changing the way variables are parsed; variable delimiters in tags are therefore
no longer supported.
Added a string concatenation operator. Added support for expressions in assignments, Reorganized the documentation. |
| 1.3 | 9 April 1999 | Added function and call tags.
Added a tag for compressing whitespace. Made variable delimiters in tags optional and deprecated. Added convenience methods to Added another sample program. Allowed variables in Changed the license to LGPL. |
| 1.2.2 | 7 April 1999 | Fixed a bug that caused the expression parser to choke on complex expressions
with unnecessary parentheses.
Made a few changes to allow the package to compile under JDK 1.1 with the 1.2 collections classes imported. Some improvements to parser efficiency. |
| 1.2.1 | 6 April 1999 | Reorganized the source code into subpackages for clarity. |
| 1.2 | 5 April 1999 | Added switch-case tags.
Made the processing of compiled templates faster and more memory-efficient. Fixed a bug that could cause the parser to get confused by JavaScript in rare cases. |
| 1.1 | 30 March 1999 | Added assign and include tags.
More efficient parser design. Fixed a bug in the reporting of errors. |
| 1.0 | 6 January 1999 | First release version. |