You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/03/13 10:57:40 UTC
[04/50] incubator-freemarker-site git commit: 2.3.26-nightly docs
preview
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_25.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_25.html b/builds/2.3.26-nightly/versions_2_3_25.html
new file mode 100644
index 0000000..9ff74f2
--- /dev/null
+++ b/builds/2.3.26-nightly/versions_2_3_25.html
@@ -0,0 +1,228 @@
+<!doctype html>
+<!-- Generated by FreeMarker/Docgen from DocBook -->
+<html lang="en" class="page-type-section">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>2.3.25 (incubating at Apache) - Apache FreeMarker Manual</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="format-detection" content="telephone=no">
+<meta property="og:site_name" content="Apache FreeMarker Manual">
+<meta property="og:title" content="2.3.25 (incubating at Apache)">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_25.html">
+<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_25.html">
+<link rel="icon" href="favicon.png" type="image/png">
+<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
+<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ga('create', 'UA-55420501-1', 'auto');
+ga('send', 'pageview');
+</script>
+</head>
+<body itemscope itemtype="https://schema.org/Code">
+ <meta itemprop="url" content="http://freemarker.org/docs/">
+ <meta itemprop="name" content="Apache FreeMarker Manual">
+
+ <!--[if lte IE 9]>
+ <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
+ <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
+</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl
ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_25.html"><span itemprop="name">2.3.25 (incubating at Apache)</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
+ <div class="content-wrapper">
+ <div id="table-of-contents-wrapper" class="col-left">
+ <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.25 (incubating at Apache)"];</script>
+ <script src="toc.js?1489402528979"></script>
+ <script src="docgen-resources/main.min.js?1489402528979"></script>
+ </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="versions_2_3_26.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_24.html"><span>Next</span></a></div><div class="title-wrapper">
+<h1 class="content-header header-section1" id="versions_2_3_25" itemprop="headline">2.3.25 (incubating at Apache)</h1>
+</div></div><div class="page-menu">
+<div class="page-menu-title">Page Contents</div>
+<ul><li><a class="page-menu-link" href="#autoid_158" data-menu-target="autoid_158">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_159" data-menu-target="autoid_159">Changes on the Java side</a></li></ul> </div><p>Release date: 2016-06-26</p><p><strong>This is a stable, final
+ release.</strong> The "incubating" suffix is required
+ by the Apache Software Foundation until the project becomes a fully
+ accepted (graduated) Apache project.</p>
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_158">Changes on the FTL side</h2>
+
+
+ <ul>
+ <li>
+ <p>Extended the <a href="ref_directive_list.html#ref.directive.list"><code>list</code>
+ directive</a> to support listing hashes (such as
+ <code class="inline-code">Map</code>-s), like <code class="inline-code"><#list map as k,
+ v>${k}: ${v}</#list></code>, where
+ <code class="inline-code">k</code> and <code class="inline-code">v</code> are the key and
+ value in the key-value pairs of the hash.</p>
+ </li>
+ </ul>
+
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_159">Changes on the Java side</h2>
+
+
+ <ul>
+ <li>
+ <p>Added the <code class="inline-code">TemplateModelHashEx2</code>
+ interface that extends <code class="inline-code">TemplateModelHashEx</code>
+ with a method for listing the content of the key-value pairs of
+ the hash. (This is utilized by the new hash listing capability
+ of the <a href="ref_directive_list.html#ref.directive.list"><code>list</code>
+ directive</a>, but it's not required by it if all keys are
+ strings.)</p>
+ </li>
+
+ <li>
+ <p>Lazy imports: With the new boolean settings,
+ <code class="inline-code">lazy_imports</code> and
+ <code class="inline-code">lazy_auto_imports</code>, you can make imports (as
+ in <code class="inline-code"><#import "lib/utils.ftl" as u></code>)
+ and/or auto-imports to be lazy. When the import is lazy, the
+ namespace variable (<code class="inline-code">u</code> in this example) will
+ be created immediately, just like before, but the imported
+ template will be loaded and processed only when (and if ever)
+ the content of the imported namespace is accessed. The main
+ application of this is with auto-imports, where you don't want
+ the overhead of importing templates that aren't actually used in
+ a template. (Also, a new
+ <code class="inline-code">Environment.importLib</code> method overload was
+ added, where you can specify if you want a lazy or an eager
+ import.) These new settings can be set on
+ <code class="inline-code">Configuration</code>, <code class="inline-code">Template</code>
+ (<code class="inline-code">TemplateConfiguration</code>) and
+ <code class="inline-code">Environment</code> level.</p>
+ </li>
+
+ <li>
+ <p>It's now possible to set the
+ <code class="inline-code">auto_import</code> and
+ <code class="inline-code">auto_include</code> settings on a per template basis
+ (like templates with a certain name pattern has different
+ auto-imports). This is now possible as these settings were moved
+ from the <code class="inline-code">Configuration</code> level down to the more
+ generic <code class="inline-code">Configurable</code> level, and so are
+ inherited by <code class="inline-code">TemplateConfiguration</code> and
+ <code class="inline-code">Environment</code> too.</p>
+ </li>
+
+ <li>
+ <p>New <code class="inline-code">Configuration</code> (and
+ <code class="inline-code">TemplateConfiguration</code>) setting,
+ <code class="inline-code">tab_size</code>. This only influences how the column
+ number reported in error messages is calculated (and the column
+ number available with other API-s). It doesn't influence the
+ output of the templates. Defaults to 8.</p>
+ </li>
+
+ <li>
+ <p>Added new setting to
+ <code class="inline-code">DefaultObjectWrapper</code> (and to
+ <code class="inline-code">DefaultObjectWrapperBuilder</code>):
+ <code class="inline-code">iterableSupport</code>. This fixes the issue when
+ you couldn't use <code class="inline-code">#list</code> (or
+ <code class="inline-code">?has_next</code>, etc.) on a value that only
+ implements Java 5 <code class="inline-code">java.lang.Iterable</code> (not to
+ be confused with <code class="inline-code">Iterator</code>), but not
+ <code class="inline-code">Collection</code>. This is not enabled by default as
+ it's not compatible with some existing templates, most often
+ because they have used
+ <code class="inline-code">someIterable.iterator()</code> in the template as a
+ workaround. When this is enabled, the
+ <code class="inline-code">Iterable</code> object won't be seen as a generic
+ Java object by FreeMarker anymore, and thus just like with
+ <code class="inline-code">Collection</code>-s, its API won't be exposed to the
+ templates (except through <code class="inline-code">?api</code>, of
+ course).</p>
+ </li>
+
+ <li>
+ <p>Added
+ <code class="inline-code">Configurable.getCustomNumberFormatsWithoutFallback</code>
+ and
+ <code class="inline-code">Configurable.getCustomDateFormatsWithoutFallback</code>
+ methods to make it easier for custom code to investigate the
+ custom formal setting <code class="inline-code">Map</code> hierarchy.</p>
+ </li>
+
+ <li>
+ <p>Bug fixed (<a href="https://issues.apache.org/jira/browse/FREEMARKER-18">FREEMARKER-18</a>):
+ If you had a JSP custom tag and an EL function defined in the
+ same TLD with the same name, the EL function has overwritten the
+ custom tag. This is a bug introduced in 2.3.23, when EL function
+ support was added. JSP allows a custom tag and an EL function in
+ the same TLD to have the same name. In such case now we combine
+ the two into a single value that is both callable as an user
+ defined directive (<code class="inline-code"><@my.foo...></code>) and as
+ a function (<code class="inline-code">my.f(...)</code>).</p>
+ </li>
+
+ <li>
+ <p>Bug fixed (<a href="https://issues.apache.org/jira/browse/FREEMARKER-19">FREEMARKER-19</a>):
+ The column numbers calculated by the parser has assumed tab size
+ 1 since 2.3.25 (an unwanted side effect of updating JavaCC),
+ while before it has assumed tab size 8. The default was restored
+ to 8. This bug has affected the column numbers in error
+ messages. It also broke the output of some rarely used AIP-s,
+ namely <code class="inline-code">Template.getSource(beginCol, beginLine, endCol,
+ endLine)</code>,
+ <code class="inline-code">TemplateObject.getSource()</code> and through that
+ <code class="inline-code">TemplateObject.toString()</code>, if the first or
+ last line has contain tab characters.</p>
+ </li>
+
+ <li>
+ <p>Bug fixed: There was a regression with 2.3.24, where
+ <code class="inline-code">Configuration.setAutoImports()</code> haven't
+ removed auto-imports added earlier. (Though it's unlikely that
+ an application uses that method and also adds auto-imports
+ earlier.)</p>
+ </li>
+
+ <li>
+ <p>Bug fixed:
+ <code class="inline-code">TemplateConfiguration.apply(Template)</code> didn't
+ merge the <code class="inline-code">customDateFormats</code> and
+ <code class="inline-code">customNumberFormats</code> <code class="inline-code">Map</code>-s
+ when they were set both in the <code class="inline-code">Template</code> and
+ in the applied <code class="inline-code">TemplateConfiguration</code>, instead
+ it just kept the value in the <code class="inline-code">Template</code> (just
+ like with atomic setting values). Note that it was unlikely to
+ run into this bug, as usually you (or FreeMarker) create a
+ single merged <code class="inline-code">TemplateConfiguration</code> with
+ <code class="inline-code">TemplateConfiguration.merge(TemplateConfiguration)</code>
+ and then apply it on a fresh template.</p>
+ </li>
+
+ <li>
+ <p>Removed FindBugs <code class="inline-code">@SuppressFBWarnings</code>
+ annotations from the binary (<code class="inline-code">freemarker.jar</code>),
+ as they have caused warnings like this when compiling dependant
+ project with Gradle: "warning: Cannot find annotation
+ method 'value()' in type 'SuppressFBWarnings'"</p>
+ </li>
+
+ <li>
+ <p>The Maven source artifact now contains the JavaCC
+ generated java files and <code class="inline-code">FTL.jj</code>.</p>
+ </li>
+ </ul>
+ <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_26.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_24.html"><span>Next</span></a></div></div></div></div> </div>
+ </div>
+<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
+Last generated:
+<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
+<p class="copyright">
+� <span itemprop="copyrightYear">1999</span>\u20132017
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
+</div></div></div></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_26.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_26.html b/builds/2.3.26-nightly/versions_2_3_26.html
new file mode 100644
index 0000000..dd5ce6b
--- /dev/null
+++ b/builds/2.3.26-nightly/versions_2_3_26.html
@@ -0,0 +1,297 @@
+<!doctype html>
+<!-- Generated by FreeMarker/Docgen from DocBook -->
+<html lang="en" class="page-type-section">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>2.3.26 (incubating at Apache) - Apache FreeMarker Manual</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="format-detection" content="telephone=no">
+<meta property="og:site_name" content="Apache FreeMarker Manual">
+<meta property="og:title" content="2.3.26 (incubating at Apache)">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_26.html">
+<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_26.html">
+<link rel="icon" href="favicon.png" type="image/png">
+<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
+<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ga('create', 'UA-55420501-1', 'auto');
+ga('send', 'pageview');
+</script>
+</head>
+<body itemscope itemtype="https://schema.org/Code">
+ <meta itemprop="url" content="http://freemarker.org/docs/">
+ <meta itemprop="name" content="Apache FreeMarker Manual">
+
+ <!--[if lte IE 9]>
+ <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
+ <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
+</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl
ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_26.html"><span itemprop="name">2.3.26 (incubating at Apache)</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
+ <div class="content-wrapper">
+ <div id="table-of-contents-wrapper" class="col-left">
+ <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.26 (incubating at Apache)"];</script>
+ <script src="toc.js?1489402528979"></script>
+ <script src="docgen-resources/main.min.js?1489402528979"></script>
+ </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="app_versions.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_25.html"><span>Next</span></a></div><div class="title-wrapper">
+<h1 class="content-header header-section1" id="versions_2_3_26" itemprop="headline">2.3.26 (incubating at Apache)</h1>
+</div></div><div class="page-menu">
+<div class="page-menu-title">Page Contents</div>
+<ul><li><a class="page-menu-link" href="#autoid_155" data-menu-target="autoid_155">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_156" data-menu-target="autoid_156">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_157" data-menu-target="autoid_157">Other changes</a></li></ul> </div><p>Release date: 2017-FIXME</p><p><strong>This is a stable, final
+ release.</strong> The "incubating" suffix is required
+ by the Apache Software Foundation until the project becomes a fully
+ accepted (graduated) Apache project.</p>
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_155">Changes on the FTL side</h2>
+
+
+ <ul>
+ <li>
+ <p>Bug fixed (<a href="https://issues.apache.org/jira/browse/FREEMARKER-42">FREEMARKER-42</a>):
+ <code class="inline-code">?first</code> now works with FTL collections (things
+ that can be listed but doesn't support getting items by index),
+ not only with sequences. The practical importance of this is
+ that <code class="inline-code">?first</code> now always works on Java
+ <code class="inline-code">Set</code>-s (which is useful for
+ <code class="inline-code">Set</code>-s with well defined ordering), while
+ earlier it has failed depending on the
+ <code class="inline-code">object_wrapper</code> configuration setting.</p>
+ </li>
+
+ <li>
+ <p>Added
+ <code class="inline-code"><em class="code-color">node</em>?next_sibling</code>
+ and
+ <code class="inline-code"><em class="code-color">node</em>?previous_sibling</code>
+ to move sideways in a node trees (<a href="ref_builtins_node.html#ref_builtin_next_sibling">see reference...</a>).
+ This works with XML DOM nodes, or with any custom
+ <code class="inline-code">TemplateNodeModelEx</code> implementations.</p>
+ </li>
+
+ <li>
+ <p>Added new <code class="inline-code">@@</code> keys to XML DOM models:
+ <code class="inline-code">@@next_sibling_element</code>,
+ <code class="inline-code">@@previous_sibling_element</code>. These get the
+ sibling node if that's an element, with the extra that they
+ silently skip any whitespace text and comment and processing
+ instruction between them. (See more about <code class="inline-code">@@</code>
+ keys <a href="xgui_imperative_formal.html">here...</a>)</p>
+ </li>
+ </ul>
+
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_156">Changes on the Java side</h2>
+
+
+ <ul>
+ <li>
+ <p><a href="https://issues.apache.org/jira/browse/FREEMARKER-24">FREEMARKER-24</a>:
+ Added workaround (not enabled by default) to expose Java 8
+ default methods (and the bean properties they define) to
+ templates, despite that
+ <code class="inline-code">java.beans.Introspector</code> (the official
+ JavaBeans introspector) ignores them, at least as of JRE
+ 1.8.0_66. To enable this workaround, either increase the value
+ of the <code class="inline-code">incompatibleImprovements</code> constructor
+ argument of <code class="inline-code">DefaultObjectWrapper</code> or
+ <code class="inline-code">BeansWrapper</code> the used to 2.3.26, or set its
+ <code class="inline-code">treatDefaultMethodsAsBeanMembers</code> setting to
+ <code class="inline-code">true</code>. Note that if you leave the
+ <code class="inline-code">object_wrapper</code> setting of the
+ <code class="inline-code">Configuration</code> on its default, it's enough to
+ increase the <code class="inline-code">incompatibleImprovements</code> setting
+ of the <code class="inline-code">Configuration</code> to 2.3.26, as that's
+ inherited by the default <code class="inline-code">object_wrapper</code>.
+ </p>
+ </li>
+
+ <li>
+ <p>Added the
+ <code class="inline-code">freemarker.template.TemplateNodeModelEx</code>
+ interface which extends the <code class="inline-code">TemplateNodeModel</code>
+ instance with two methods, <code class="inline-code">TemplateNodeModelEx
+ getNextSibling()</code> and <code class="inline-code">TemplateNodeModelEx
+ getPreviousSibling()</code> methods. This is required by
+ <code class="inline-code"><em class="code-color">node</em>?next_sibling</code>
+ and
+ <code class="inline-code"><em class="code-color">node</em>?previous_sibling</code>
+ in the templates. This new interface is already implemented by
+ the standard W3C DOM node wrapper of FreeMarker.</p>
+ </li>
+
+ <li>
+ <p>Made <code class="inline-code">+</code> operator when adding two hashes
+ significantly faster (be removing the overhead caused be
+ throwing and then catching an exception).</p>
+ </li>
+
+ <li>
+ <p>Better error messages when someone tries to get an invalid
+ <code class="inline-code">@@<em class="code-color">...</em></code> subvariable
+ of an XML DOM node. (Now it's not issued by the XPath
+ implementation, which just sees it as a syntactical
+ error.)</p>
+ </li>
+
+ <li>
+ <p>Bug fixed: If <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">the
+ <code>incompatible_improvements</code> setting</a> is
+ set to 2.3.26 (or higher),
+ <code class="inline-code"><em class="code-color">exp</em>?interpret</code>
+ always gets the parser-related settings from the template that
+ it's called from. Earlier, sometimes it got those from the
+ topmost (main) template instead. Similarly, the generated name
+ of the template that <code class="inline-code">?interpret</code> creates will
+ always refer to the template where's it's called from.</p>
+ </li>
+
+ <li>
+ <p>Bug fixed: <code class="inline-code">MultiTemplateLoader</code>, when
+ it's in sticky mode (the default), and the
+ <code class="inline-code">TemplateLoader</code> that was successfully used for
+ a given name last time doesn't find the template now (let's call
+ it the sticked <code class="inline-code">TemplateLoader</code>), and thus
+ <code class="inline-code">MultiTemplateLoader</code> falls back to trying all
+ the <code class="inline-code">TemplateLoader</code>-s in order, will now skip
+ the sticked <code class="inline-code">TemplateLoader</code>, as that was
+ already attempted in the same
+ <code class="inline-code">MultiTemplateLoader.findTemplateSource</code>
+ invocation.</p>
+ </li>
+
+ <li>
+ <p>Bug fixed:
+ <code class="inline-code">NodeModel.mergeAdjacentText(Node)</code> didn't
+ merged all adjacent text nodes, only pairs of adjacent text
+ nodes. (Luckily this method is hardly ever used, and the more
+ often used <code class="inline-code">NodeModel.simplify(Node)</code> was
+ working correctly.)</p>
+ </li>
+
+ <li>
+ <p>Performance improvements in the static utility methods of
+ <code class="inline-code">NodeModel</code>: <code class="inline-code">simplify(Node)</code>,
+ <code class="inline-code">mergeAdjacentText(Node)</code>,
+ <code class="inline-code">removeComments(Node)</code>,
+ <code class="inline-code">removePIs(Node)</code>.</p>
+ </li>
+
+ <li>
+ <p>Added warning to the JavaDoc of
+ <code class="inline-code">NodeModel.parse</code> methods to inform users about
+ the possibility of XML External Entity (XXE) attacks if the
+ source XML (not a template) comes from untrusted source. This is
+ just an XML fact (i.e., that in an XML you can have external
+ entities and they can be exploited), and has no much to do with
+ FreeMarker. Also note that FreeMarker itself never calls
+ <code class="inline-code">NodeModel.parse</code>; these are merely convenience
+ methods that some applications directly call themselves to
+ create a <code class="inline-code">NodeModel</code> from an XML file. As this
+ method encapsulates the call to the platform XML parser, we
+ thought it's better to point this risk out.</p>
+ </li>
+
+ <li>
+ <p><code class="inline-code">DefaultObjectWrapper</code>, only with its
+ <code class="inline-code">incompatible_improvements</code> set to 2.3.26
+ (<a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">see how
+ here...</a>), wraps
+ <code class="inline-code">java.util.Enumeration</code>-s into
+ <code class="inline-code">freemarker.template.DefaultEnumerationAdapter</code>
+ (a new class) instead of into
+ <code class="inline-code">freemarker.ext.beans.EnumerationModel</code> (as far
+ as <code class="inline-code">useAdaptersForContainers</code> is
+ <code class="inline-code">true</code>, which is the default). This adapter is
+ cleaner than <code class="inline-code">EnumerationModel</code> as it only
+ implements the minimally required FTL type, which avoids some
+ ambiguous situations. (Note that Java API methods aren't exposed
+ anymore as subvariables; if you really need them, you can use
+ <code class="inline-code">?api</code>).</p>
+ </li>
+
+ <li>
+ <p><code class="inline-code">DefaultIteratorAdapter</code> now supports
+ <code class="inline-code">?api</code>. It was an oversight that it
+ didn't.</p>
+ </li>
+
+ <li>
+ <p><code class="inline-code">Configuration.setSetting(String,
+ String)</code> and <code class="inline-code">setSettings</code> now allows
+ <code class="inline-code">null</code> value for
+ <code class="inline-code">template_loader</code> (because
+ <code class="inline-code">Configuration.setTemplateLoader(null)</code> is also
+ allowed for a while.).</p>
+ </li>
+
+ <li>
+ <p>The
+ <code class="inline-code">freemarker.template.TemplateCollectionModelEx</code>
+ interface and is not experimental anymore, so now it has
+ backward compatibility guarantees. Note that the
+ <code class="inline-code">TemplateCollectionModelEx.contains(TemplateModel)</code>
+ method was removed from it.</p>
+ </li>
+
+ <li>
+ <p><code class="inline-code">freemarker.template.DefaultNonListCollectionAdapter</code>
+ class is not experimental anymore, so now it has backward
+ compatibility guarantees.</p>
+ </li>
+
+ <li>
+ <p>Various smaller code cleanups.</p>
+ </li>
+ </ul>
+
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_157">Other changes</h2>
+
+
+ <ul>
+ <li>
+ <p><a href="https://issues.apache.org/jira/browse/FREEMARKER-17">FREEMARKER-17</a>:
+ Removed the Servlet- and JSP-related <code class="inline-code">*.dtd</code>
+ files to simplify licensing. We can operate without them as
+ before, as validation with them was disabled earlier too. At
+ this point, everything in the source code of the FreeMarker
+ engine, and everything in the produced
+ <code class="inline-code">freemarker.jar</code> was created inside the
+ FreeMarker project.</p>
+ </li>
+
+ <li>
+ <p><a href="https://issues.apache.org/jira/browse/FREEMARKER-27">FREEMARKER-27</a>:
+ Moved some content from the <code class="inline-code">NOTICES</code> files
+ over to the <code class="inline-code">LICENSE</code> file, to follow the
+ Apache Incubator guidelines closer.</p>
+ </li>
+
+ <li>
+ <p>Various smaller JavaDoc improvements.</p>
+ </li>
+ </ul>
+ <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_versions.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_25.html"><span>Next</span></a></div></div></div></div> </div>
+ </div>
+<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
+Last generated:
+<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
+<p class="copyright">
+� <span itemprop="copyrightYear">1999</span>\u20132017
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
+</div></div></div></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_3.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_3.html b/builds/2.3.26-nightly/versions_2_3_3.html
new file mode 100644
index 0000000..ed9d0ed
--- /dev/null
+++ b/builds/2.3.26-nightly/versions_2_3_3.html
@@ -0,0 +1,223 @@
+<!doctype html>
+<!-- Generated by FreeMarker/Docgen from DocBook -->
+<html lang="en" class="page-type-section">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>2.3.3 - Apache FreeMarker Manual</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="format-detection" content="telephone=no">
+<meta property="og:site_name" content="Apache FreeMarker Manual">
+<meta property="og:title" content="2.3.3">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_3.html">
+<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_3.html">
+<link rel="icon" href="favicon.png" type="image/png">
+<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
+<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ga('create', 'UA-55420501-1', 'auto');
+ga('send', 'pageview');
+</script>
+</head>
+<body itemscope itemtype="https://schema.org/Code">
+ <meta itemprop="url" content="http://freemarker.org/docs/">
+ <meta itemprop="name" content="Apache FreeMarker Manual">
+
+ <!--[if lte IE 9]>
+ <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
+ <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
+</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl
ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_3.html"><span itemprop="name">2.3.3</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
+ <div class="content-wrapper">
+ <div id="table-of-contents-wrapper" class="col-left">
+ <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.3"];</script>
+ <script src="toc.js?1489402528979"></script>
+ <script src="docgen-resources/main.min.js?1489402528979"></script>
+ </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="versions_2_3_4.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_2.html"><span>Next</span></a></div><div class="title-wrapper">
+<h1 class="content-header header-section1" id="versions_2_3_3" itemprop="headline">2.3.3</h1>
+</div></div><div class="page-menu">
+<div class="page-menu-title">Page Contents</div>
+<ul><li><a class="page-menu-link" href="#autoid_210" data-menu-target="autoid_210">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_211" data-menu-target="autoid_211">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_212" data-menu-target="autoid_212">Other changes</a></li></ul> </div><p>Date of release: 2005-06-23</p><p>Some new features and lot of bugfixes.</p><p>Attention:</p><ul>
+ <li>
+ <p>If you are using the Log4J logging, from now at least Log4J
+ 1.2 is required. This is because of incompatible changes in the
+ Log4J API.</p>
+ </li>
+
+ <li>
+ <p>If you build FreeMarker yourself: from now at least JavaCC
+ 3.2 (instead of JavaCC 2.1) and at least Ant 1.6.1 (instead of Ant
+ 1.5.x) is required. This doesn't affect users who use the
+ <code class="inline-code">freemarker.jar</code> comes with the
+ distribution.</p>
+ </li>
+ </ul>
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_210">Changes on the FTL side</h2>
+
+
+ <ul>
+ <li>
+ <p>New built-in for formatting numbers for "computer
+ audience" as opposed to human audience: <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code></a>. It should
+ be used for numbers that must use Java language formatting
+ regardless of the number format and locale settings, like for a
+ database record ID used as the part of an URL or as invisible
+ field value in a HTML form, or for printing CSS/JavaScript
+ numerical literals.</p>
+ </li>
+
+ <li>
+ <p>New built-in for the columnar/tabular displaying of
+ sequences: <a href="ref_builtins_sequence.html#ref_builtin_chunk"><code>chunk</code></a>.</p>
+ </li>
+
+ <li>
+ <p>The <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">sequence
+ slice</a> and substring operators now allow the omitting of
+ the last index, in which case it defaults to the index of the
+ last sequence item or character. Example:
+ <code class="inline-code">products[2..]</code>. (Also, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">numerical range
+ literals</a> now allow the omitting of the final number, in
+ which case it defaults to infinity. Example:
+ <code class="inline-code">5..</code>.)</p>
+ </li>
+
+ <li>
+ <p>Bugfix: <code class="inline-code">?replace</code> has worked forever if
+ the string to replace was <code class="inline-code">""</code>.</p>
+ </li>
+ </ul>
+
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_211">Changes on the Java side</h2>
+
+
+ <ul>
+ <li>
+ <p>New template loader:
+ <code class="inline-code">freemarker.cache.StringTemplateLoader</code>. It
+ uses a <code class="inline-code">Map</code> with <code class="inline-code">Strings</code> as
+ its source of templates. See more in the JavaDoc.</p>
+ </li>
+
+ <li>
+ <p>Experimental Rhino support: FreeMarker now comes with an
+ experimental object wrapper for Rhino (Java ECMAScript
+ implementation):
+ <code class="inline-code">freemarker.ext.rhino.RhinoWrapper</code></p>
+ </li>
+
+ <li>
+ <p>Some new utility methods for
+ <code class="inline-code">Simple<em class="code-color">Xxx</em></code> classes:
+ <code class="inline-code">SimpleHash.toMap()</code>,
+ <code class="inline-code">SimpleSequence.toList()</code>.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: FTL literals and any other
+ <code class="inline-code">SimpleSequnce</code>-s, and
+ <code class="inline-code">SimpleHash</code>-es now can be used as parameters
+ to the FreeMarker-unaware Java methods that are exposed by
+ <code class="inline-code">DefaultWrapper</code> or
+ <code class="inline-code">BeansWrapper</code>. That is, the method parameters
+ are automatically converted from
+ <code class="inline-code">Template<em class="code-color">Type</em>Model</code>-s
+ to <code class="inline-code">java.util.Map</code> and
+ <code class="inline-code">java.util.List</code> respectively.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: The JSP support now works in JSP 2 compliant
+ containers as well. No, it doesn't support the new features of
+ JSP 2 yet, it's just that the JSP 1.2 taglib support has not
+ worked in JSP 2 containers.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: The
+ <code class="inline-code">Configuration.setOutputEncoding</code> and
+ <code class="inline-code">setURLEscapingCharset</code> methods died with
+ <code class="inline-code">NullPointerException</code> when you tried to set
+ the setting value to <code class="inline-code">null</code>, which is legal for
+ these settings.</p>
+ </li>
+
+ <li>
+ <p>Bugfix:
+ <code class="inline-code">freemarker.template.utility.StringUtil.replace(...)</code>
+ has worked forever if the string to replace was
+ <code class="inline-code">""</code>.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: The Log4J logging was updated to be compatible
+ with the upcoming Log4J 1.3. Note that now FreeMarker will need
+ at least Log4J 1.2.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: FreeMarker didn't built from the source code on
+ J2SE 1.5, because of the introduction of the
+ <code class="inline-code">enum</code> keyword.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: The return value of
+ <code class="inline-code">SimpleSequence.synchronizedWrapper()</code> was not
+ properly synchronized. Same with
+ <code class="inline-code">SimpleHash.synchronizedWrapper()</code>.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: Problem with <code class="inline-code">BeansWrapper</code> and
+ overridden bean methods/properties. (Details: bug-tracker entry
+ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1217661&group_id=794&atid=100794">#1217661</a>
+ and <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1166533&group_id=794&atid=100794">#1166533</a>)</p>
+ </li>
+
+ <li>
+ <p>Bugfix: Can't access JSP taglibs if
+ <code class="inline-code">Request</code> attribute is defined in the
+ data-model (Details: bug-tracker entry <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1202918&group_id=794&atid=100794">#1202918</a>).</p>
+ </li>
+
+ <li>
+ <p>Bugfix: Various minor parser glitches were fixed.</p>
+ </li>
+ </ul>
+
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_212">Other changes</h2>
+
+
+ <ul>
+ <li>
+ <p>Manual improvements, especially in the FAQ.</p>
+ </li>
+ </ul>
+ <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_4.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_2.html"><span>Next</span></a></div></div></div></div> </div>
+ </div>
+<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
+Last generated:
+<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
+<p class="copyright">
+� <span itemprop="copyrightYear">1999</span>\u20132017
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
+</div></div></div></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_4.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_4.html b/builds/2.3.26-nightly/versions_2_3_4.html
new file mode 100644
index 0000000..4aaa6d0
--- /dev/null
+++ b/builds/2.3.26-nightly/versions_2_3_4.html
@@ -0,0 +1,121 @@
+<!doctype html>
+<!-- Generated by FreeMarker/Docgen from DocBook -->
+<html lang="en" class="page-type-section">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>2.3.4 - Apache FreeMarker Manual</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="format-detection" content="telephone=no">
+<meta property="og:site_name" content="Apache FreeMarker Manual">
+<meta property="og:title" content="2.3.4">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_4.html">
+<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_4.html">
+<link rel="icon" href="favicon.png" type="image/png">
+<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
+<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ga('create', 'UA-55420501-1', 'auto');
+ga('send', 'pageview');
+</script>
+</head>
+<body itemscope itemtype="https://schema.org/Code">
+ <meta itemprop="url" content="http://freemarker.org/docs/">
+ <meta itemprop="name" content="Apache FreeMarker Manual">
+
+ <!--[if lte IE 9]>
+ <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
+ <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
+</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl
ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_4.html"><span itemprop="name">2.3.4</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
+ <div class="content-wrapper">
+ <div id="table-of-contents-wrapper" class="col-left">
+ <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.4"];</script>
+ <script src="toc.js?1489402528979"></script>
+ <script src="docgen-resources/main.min.js?1489402528979"></script>
+ </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="versions_2_3_5.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_3.html"><span>Next</span></a></div><div class="title-wrapper">
+<h1 class="content-header header-section1" id="versions_2_3_4" itemprop="headline">2.3.4</h1>
+</div></div><div class="page-menu">
+<div class="page-menu-title">Page Contents</div>
+<ul><li><a class="page-menu-link" href="#autoid_207" data-menu-target="autoid_207">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_208" data-menu-target="autoid_208">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_209" data-menu-target="autoid_209">Other changes</a></li></ul> </div><p>Date of release: 2005-10-10</p><p>Some new features and bugfixes.</p>
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_207">Changes on the FTL side</h2>
+
+
+ <ul>
+ <li>
+ <p>Now you can use <code class="inline-code">[</code> and
+ <code class="inline-code">]</code> instead of <code class="inline-code"><</code> and
+ <code class="inline-code">></code> for the FreeMarker tags. For example you
+ can write <code class="inline-code">[#if
+ loggedIn]<em class="code-color">...</em>[/#if]</code> and
+ <code class="inline-code">[@myMacro /]</code>. <a href="dgui_misc_alternativesyntax.html">More info...</a></p>
+ </li>
+
+ <li>
+ <p>Bugfix: the <code class="inline-code">has_content</code> built-in
+ returned <code class="inline-code">false</code> for number, date and boolean
+ values (if the value was not a multi-type value that is also a
+ sequence or collection or hash or string). Now it always returns
+ <code class="inline-code">true</code> for a number, date or boolean values
+ (except if the value is also a sequence or collection or hash or
+ string, because then it will be examined only like that).</p>
+ </li>
+ </ul>
+
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_208">Changes on the Java side</h2>
+
+
+ <ul>
+ <li>
+ <p>Bugfix: the parameterless constructor of the
+ <code class="inline-code">ClassTemplateLoader</code> didn't worked.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: The Jython wrapper didn't wrapped
+ <code class="inline-code">java.util.Date</code> objects well. Now it wraps
+ them with <code class="inline-code">BeanWrapper</code> to
+ <code class="inline-code">TemplateDateModel</code>.</p>
+ </li>
+
+ <li>
+ <p>Bugfix: the <code class="inline-code">include</code> directive was
+ blamed when the included file had syntax error.</p>
+ </li>
+ </ul>
+
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_209">Other changes</h2>
+
+
+ <ul>
+ <li>
+ <p>Minor Manual fixes.</p>
+ </li>
+ </ul>
+ <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_5.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_3.html"><span>Next</span></a></div></div></div></div> </div>
+ </div>
+<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
+Last generated:
+<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
+<p class="copyright">
+� <span itemprop="copyrightYear">1999</span>\u20132017
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
+</div></div></div></body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_5.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_5.html b/builds/2.3.26-nightly/versions_2_3_5.html
new file mode 100644
index 0000000..aab02de
--- /dev/null
+++ b/builds/2.3.26-nightly/versions_2_3_5.html
@@ -0,0 +1,162 @@
+<!doctype html>
+<!-- Generated by FreeMarker/Docgen from DocBook -->
+<html lang="en" class="page-type-section">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>2.3.5 - Apache FreeMarker Manual</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="format-detection" content="telephone=no">
+<meta property="og:site_name" content="Apache FreeMarker Manual">
+<meta property="og:title" content="2.3.5">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_5.html">
+<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_5.html">
+<link rel="icon" href="favicon.png" type="image/png">
+<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono">
+<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979">
+<script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ga('create', 'UA-55420501-1', 'auto');
+ga('send', 'pageview');
+</script>
+</head>
+<body itemscope itemtype="https://schema.org/Code">
+ <meta itemprop="url" content="http://freemarker.org/docs/">
+ <meta itemprop="name" content="Apache FreeMarker Manual">
+
+ <!--[if lte IE 9]>
+ <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
+ <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker">
+</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc
h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl
ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_5.html"><span itemprop="name">2.3.5</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width">
+ <div class="content-wrapper">
+ <div id="table-of-contents-wrapper" class="col-left">
+ <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.5"];</script>
+ <script src="toc.js?1489402528979"></script>
+ <script src="docgen-resources/main.min.js?1489402528979"></script>
+ </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="versions_2_3_6.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_4.html"><span>Next</span></a></div><div class="title-wrapper">
+<h1 class="content-header header-section1" id="versions_2_3_5" itemprop="headline">2.3.5</h1>
+</div></div><div class="page-menu">
+<div class="page-menu-title">Page Contents</div>
+<ul><li><a class="page-menu-link" href="#autoid_205" data-menu-target="autoid_205">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_206" data-menu-target="autoid_206">Changes on the Java side</a></li></ul> </div><p>Date of release: 2006-03-11</p><p><em>This release was withdrawn because of a serious bug in
+ it. Please don't use it! Of course, all new features of it are
+ included in FreeMarker 2.3.6.</em></p><p>A few new features and several bugfixes.</p>
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_205">Changes on the FTL side</h2>
+
+
+ <ul>
+ <li>
+ <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1435847&group_id=794">[1435847]</a>
+ Alternative syntax doesn't work for comments</p>
+ </li>
+
+ <li>
+ <p>Bug fixed: With the new square bracket syntax, the tag
+ could be closed with <code class="inline-code">></code>. Now it can be
+ closed with <code class="inline-code">]</code> only.</p>
+ </li>
+
+ <li>
+ <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1324020&group_id=794">[1324020]</a>
+ <code class="inline-code">ParseException</code> with the
+ <code class="inline-code">ftl</code> directive if it wasn't in its own
+ line</p>
+ </li>
+
+ <li>
+ <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1404033&group_id=794">[1404033]</a>
+ <code class="inline-code">eval</code> built-in fails with hash
+ concatenation</p>
+ </li>
+ </ul>
+
+
+
+
+
+<h2 class="content-header header-section2" id="autoid_206">Changes on the Java side</h2>
+
+
+ <ul>
+ <li>
+ <p>A new <code class="inline-code">Configuration</code> level setting,
+ <code class="inline-code">tagSyntax</code> was added. This determines the
+ syntax of the templates (angle bracket syntax VS <a href="dgui_misc_alternativesyntax.html">square bracket
+ syntax</a>) that has no <code class="inline-code">ftl</code> directive in
+ it. So now you can choose to use the new square bracket syntax
+ by default. However, the recommended is to use auto-detection
+ (<code class="inline-code">yourConfig.setTagSyntax(Configuration.AUTO_DETECT_TAG_SYNTAX)</code>),
+ because that will be the default starting from 2.4.
+ Auto-detection chooses syntax based on the syntax of the first
+ FreeMarker tag of the template (could be any FreeMarker tag, not
+ just <code class="inline-code">ftl</code>). Note that as with the previous
+ version, if a the template uses <code class="inline-code">ftl</code>
+ directive, then the syntax of the <code class="inline-code">ftl</code>
+ directive determines the syntax of the template, and the
+ <code class="inline-code">tagSyntax</code> setting is ignored.</p>
+ </li>
+
+ <li>
+ <p>Now <code class="inline-code">BeansWrapper</code>,
+ <code class="inline-code">DefaultObjectWrapper</code> and
+ <code class="inline-code">SimpleObjectWrapper</code> support lookup with 1
+ character long strings in <code class="inline-code">Map</code>-s (like
+ <code class="inline-code">myHash["a"]</code>) that use
+ <code class="inline-code">Character</code> keys. Simply, as a special case,
+ when a hash lookup fails on a string that is 1 character long,
+ it checks for the <code class="inline-code">Character</code> key in the
+ underlying map. (Bug tracker entry <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1299045&group_id=794">[1299045]</a>
+ FreeMarker doesn't support map lookup with Character
+ keys.)</p>
+ </li>
+
+ <li>
+ <p>A new property, <code class="inline-code">strict</code> was added to
+ <code class="inline-code">BeansWrapper</code>,
+ <code class="inline-code">DefaultObjectWrapper</code> and
+ <code class="inline-code">SimpleObjectWrapper</code>. If this property is
+ <code class="inline-code">true</code> then an attempt to read a bean propertly
+ in the template (like <code class="inline-code">myBean.aProperty</code>) that
+ doesn't exist in the bean class (as opposed to just holding
+ <code class="inline-code">null</code> value) will cause
+ <code class="inline-code">InvalidPropertyException</code>, which can't be
+ suppressed in the template (not even with
+ <code class="inline-code">myBean.noSuchProperty?default('something')</code>).
+ This way <code class="inline-code">?default('something')</code> and
+ <code class="inline-code">?exists</code> and similar built-ins can be used to
+ handle existing properties whose value is
+ <code class="inline-code">null</code>, without the risk of hiding typos in the
+ property names. Typos will always cause error. But mind you, it
+ goes against the basic approach of FreeMarker, so use this
+ feature only if you really know what are you doing.</p>
+ </li>
+
+ <li>
+ <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1426227&group_id=794&atid=100794">[1426227]</a>
+ <code class="inline-code">NullPointerException</code> in
+ <code class="inline-code">printStackTrace(...)</code></p>
+ </li>
+
+ <li>
+ <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1386193&group_id=794&atid=100794">[1386193]</a>
+ Division by zero in <code class="inline-code">ArithmeticEngine</code></p>
+ </li>
+ </ul>
+ <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_6.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_4.html"><span>Next</span></a></div></div></div></div> </div>
+ </div>
+<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href
="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://issues.apache.org/jira/browse/FREEMARKER/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated">
+Last generated:
+<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p>
+<p class="copyright">
+� <span itemprop="copyrightYear">1999</span>\u20132017
+<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p>
+</div></div></div></body>
+</html>