Repository: freemarker
Updated Branches:
  refs/heads/3 81b482214 -> 7a3c48172


http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/TopLevelConfiguration.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/TopLevelConfiguration.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/TopLevelConfiguration.java
index 453d1fa..0a01476 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/TopLevelConfiguration.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/TopLevelConfiguration.java
@@ -210,9 +210,9 @@ public interface TopLevelConfiguration extends 
ParsingAndProcessingConfiguration
      * <p>
      * With the default {@link TemplateLookupStrategy}, localized template 
lookup works like this: Let's say your
      * locale setting is {@code Locale("en", "AU")}, and you call
-     * {@link Configuration#getTemplate(String) cfg.getTemplate("foo.ftl")}. 
Then FreeMarker will look for the
-     * template under these names, stopping at the first that exists: {@code 
"foo_en_AU.ftl"}, {@code "foo_en.ftl"},
-     * {@code "foo.ftl"}. See the description of the default value at {@link 
#getTemplateLookupStrategy()} for a more
+     * {@link Configuration#getTemplate(String) cfg.getTemplate("foo.f3ah")}. 
Then FreeMarker will look for the
+     * template under these names, stopping at the first that exists: {@code 
"foo_en_AU.f3ah"}, {@code "foo_en.f3ah"},
+     * {@code "foo.f3ah"}. See the description of the default value at {@link 
#getTemplateLookupStrategy()} for a more
      * details. If you need to generate different template names, set your own 
a {@link TemplateLookupStrategy}
      * implementation as the value of the {@link #getTemplateLookupStrategy() 
templateLookupStrategy} setting.
      * <p>

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java 
b/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java
index 346ec31..542a2f2 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java
@@ -19,7 +19,7 @@
 
 package org.apache.freemarker.core;
 
-import static 
org.apache.freemarker.core.util.TemplateLanguageUtils.getCallableTypeName;
+import static org.apache.freemarker.core.util.TemplateLanguageUtils.*;
 
 import java.util.Collection;
 import java.util.List;
@@ -204,7 +204,7 @@ public class _CallableUtils {
     }
 
     /**
-     * Something like {@code "When calling function \"lib.ftl:foo\": " or 
"When calling ?leftPad: "}
+     * Something like {@code "When calling function \"lib.f3ah:foo\": " or 
"When calling ?leftPad: "}
      */
     public static Object getMessagePartWhenCallingSomethingColon(
             TemplateCallableModel callable, boolean calledAsFunction) {

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/FileNameGlobMatcher.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/FileNameGlobMatcher.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/FileNameGlobMatcher.java
index 443b9e6..47a650c 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/FileNameGlobMatcher.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/FileNameGlobMatcher.java
@@ -25,8 +25,8 @@ import org.apache.freemarker.core.util._StringUtils;
 
 /**
  * As opposed to {@link PathGlobMatcher}, it only compares the "file name" 
part (the part after the last {@code /}) of
- * the source name with the given glob. For example, the file name glob {@code 
*.ftlh} matches both {@code foo.ftlh} and
- * {@code foo/bar.ftlh}. With other words, that file name glob is equivalent 
with the {@code **}{@code /*.ftlh})
+ * the source name with the given glob. For example, the file name glob {@code 
*.f3ah} matches both {@code foo.f3ah} and
+ * {@code foo/bar.f3ah}. With other words, that file name glob is equivalent 
with the {@code **}{@code /*.f3ah})
  * <em>path</em> glob ( {@link PathGlobMatcher}).
  */
 public class FileNameGlobMatcher extends TemplateSourceMatcher {

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java
index fc6a4aa..f835c25 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoader.java
@@ -73,7 +73,7 @@ public interface TemplateLoader {
      *            loader-defined root location (often referred as the 
"template root directory"), and will never start
      *            with a slash, nor will they contain a path component 
consisting of either a single or a double dot --
      *            these are all resolved by the template cache before passing 
the name to the loader. As a side effect,
-     *            paths that trivially reach outside template root directory, 
such as <tt>../my.ftl</tt>, will be
+     *            paths that trivially reach outside template root directory, 
such as <tt>../my.f3ah</tt>, will be
      *            rejected by the template cache, so they never reach the 
template loader. Note again, that if the path
      *            uses backslash as path separator instead of slash as (the 
template loader should not accept that), the
      *            normalization will not properly happen, as FreeMarker (the 
cache) recognizes only the slashes as

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java
index 5cb5e34..fe39b54 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java
@@ -29,7 +29,7 @@ import 
org.apache.freemarker.core.templateresolver.impl.FileTemplateLoader;
  * cache entries were generated from the same physical resource or not. 
Comparing the template names isn't enough,
  * because a {@link TemplateLoader} may uses some kind of fallback mechanism, 
such as delegating to other
  * {@link TemplateLoader}-s until the template is found. Like if we have two 
{@link FileTemplateLoader}-s with different
- * physical root directories, both can contain {@code "foo/bar.ftl"}, but 
obviously the two files aren't the same.
+ * physical root directories, both can contain {@code "foo/bar.f3ah"}, but 
obviously the two files aren't the same.
  * 
  * <p>
  * When implementing this interface, check these:

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupContext.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupContext.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupContext.java
index 940aff7..596e8d6 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupContext.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupContext.java
@@ -42,7 +42,7 @@ public abstract class TemplateLookupContext<R extends 
TemplateLookupResult> {
      * TemplateLoaderSession)}.
      * 
      * @param templateName
-     *            Must be a normalized name, like {@code "foo/bar/baaz.ftl"}. 
A name is not normalized when, among
+     *            Must be a normalized name, like {@code "foo/bar/baaz.f3ah"}. 
A name is not normalized when, among
      *            others, it starts with {@code /}, or contains {@code .} or 
{@code ..} path steps, or it uses
      *            backslash ({@code \}) instead of {@code /}. A normalized 
name might contains "*" path steps
      *            (acquisition).

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupStrategy.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupStrategy.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupStrategy.java
index d9e3997..058ed24 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupStrategy.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLookupStrategy.java
@@ -44,8 +44,8 @@ import org.apache.freemarker.core.Template;
  * used as the basis for resolving relative inclusions/imports in the 
template. The source name is pretty much only used
  * in error messages as error location, and of course, to actually load the 
template "file".
  * <li>Understand the impact of the last point if your template lookup 
strategy fiddles not only with the file name part
- * of the template name, but also with the directory part. For example, one 
may want to map "foo.ftl" to "en/foo.ftl",
- * "fr/foo.ftl", etc. That's legal, but the result is kind of like if you had 
several root directories ("en/", "fr/",
+ * of the template name, but also with the directory part. For example, one 
may want to map "foo.f3ah" to "en/foo.f3ah",
+ * "fr/foo.f3ah", etc. That's legal, but the result is kind of like if you had 
several root directories ("en/", "fr/",
  * etc.) that are layered over each other to form a single merged directory. 
(This is what's desirable in typical
  * applications, yet it can be confusing.)
  * </ul>

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateResolver.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateResolver.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateResolver.java
index 8b17b17..f7cf89c 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateResolver.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateResolver.java
@@ -172,7 +172,7 @@ public abstract class TemplateResolver {
     /**
      * Converts a name to a template root directory based name, so that it can 
be used to find a template without
      * knowing what (like which template) has referred to it. The rules depend 
on the name format, but a typical example
-     * is converting "t.ftl" with base "sub/contex.ftl" to "sub/t.ftl".
+     * is converting "t.f3ah" with base "sub/contex.f3ah" to "sub/t.f3ah".
      * <p>
      * Some implementations, notably {@link DefaultTemplateResolver}, delegate 
this task to a
      * {@link TemplateNameFormat}.
@@ -197,12 +197,12 @@ public abstract class TemplateResolver {
     /**
      * Normalizes a template root directory based name (relative to the root 
or absolute), so that equivalent names
      * become equivalent according {@link String#equals(Object)} too. The 
rules depend on the name format, but typical
-     * examples are "sub/../t.ftl" to "t.ftl", "sub/./t.ftl" to "sub/t.ftl" 
and "/t.ftl" to "t.ftl".
+     * examples are "sub/../t.f3ah" to "t.f3ah", "sub/./t.f3ah" to 
"sub/t.f3ah" and "/t.f3ah" to "t.f3ah".
      * <p>
      * Some implementations, notably {@link DefaultTemplateResolver}, 
delegates this check to a
      * {@link TemplateNameFormat}. The standard {@link TemplateNameFormat} 
implementations shipped with FreeMarker
      * always return a root relative path (except if the name starts with an 
URI schema, in which case a full URI is
-     * returned), for example, "/foo.ftl" becomes to "foo.ftl".
+     * returned), for example, "/foo.f3ah" becomes to "foo.f3ah".
      * 
      * @param name
      *            The root based name (a name that's either absolute or 
relative to the root). Not {@code null}.

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateLookupStrategy.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateLookupStrategy.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateLookupStrategy.java
index 9f74bbe..43cd99f 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateLookupStrategy.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateLookupStrategy.java
@@ -31,19 +31,19 @@ import 
org.apache.freemarker.core.templateresolver.TemplateLookupStrategy;
  * 
  * <p>
  * Through an example: Assuming localized template lookup is enabled and that 
a template is requested for the name
- * {@code example.ftl} and {@code Locale("es", "ES", "Traditional_WIN")}, it 
will try the following template names,
- * in this order: {@code "foo_en_AU_Traditional_WIN.ftl"}, {@code 
"foo_en_AU_Traditional.ftl"},
- * {@code "foo_en_AU.ftl"}, {@code "foo_en.ftl"}, {@code "foo.ftl"}. It stops 
at the first variation where it finds
+ * {@code example.f3ah} and {@code Locale("es", "ES", "Traditional_WIN")}, it 
will try the following template names,
+ * in this order: {@code "foo_en_AU_Traditional_WIN.f3ah"}, {@code 
"foo_en_AU_Traditional.f3ah"},
+ * {@code "foo_en_AU.f3ah"}, {@code "foo_en.f3ah"}, {@code "foo.f3ah"}. It 
stops at the first variation where it finds
  * a template. (If the template name contains "*" steps, finding the template 
for the attempted localized variation
  * happens with the template acquisition mechanism.) If localized template 
lookup is disabled, it won't try to add any
- * locale strings, so it just looks for {@code "foo.ftl"}.
+ * locale strings, so it just looks for {@code "foo.f3ah"}.
  * 
  * <p>
  * The generation of the localized name variation with the default lookup 
strategy, happens like this: It removes
  * the file extension (the part starting with the <em>last</em> dot), then 
appends {@link Locale#toString()} after
  * it, and puts back the extension. Then it starts to remove the parts from 
the end of the locale, considering
  * {@code "_"} as the separator between the parts. It won't remove parts that 
are not part of the locale string
- * (like if the requested template name is {@code foo_bar.ftl}, it won't 
remove the {@code "_bar"}).
+ * (like if the requested template name is {@code foo_bar.f3ah}, it won't 
remove the {@code "_bar"}).
  */
 public class DefaultTemplateLookupStrategy extends TemplateLookupStrategy {
     

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateNameFormat.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateNameFormat.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateNameFormat.java
index 5d07159..b437a39 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateNameFormat.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/DefaultTemplateNameFormat.java
@@ -34,9 +34,9 @@ import org.apache.freemarker.core.util._StringUtils;
  * treated specially with the same meaning as in UN*X paths. Directory name 
{@code "*"} is treated as acquisition
  * mark (see {@link Configuration#getTemplate(String, Locale, Serializable, 
boolean)}).
  * <p>
- * The name may starts with scheme part, like in {@code 
"classpath:com/example/bar.ftl"} (scheme "classpath" and
- * absolute path "com/example/bar.ftl") or {@code "cms://example.com/foo.ftl"} 
(scheme "cms" and absolute path
- * "example.com/foo.ftl"). The scheme name before the {@code ":"} (colon) 
can't contain {@code "/"}, and {@code ":"}
+ * The name may starts with scheme part, like in {@code 
"classpath:com/example/bar.f3ah"} (scheme "classpath" and
+ * absolute path "com/example/bar.f3ah") or {@code 
"cms://example.com/foo.f3ah"} (scheme "cms" and absolute path
+ * "example.com/foo.f3ah"). The scheme name before the {@code ":"} (colon) 
can't contain {@code "/"}, and {@code ":"}
  * can only be used for denoting the scheme, or else {@link 
MalformedTemplateNameException} is thrown.
  * The scheme part can be separated either with {@code "://"} or just with 
{@code ":"} from the path, hence, {@code
  * myscheme:/x} is normalized to {@code myscheme:x}, while {@code 
myscheme:///x} is normalized to {@code myscheme://x},
@@ -50,7 +50,7 @@ import org.apache.freemarker.core.util._StringUtils;
  * it doesn't end with {@code /}).
  * <p>
  * {@code //} is normalized to {@code /}, except of course if it's in the 
scheme name terminator. Like {@code
- * foo//bar///baaz.ftl} is normalized to {@code foo/bar/baaz.ftl}. Hence 0 
length step names aren't possible.
+ * foo//bar///baaz.f3ah} is normalized to {@code foo/bar/baaz.f3ah}. Hence 0 
length step names aren't possible.
  * <p>
  * Multiple consecutive {@code "*"} steps are normalized to one
  */
@@ -80,7 +80,7 @@ public final class DefaultTemplateNameFormat extends 
TemplateNameFormat {
                 // Not a directory name => get containing directory name
                 int baseEnd = baseName.lastIndexOf("/") + 1;
                 if (baseEnd == 0) {
-                    // For something like "classpath:t.ftl", must not remove 
the scheme part:
+                    // For something like "classpath:t.f3ah", must not remove 
the scheme part:
                     baseEnd = findSchemeSectionEnd(baseName);
                 }
                 baseName = baseName.substring(0, baseEnd);

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/TemplateLoaderBasedTemplateLookupResult.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/TemplateLoaderBasedTemplateLookupResult.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/TemplateLoaderBasedTemplateLookupResult.java
index 380fb18..f510f6f 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/TemplateLoaderBasedTemplateLookupResult.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/impl/TemplateLoaderBasedTemplateLookupResult.java
@@ -64,8 +64,8 @@ public abstract class TemplateLoaderBasedTemplateLookupResult 
extends TemplateLo
          * @param templateSourceName
          *            The name of the matching template found. This is not 
necessarily the same as the template name
          *            with which the template was originally requested. For 
example, one may gets a template for the
-         *            {@code "foo.ftl"} name, but due to localized template 
lookup the template is actually loaded from
-         *            {@code "foo_de.ftl"}. Then this parameter must be {@code 
"foo_de.ftl"}, not {@code "foo.ftl"}. Not
+         *            {@code "foo.f3ah"} name, but due to localized template 
lookup the template is actually loaded from
+         *            {@code "foo_de.f3ah"}. Then this parameter must be 
{@code "foo_de.f3ah"}, not {@code "foo.f3ah"}. Not
          *            {@code null}.
          * 
          * @param templateLoaderResult

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java
index 3adf958..96f6960 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java
@@ -1461,14 +1461,14 @@ public class _StringUtils {
      * <ul>
      *   <li>{@code ?}: Wildcard that matches exactly one character, other 
than {@code /} 
      *   <li>{@code *}: Wildcard that matches zero, one or multiple 
characters, other than {@code /}
-     *   <li>{@code **}: Wildcard that matches zero, one or multiple 
directories. For example, {@code **}{@code /head.ftl}
-     *       matches {@code foo/bar/head.ftl}, {@code foo/head.ftl} and {@code 
head.ftl} too. {@code **} must be either
+     *   <li>{@code **}: Wildcard that matches zero, one or multiple 
directories. For example, {@code **}{@code /head.f3ah}
+     *       matches {@code foo/bar/head.f3ah}, {@code foo/head.f3ah} and 
{@code head.f3ah} too. {@code **} must be either
      *       preceded by {@code /} or be at the beginning of the glob. {@code 
**} must be either followed by {@code /} or be
      *       at the end of the glob. When {@code **} is at the end of the 
glob, it also matches file names, like
-     *       {@code a/**} matches {@code a/b/c.ftl}. If the glob only consist 
of a {@code **}, it will be a match for
+     *       {@code a/**} matches {@code a/b/c.f3ah}. If the glob only consist 
of a {@code **}, it will be a match for
      *       everything.
-     *   <li>{@code \} (backslash): Makes the next character non-special (a 
literal). For example {@code How\?.ftl} will
-     *       match {@code How?.ftl}, but not {@code HowX.ftl}. Naturally, two 
backslashes produce one literal backslash. 
+     *   <li>{@code \} (backslash): Makes the next character non-special (a 
literal). For example {@code How\?.f3ah} will
+     *       match {@code How?.f3ah}, but not {@code HowX.f3ah}. Naturally, 
two backslashes produce one literal backslash. 
      *   <li>{@code [}: Reserved for future purposes; can't be used
      *   <li><code>{</code>: Reserved for future purposes; can't be used
      * </ul>

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/ConfigureOutputFormatExamples.java
----------------------------------------------------------------------
diff --git 
a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/ConfigureOutputFormatExamples.java
 
b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/ConfigureOutputFormatExamples.java
index 8d6ce99..23d4c8b 100644
--- 
a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/ConfigureOutputFormatExamples.java
+++ 
b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/ConfigureOutputFormatExamples.java
@@ -39,7 +39,7 @@ public class ConfigureOutputFormatExamples extends 
TemplateTest {
     
     @Test
     public void test() throws Exception {
-        addTemplate("mail/t.ftl", "");
+        addTemplate("mail/news", "");
         addTemplate("t.html", "");
         addTemplate("t.htm", "");
         addTemplate("t.xml", "");
@@ -65,7 +65,7 @@ public class ConfigureOutputFormatExamples extends 
TemplateTest {
                         : new TestConfigurationBuilder()
                                 
.settings(loadPropertiesFile("ConfigureOutputFormatExamples1.properties"))
                                 .build());
-        assertEquals(HTMLOutputFormat.INSTANCE, 
getConfiguration().getTemplate("mail/t.ftl").getOutputFormat());
+        assertEquals(HTMLOutputFormat.INSTANCE, 
getConfiguration().getTemplate("mail/news").getOutputFormat());
     }
 
     private void example3(boolean javaCfg) throws IOException {

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/TemplateConfigurationExamples.java
----------------------------------------------------------------------
diff --git 
a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/TemplateConfigurationExamples.java
 
b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/TemplateConfigurationExamples.java
index d1b5e3e..03dc3b1 100644
--- 
a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/TemplateConfigurationExamples.java
+++ 
b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/TemplateConfigurationExamples.java
@@ -112,14 +112,14 @@ public class TemplateConfigurationExamples extends 
TemplateTest {
         }
         setConfiguration(cfgB.build());
 
-        addTemplate("t.subject.ftl", "");
-        addTemplate("mail/t.subject.ftl", "");
-        addTemplate("mail/t.body.ftl", "");
+        addTemplate("t.subject.t", "");
+        addTemplate("mail/t.subject.t", "");
+        addTemplate("mail/t.body.t", "");
 
         Configuration cfg = getConfiguration();
-        assertEquals(UndefinedOutputFormat.INSTANCE, 
cfg.getTemplate("t.subject.ftl").getOutputFormat());
-        assertEquals(PlainTextOutputFormat.INSTANCE, 
cfg.getTemplate("mail/t.subject.ftl").getOutputFormat());
-        assertEquals(HTMLOutputFormat.INSTANCE, 
cfg.getTemplate("mail/t.body.ftl").getOutputFormat());
+        assertEquals(UndefinedOutputFormat.INSTANCE, 
cfg.getTemplate("t.subject.t").getOutputFormat());
+        assertEquals(PlainTextOutputFormat.INSTANCE, 
cfg.getTemplate("mail/t.subject.t").getOutputFormat());
+        assertEquals(HTMLOutputFormat.INSTANCE, 
cfg.getTemplate("mail/t.body.t").getOutputFormat());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
----------------------------------------------------------------------
diff --git 
a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
 
b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
index 9faa83c..2727f00 100644
--- 
a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
+++ 
b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
@@ -75,7 +75,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 /**
  * FreeMarker MVC View servlet that can be used similarly to JSP views. That 
is, you put the variables to expose into
  * HTTP servlet request attributes, then forward to an FTL file (instead of to 
a JSP file) that's mapped to this servet
- * (usually via the {@code <url-pattern>*.ftl<url-pattern>}). See web.xml 
example (and more) in the FreeMarker Manual!
+ * (usually via the {@code <url-pattern>*.f3ah<url-pattern>}). See web.xml 
example (and more) in the FreeMarker Manual!
  * 
  * 
  * <p>

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/FreemarkerServletTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/FreemarkerServletTest.java
 
b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/FreemarkerServletTest.java
index 2b25a29..2a7db59 100644
--- 
a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/FreemarkerServletTest.java
+++ 
b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/FreemarkerServletTest.java
@@ -53,20 +53,20 @@ import org.springframework.mock.web.MockServletContext;
 
 public class FreemarkerServletTest {
 
-    private static final String OUTPUT_FORMAT_HEADER_FTL = 
"outputFormatHeader.ftl";
-    private static final String CONTENT_TYPE_ATTR_FTL = "contentTypeAttr.ftl";
-    private static final String CONTENT_TYPE_ATTR_WITH_CHARSET_FTL = 
"contentTypeAttrWithCharset.ftl";
-    private static final String FOO_FTL = "foo.ftl";
-    private static final String FOO_SRC_UTF8_FTL = "foo-src-utf8.ftl";
-    private static final String FOO_OUT_UTF8_FTL = "foo-out-utf8.ftl";
-    private static final String STD_OUTPUT_FORMAT_HTML_FTL = 
"stdOutputFormatHTML.ftl";
-    private static final String STD_OUTPUT_FORMAT_XML_FTL = 
"stdOutputFormatXML.ftl";
-    private static final String STD_OUTPUT_FORMAT_XHTML_FTL = 
"stdOutputFormatXHTML.ftl";
-    private static final String STD_OUTPUT_FORMAT_JAVA_SCRIPT_FTL = 
"stdOutputFormatJavaScript.ftl";
-    private static final String STD_OUTPUT_FORMAT_JSON_FTL = 
"stdOutputFormatJSON.ftl";
-    private static final String STD_OUTPUT_FORMAT_CSS_FTL = 
"stdOutputFormatCSS.ftl";
-    private static final String STD_OUTPUT_FORMAT_PLAIN_TEXT_FTL = 
"stdOutputFormatPlainText.ftl";
-    private static final String STD_OUTPUT_FORMAT_RTF_FTL = 
"stdOutputFormatRTF.ftl";
+    private static final String OUTPUT_FORMAT_HEADER_FTL = 
"outputFormatHeader.f3ac";
+    private static final String CONTENT_TYPE_ATTR_FTL = "contentTypeAttr.f3ac";
+    private static final String CONTENT_TYPE_ATTR_WITH_CHARSET_FTL = 
"contentTypeAttrWithCharset.f3ac";
+    private static final String FOO_FTL = "foo.f3ac";
+    private static final String FOO_SRC_UTF8_FTL = "foo-src-utf8.f3ac";
+    private static final String FOO_OUT_UTF8_FTL = "foo-out-utf8.f3ac";
+    private static final String STD_OUTPUT_FORMAT_HTML_FTL = 
"stdOutputFormatHTML.f3ac";
+    private static final String STD_OUTPUT_FORMAT_XML_FTL = 
"stdOutputFormatXML.f3ac";
+    private static final String STD_OUTPUT_FORMAT_XHTML_FTL = 
"stdOutputFormatXHTML.f3ac";
+    private static final String STD_OUTPUT_FORMAT_JAVA_SCRIPT_FTL = 
"stdOutputFormatJavaScript.f3ac";
+    private static final String STD_OUTPUT_FORMAT_JSON_FTL = 
"stdOutputFormatJSON.f3ac";
+    private static final String STD_OUTPUT_FORMAT_CSS_FTL = 
"stdOutputFormatCSS.f3ac";
+    private static final String STD_OUTPUT_FORMAT_PLAIN_TEXT_FTL = 
"stdOutputFormatPlainText.f3ac";
+    private static final String STD_OUTPUT_FORMAT_RTF_FTL = 
"stdOutputFormatRTF.f3ac";
 
     private static final Locale DEFAULT_LOCALE = Locale.US;
     private static final Charset CFG_DEFAULT_ENCODING = 
StandardCharsets.US_ASCII;

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/WebAppTemplateLoaderTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/WebAppTemplateLoaderTest.java
 
b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/WebAppTemplateLoaderTest.java
index be15048..8bdfaf4 100644
--- 
a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/WebAppTemplateLoaderTest.java
+++ 
b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/WebAppTemplateLoaderTest.java
@@ -43,7 +43,7 @@ public class WebAppTemplateLoaderTest {
     @Test
     public void testTemplateNotFound() throws IOException {
         try {
-            createConfiguration().getTemplate("missing.ftl");
+            createConfiguration().getTemplate("missing.f3ah");
             fail();
         } catch (TemplateNotFoundException e) {
             LOG.debug("Expected result", e);

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/test/WebAppTestCase.java
----------------------------------------------------------------------
diff --git 
a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/test/WebAppTestCase.java
 
b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/test/WebAppTestCase.java
index 1980b95..961b812 100644
--- 
a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/test/WebAppTestCase.java
+++ 
b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/test/WebAppTestCase.java
@@ -148,7 +148,7 @@ public class WebAppTestCase {
      * 
      * @param webAppRelURLWithoutExt
      *            something like {@code "tester?view=foo"}, which will be 
extended to {@code "tester?view=foo.jsp"} and
-     *            {@code "tester?view=foo.ftl"}, and then the output of these 
extended URL-s will be compared.
+     *            {@code "tester?view=foo.f3ah"}, and then the output of these 
extended URL-s will be compared.
      */
     protected void assertJSPAndFTLOutputEquals(String webAppName, String 
webAppRelURLWithoutExt) throws Exception {
         assertOutputsEqual(webAppName, webAppRelURLWithoutExt + ".jsp", 
webAppRelURLWithoutExt + ".f3ah");

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
 
b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
index a737b36..d293b9a 100644
--- 
a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
+++ 
b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
@@ -82,8 +82,8 @@ public class ConfigurationFactoryBeanTest {
         sharedVars.put("sharedVar2", "sharedVal2");
 
         final Map<String, String> autoImports = new HashMap<>();
-        autoImports.put("mylib1", "/libs/mylib1.ftl");
-        autoImports.put("mylib2", "/libs/mylib2.ftl");
+        autoImports.put("mylib1", "/libs/mylib1.f3ah");
+        autoImports.put("mylib2", "/libs/mylib2.f3ah");
 
         final StringTemplateLoader templateLoader = new StringTemplateLoader();
         templateLoader.putTemplate("fooTemplate", "foo");
@@ -108,8 +108,8 @@ public class ConfigurationFactoryBeanTest {
         //   </property>
         //   <property name="autoImports">
         //     <map>
-        //       <entry key="mylib1" value="/libs/mylib1.ftl" />
-        //       <entry key="mylib2" value="/libs/mylib2.ftl" />
+        //       <entry key="mylib1" value="/libs/mylib1.f3ah" />
+        //       <entry key="mylib2" value="/libs/mylib2.f3ah" />
         //     </map>
         //   </property>
         //   <property name="templateUpdateDelayMilliseconds" value="60000" />
@@ -160,8 +160,8 @@ public class ConfigurationFactoryBeanTest {
         assertEquals("sharedVal1", 
config.getSharedVariables().get("sharedVar1"));
         assertEquals("sharedVal2", 
config.getSharedVariables().get("sharedVar2"));
 
-        assertEquals("/libs/mylib1.ftl", 
config.getAutoImports().get("mylib1"));
-        assertEquals("/libs/mylib2.ftl", 
config.getAutoImports().get("mylib2"));
+        assertEquals("/libs/mylib1.f3ah", 
config.getAutoImports().get("mylib1"));
+        assertEquals("/libs/mylib2.f3ah", 
config.getAutoImports().get("mylib2"));
 
         final Template fooTemplate = config.getTemplate("fooTemplate");
         assertEquals("foo", fooTemplate.toString());

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-spring/src/test/java/org/apache/freemarker/spring/SpringResourceTemplateLoaderTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-spring/src/test/java/org/apache/freemarker/spring/SpringResourceTemplateLoaderTest.java
 
b/freemarker-spring/src/test/java/org/apache/freemarker/spring/SpringResourceTemplateLoaderTest.java
index 3a39d66..7f7a9e5 100644
--- 
a/freemarker-spring/src/test/java/org/apache/freemarker/spring/SpringResourceTemplateLoaderTest.java
+++ 
b/freemarker-spring/src/test/java/org/apache/freemarker/spring/SpringResourceTemplateLoaderTest.java
@@ -68,7 +68,7 @@ public class SpringResourceTemplateLoaderTest {
     public void testNotFound() throws Exception {
         for (int i = 0; i < 2; i++) {
             try {
-                cfg.getTemplate("sub1X/sub2/t.ftl");
+                cfg.getTemplate("sub1X/sub2/t.f3ah");
                 fail();
             } catch (TemplateNotFoundException e) {
                 assertThat(e.getMessage(), containsString("sub1X"));

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewResolverTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewResolverTest.java
 
b/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewResolverTest.java
index e75155e..7d7a399 100644
--- 
a/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewResolverTest.java
+++ 
b/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewResolverTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.freemarker.spring.web.view;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
 
 import java.util.HashMap;
 import java.util.Locale;
@@ -48,7 +48,7 @@ public class FreeMarkerViewResolverTest {
 
     private String prefix = "/WEB-INF/freemarker/";
     private String normalizedPrefix = "WEB-INF/freemarker/";
-    private String suffix = ".ftl";
+    private String suffix = ".f3ah";
 
     @Before
     public void setUp() throws Exception {

http://git-wip-us.apache.org/repos/asf/freemarker/blob/7a3c4817/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewTest.java
 
b/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewTest.java
index 078bfa0..64c1e79 100644
--- 
a/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewTest.java
+++ 
b/freemarker-spring/src/test/java/org/apache/freemarker/spring/web/view/FreeMarkerViewTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.freemarker.spring.web.view;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -90,9 +90,9 @@ public class FreeMarkerViewTest {
         request.setContextPath("/mycontext");
         request.setServletPath("/myservlet");
 
-        templateLoader.putTemplate("hello.ftl", "Hello, ${name!\"World\"}! 
Visit count: ${visitCount!0}");
+        templateLoader.putTemplate("hello.f3ah", "Hello, ${name!\"World\"}! 
Visit count: ${visitCount!0}");
 
-        FreeMarkerView view = createFreemarkerView("hello.ftl");
+        FreeMarkerView view = createFreemarkerView("hello.f3ah");
 
         int visitCount = 0;
         Map<String, Object> model = new HashMap<String, Object>();
@@ -121,12 +121,12 @@ public class FreeMarkerViewTest {
         request.setSession(session);
         request.setAttribute("promotion", "Fresh blue berries");
 
-        templateLoader.putTemplate("default-model.ftl",
+        templateLoader.putTemplate("default-model.f3ah",
                 "${name!}, you have ${Session.itemCountInCart!0} items in 
cart. " + "Hot deal: ${Request.promotion}. "
                         + "BTW, you're ${Application.visitorCount}th visitor. "
                         + "(token1: ${RequestParameters['token1']!})");
 
-        FreeMarkerView view = createFreemarkerView("default-model.ftl");
+        FreeMarkerView view = createFreemarkerView("default-model.f3ah");
 
         Map<String, Object> model = new HashMap<String, Object>();
         model.put("name", "Dan");
@@ -144,12 +144,12 @@ public class FreeMarkerViewTest {
         request.setContextPath("/mycontext");
         request.setServletPath("/myservlet");
 
-        templateLoader.putTemplate("taglibs.ftl",
+        templateLoader.putTemplate("taglibs.f3ah",
                 "<#assign e=JspTaglibs 
['http://freemarker.org/jsp/example/echo'] >"
                 + "<#assign msg=\"Hello!\" />"
                 + "<@e.echo message=msg />");
 
-        FreeMarkerView view = createFreemarkerView("taglibs.ftl");
+        FreeMarkerView view = createFreemarkerView("taglibs.f3ah");
 
         Map<String, Object> model = new HashMap<String, Object>();
         MockHttpServletResponse response = new MockHttpServletResponse();

Reply via email to