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. In the JDK 1.1 version, they contain no debugging information; in the JDK 1.2 version, 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.org.
Version history:
Version | Date | Changes |
---|---|---|
1.5.2 | 2 November 1999 |
Fixed a parser bug introduced in 1.5. Better caching policy in FileTemplateCache; the change in 1.5.1 would have caused a memory leak with LOAD_ON_DEMAND if template files were deleted. |
1.5.1 | 29 October 1999 |
Better support for different character encodings. FileTemplateCache synchronization is really fixed now. |
1.5 | 23 October 1999 |
Holger Arendt has added support for method calls in expressions; methods implement a TemplateMethodModel interface. FileTemplateCache synchronization has been simplified. |
1.4.9 | 17 October 1999 |
Fixed a synchronization bug in FileTemplateCache. |
1.4.8 | 29 June 1999 |
Extra parentheses in expressions are now always ignored. |
1.4.7 | 20 May 1999 |
Improved compiler architecture.
Updatable and UpdateTimer have been made public to help implementors of TemplateCaches. 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 SimpleList. 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, case statements, include statements, and function arguments. 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 SimpleHash and SimpleList, to take strings and booleans and add them as SimpleScalars. Added another sample program. Allowed variables in include statements. 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. |