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">&lt;#list map as k,
+              v&gt;${k}: ${v}&lt;/#list&gt;</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&#39;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">&lt;#import 
&quot;lib/utils.ftl&quot; as u&gt;</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&#39;t 
want
+              the overhead of importing templates that aren&#39;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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;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">&lt;@my.foo...&gt;</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&#39;t
+              removed auto-imports added earlier. (Though it&#39;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&#39;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 &#39;value()&#39; in type 
&#39;SuppressFBWarnings&#39;"</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>–2017
+<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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;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&#39;s it&#39;s called 
from.</p>
+            </li>
+
+            <li>
+              <p>Bug fixed: <code 
class="inline-code">MultiTemplateLoader</code>, when
+              it&#39;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&#39;t find the template now 
(let&#39;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&#39;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&#39;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&#39;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&#39;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>–2017
+<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&#39;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">&quot;&quot;</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&#39;t support the new features 
of
+              JSP 2 yet, it&#39;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">&quot;&quot;</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&#39;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&amp;aid=1217661&amp;group_id=794&amp;atid=100794";>#1217661</a>
+              and <a 
href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1166533&amp;group_id=794&amp;atid=100794";>#1166533</a>)</p>
+            </li>
+
+            <li>
+              <p>Bugfix: Can&#39;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&amp;aid=1202918&amp;group_id=794&amp;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>–2017
+<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">&lt;</code> and
+              <code class="inline-code">&gt;</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&#39;t 
worked.</p>
+            </li>
+
+            <li>
+              <p>Bugfix: The Jython wrapper didn&#39;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>–2017
+<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&#39;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&amp;atid=100794&amp;aid=1435847&amp;group_id=794";>[1435847]</a>
+              Alternative syntax doesn&#39;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">&gt;</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&amp;atid=100794&amp;aid=1324020&amp;group_id=794";>[1324020]</a>
+              <code class="inline-code">ParseException</code> with the
+              <code class="inline-code">ftl</code> directive if it wasn&#39;t 
in its own
+              line</p>
+            </li>
+
+            <li>
+              <p>Bug fixed: <a 
href="http://sourceforge.net/tracker/?func=detail&amp;atid=100794&amp;aid=1404033&amp;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[&quot;a&quot;]</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&amp;atid=100794&amp;aid=1299045&amp;group_id=794";>[1299045]</a>
+              FreeMarker doesn&#39;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&#39;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&#39;t be
+              suppressed in the template (not even with
+              <code 
class="inline-code">myBean.noSuchProperty?default(&#39;something&#39;)</code>).
+              This way <code 
class="inline-code">?default(&#39;something&#39;)</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&amp;aid=1426227&amp;group_id=794&amp;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&amp;aid=1386193&amp;group_id=794&amp;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>–2017
+<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>

Reply via email to