You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/04/06 12:33:52 UTC

incubator-freemarker git commit: Template.sourceEncoding was renamed to Template.actualSourceEncoding, to emphasize that it's not the template-layer equivalent of the sourceEncoding ParserConfiguration setting. This is in line with Template.actualTagSynt

Repository: incubator-freemarker
Updated Branches:
  refs/heads/3 5dfdcb3e0 -> 3f77b8f76


Template.sourceEncoding was renamed to Template.actualSourceEncoding, to emphasize that it's not the template-layer equivalent of the sourceEncoding ParserConfiguration setting. This is in line with Template.actualTagSyntax and the other "actual" properties. (Just as in FM2, Template.getParserConfiguration() still can be used get the sourceEncoding used during parsing.)


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/3f77b8f7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/3f77b8f7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/3f77b8f7

Branch: refs/heads/3
Commit: 3f77b8f7665f36100265d44c137f1984531563b7
Parents: 5dfdcb3
Author: ddekany <dd...@apache.org>
Authored: Thu Apr 6 14:33:46 2017 +0200
Committer: ddekany <dd...@apache.org>
Committed: Thu Apr 6 14:33:46 2017 +0200

----------------------------------------------------------------------
 .../org/apache/freemarker/core/Template.java    | 28 ++++++++++++--------
 .../freemarker/core/TemplateConfiguration.java  |  5 +---
 .../freemarker/core/TemplateLanguage.java       |  4 +--
 .../freemarker/servlet/FreemarkerServlet.java   |  2 +-
 src/manual/en_US/FM3-CHANGE-LOG.txt             |  4 +++
 .../freemarker/core/ConfigurationTest.java      | 20 +++++++-------
 .../freemarker/core/EncodingOverrideTest.java   |  4 +--
 ...gurationWithDefaultTemplateResolverTest.java | 10 +++----
 .../core/TemplateConstructorsTest.java          | 14 +++++-----
 .../core/TemplateGetEncodingTest.java           | 12 ++++-----
 .../DefaultTemplateResolverTest.java            |  6 ++---
 .../TemplateConfigurationExamples.java          | 12 ++++-----
 12 files changed, 64 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/main/java/org/apache/freemarker/core/Template.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/Template.java b/src/main/java/org/apache/freemarker/core/Template.java
index c28346d..38cf7f4 100644
--- a/src/main/java/org/apache/freemarker/core/Template.java
+++ b/src/main/java/org/apache/freemarker/core/Template.java
@@ -86,7 +86,7 @@ public class Template extends MutableProcessingConfiguration<Template> implement
     private Map macros = new HashMap();
     private List imports = new ArrayList();
     private ASTElement rootElement;
-    private Charset sourceEncoding;
+    private Charset actualSourceEncoding;
     private String defaultNS;
     private Serializable customLookupCondition;
     private int actualTagSyntax;
@@ -246,7 +246,7 @@ public class Template extends MutableProcessingConfiguration<Template> implement
            Charset sourceEncoding, InputStream streamToUnmarkWhenEncEstabd) throws IOException, ParseException {
         this(name, sourceName, cfg, customParserConfiguration);
 
-       setSourceEncoding(sourceEncoding);
+       setActualSourceEncoding(sourceEncoding);
         LineTableBuilder ltbReader;
         try {
             ParserConfiguration actualParserConfiguration = getParserConfiguration();
@@ -314,7 +314,10 @@ public class Template extends MutableProcessingConfiguration<Template> implement
      * @param config
      *            the configuration to which this template belongs
      *
-     * @param sourceEncoding
+     * @param sourceEncoding The charset used to decode the template content to the {@link String} passed in with the
+     *            {@code content} parameter. If that information is not known or irrelevant, this should be
+     *            {@link null}.
+     *
      * @since 2.3.22
      */
     static public Template createPlainTextTemplate(String name, String sourceName, String content, Configuration config,
@@ -326,7 +329,7 @@ public class Template extends MutableProcessingConfiguration<Template> implement
             throw new BugException("Plain text template creation failed", e);
         }
         ((ASTStaticText) template.rootElement).replaceText(content);
-        template.setSourceEncoding(sourceEncoding);
+        template.setActualSourceEncoding(sourceEncoding);
 
         _DebuggerService.registerTemplate(template);
 
@@ -562,20 +565,23 @@ public class Template extends MutableProcessingConfiguration<Template> implement
     }
 
     /**
-     * @param sourceEncoding
+     * @param actualSourceEncoding
      *            The sourceEncoding that was used to read this template, or {@code null} if the source of the template
      *            already gives back text (as opposed to binary data), so no decoding with a charset was needed.
      */
-    void setSourceEncoding(Charset sourceEncoding) {
-        this.sourceEncoding = sourceEncoding;
+    void setActualSourceEncoding(Charset actualSourceEncoding) {
+        this.actualSourceEncoding = actualSourceEncoding;
     }
 
     /**
-     * The sourceEncoding that was used to read this template, or {@code null} if the source of the template
-     * already gives back text (as opposed to binary data), so no decoding with a charset was needed.
+     * The charset that was actually used to read this template from the binary source, or {@code null} if that
+     * information is not known.
+     * When using {@link DefaultTemplateResolver}, this is {@code null} exactly if the {@link TemplateLoader}
+     * returns text instead of binary content, which should only be the case for data sources that naturally return
+     * text (such as varchar and CLOB columns in a database).
      */
-    public Charset getSourceEncoding() {
-        return sourceEncoding;
+    public Charset getActualSourceEncoding() {
+        return actualSourceEncoding;
     }
     
     /**

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java b/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java
index 6d1ff13..e1fa479 100644
--- a/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java
+++ b/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java
@@ -213,7 +213,7 @@ public final class TemplateConfiguration implements ParserAndProcessingConfigura
      * 
      * <p>
      * Note that the {@code sourceEncoding} setting of the {@link Template} counts as unset if it's {@code null},
-     * even if {@code null} was set via {@link Template#setSourceEncoding(Charset)}.
+     * even if {@code null} was set via {@link Template#setActualSourceEncoding(Charset)}.
      *
      * @throws IllegalStateException
      *             If the parent configuration wasn't yet set.
@@ -258,9 +258,6 @@ public final class TemplateConfiguration implements ParserAndProcessingConfigura
         if (isDateTimeFormatSet() && !template.isDateTimeFormatSet()) {
             template.setDateTimeFormat(getDateTimeFormat());
         }
-        if (isSourceEncodingSet() && template.getSourceEncoding() == null) {
-            template.setSourceEncoding(getSourceEncoding());
-        }
         if (isLocaleSet() && !template.isLocaleSet()) {
             template.setLocale(getLocale());
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/main/java/org/apache/freemarker/core/TemplateLanguage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/TemplateLanguage.java b/src/main/java/org/apache/freemarker/core/TemplateLanguage.java
index 260b35f..9de92bb 100644
--- a/src/main/java/org/apache/freemarker/core/TemplateLanguage.java
+++ b/src/main/java/org/apache/freemarker/core/TemplateLanguage.java
@@ -59,7 +59,7 @@ public abstract class TemplateLanguage {
 
         @Override
         public Template parse(String name, String sourceName, Reader reader, Configuration cfg, ParserConfiguration
-                customParserConfiguration, Charset encoding, InputStream streamToUnmarkWhenEncEstabd)
+                customParserConfiguration, Charset sourceEncoding, InputStream streamToUnmarkWhenEncEstabd)
                 throws IOException, ParseException {
             // Read the contents into a StringWriter, then construct a single-text-block template from it.
             final StringBuilder sb = new StringBuilder();
@@ -69,7 +69,7 @@ public abstract class TemplateLanguage {
                 sb.append(buf, 0, charsRead);
             }
             return Template.createPlainTextTemplate(name, sourceName, sb.toString(), cfg,
-                    encoding);
+                    sourceEncoding);
         }
     };
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java b/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
index 3b67622..3cdc108 100644
--- a/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
+++ b/src/main/java/org/apache/freemarker/servlet/FreemarkerServlet.java
@@ -932,7 +932,7 @@ public class FreemarkerServlet extends HttpServlet {
                 : template.getOutputEncoding();
         // [FM3] Don't use template.getSourceEncoding() here; it might can't encode the dynamic values inserted.
         return outputEncoding != null ? outputEncoding
-                : template.getSourceEncoding() != null ? template.getSourceEncoding()
+                : template.getActualSourceEncoding() != null ? template.getActualSourceEncoding()
                 : StandardCharsets.UTF_8;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/manual/en_US/FM3-CHANGE-LOG.txt
----------------------------------------------------------------------
diff --git a/src/manual/en_US/FM3-CHANGE-LOG.txt b/src/manual/en_US/FM3-CHANGE-LOG.txt
index bc23af2..1847aba 100644
--- a/src/manual/en_US/FM3-CHANGE-LOG.txt
+++ b/src/manual/en_US/FM3-CHANGE-LOG.txt
@@ -196,3 +196,7 @@ the FreeMarer 3 changelog here:
     Note that as the type of the settings have changed, now you can't just write something like
     `TemplateConfiguration(sourceEncoding = "UTF-8")`, but `TemplateConfiguration(sourceEncoding = Charset("UTF-8"))`.
 - Removed Template.templateLanguageVersion, as we solely rely on incompatibleImprovements instead.
+- Template.sourceEncoding was renamed to Template.actualSourceEncoding, to emphasize that it's not the template-layer
+  equivalent of the sourceEncoding ParserConfiguration setting. This is in line with Template.actualTagSyntax and the
+  other "actual" properties. (Just as in FM2, Template.getParserConfiguration() still can be used get the
+  sourceEncoding used during parsing.)

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/test/java/org/apache/freemarker/core/ConfigurationTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ConfigurationTest.java b/src/test/java/org/apache/freemarker/core/ConfigurationTest.java
index ccfeca0..f24c63e 100644
--- a/src/test/java/org/apache/freemarker/core/ConfigurationTest.java
+++ b/src/test/java/org/apache/freemarker/core/ConfigurationTest.java
@@ -281,7 +281,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tFtl, t.getSourceName());
             assertEquals(Locale.GERMAN, t.getLocale());
             assertNull(t.getCustomLookupCondition());
-            assertEquals(StandardCharsets.ISO_8859_1, t.getSourceEncoding());
+            assertEquals(StandardCharsets.ISO_8859_1, t.getActualSourceEncoding());
         }
         {
             Template t = cfg.getTemplate(tUtf8Ftl);
@@ -289,7 +289,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tUtf8Ftl, t.getSourceName());
             assertEquals(Locale.GERMAN, t.getLocale());
             assertNull(t.getCustomLookupCondition());
-            assertEquals(StandardCharsets.UTF_8, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_8, t.getActualSourceEncoding());
         }
         
         // 2 args:
@@ -299,7 +299,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tFtl, t.getSourceName());
             assertEquals(Locale.GERMAN, t.getLocale());
             assertNull(t.getCustomLookupCondition());
-            assertEquals(StandardCharsets.ISO_8859_1, t.getSourceEncoding());
+            assertEquals(StandardCharsets.ISO_8859_1, t.getActualSourceEncoding());
         }
         {
             Template t = cfg.getTemplate(tFtl, (Locale) null);
@@ -307,7 +307,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tFtl, t.getSourceName());
             assertEquals(Locale.GERMAN, t.getLocale());
             assertNull(t.getCustomLookupCondition());
-            assertEquals(StandardCharsets.ISO_8859_1, t.getSourceEncoding());
+            assertEquals(StandardCharsets.ISO_8859_1, t.getActualSourceEncoding());
         }
         {
             Template t = cfg.getTemplate(tFtl, Locale.US);
@@ -315,7 +315,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tEnFtl, t.getSourceName());
             assertEquals(Locale.US, t.getLocale());
             assertNull(t.getCustomLookupCondition());
-            assertEquals(StandardCharsets.ISO_8859_1, t.getSourceEncoding());
+            assertEquals(StandardCharsets.ISO_8859_1, t.getActualSourceEncoding());
         }
         {
             Template t = cfg.getTemplate(tUtf8Ftl, Locale.US);
@@ -323,7 +323,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tUtf8Ftl, t.getSourceName());
             assertEquals(Locale.US, t.getLocale());
             assertNull(t.getCustomLookupCondition());
-            assertEquals(StandardCharsets.UTF_8, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_8, t.getActualSourceEncoding());
         }
         {
             Template t = cfg.getTemplate(tFtl, hu);
@@ -331,7 +331,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tHuFtl, t.getSourceName());
             assertEquals(hu, t.getLocale());
             assertNull(t.getCustomLookupCondition());
-            assertEquals(ISO_8859_2, t.getSourceEncoding());
+            assertEquals(ISO_8859_2, t.getActualSourceEncoding());
         }
         {
             Template t = cfg.getTemplate(tUtf8Ftl, hu);
@@ -339,7 +339,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tUtf8Ftl, t.getSourceName());
             assertEquals(hu, t.getLocale());
             assertNull(t.getCustomLookupCondition());
-            assertEquals(StandardCharsets.UTF_8, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_8, t.getActualSourceEncoding());
         }
 
         // 4 args:
@@ -356,7 +356,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tHuFtl, t.getSourceName());
             assertEquals(hu, t.getLocale());
             assertEquals(custLookupCond, t.getCustomLookupCondition());
-            assertEquals(ISO_8859_2, t.getSourceEncoding());
+            assertEquals(ISO_8859_2, t.getActualSourceEncoding());
             assertOutputEquals("1", t);
         }
         {
@@ -365,7 +365,7 @@ public class ConfigurationTest extends TestCase {
             assertEquals(tFtl, t.getSourceName());
             assertEquals(Locale.GERMAN, t.getLocale());
             assertEquals(custLookupCond, t.getCustomLookupCondition());
-            assertEquals(StandardCharsets.ISO_8859_1, t.getSourceEncoding());
+            assertEquals(StandardCharsets.ISO_8859_1, t.getActualSourceEncoding());
             assertOutputEquals("1", t);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java b/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java
index 7648624..ece57c1 100644
--- a/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java
+++ b/src/test/java/org/apache/freemarker/core/EncodingOverrideTest.java
@@ -34,14 +34,14 @@ public class EncodingOverrideTest {
     @Test
     public void testMarchingCharset() throws Exception {
         Template t = createConfig(StandardCharsets.UTF_8).getTemplate("encodingOverride-UTF-8.ftl");
-        assertEquals(StandardCharsets.UTF_8, t.getSourceEncoding());
+        assertEquals(StandardCharsets.UTF_8, t.getActualSourceEncoding());
         checkTemplateOutput(t);
     }
 
     @Test
     public void testDifferentCharset() throws Exception {
         Template t = createConfig(StandardCharsets.UTF_8).getTemplate("encodingOverride-ISO-8859-1.ftl");
-        assertEquals(StandardCharsets.ISO_8859_1, t.getSourceEncoding());
+        assertEquals(StandardCharsets.ISO_8859_1, t.getActualSourceEncoding());
         checkTemplateOutput(t);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/test/java/org/apache/freemarker/core/TemplateConfigurationWithDefaultTemplateResolverTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/TemplateConfigurationWithDefaultTemplateResolverTest.java b/src/test/java/org/apache/freemarker/core/TemplateConfigurationWithDefaultTemplateResolverTest.java
index b154ebb..24c7ec6 100644
--- a/src/test/java/org/apache/freemarker/core/TemplateConfigurationWithDefaultTemplateResolverTest.java
+++ b/src/test/java/org/apache/freemarker/core/TemplateConfigurationWithDefaultTemplateResolverTest.java
@@ -50,27 +50,27 @@ public class TemplateConfigurationWithDefaultTemplateResolverTest {
         
         {
             Template t = cfg.getTemplate("utf8.ftl");
-            assertEquals(StandardCharsets.UTF_8, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_8, t.getActualSourceEncoding());
             assertEquals(TEXT_WITH_ACCENTS, getTemplateOutput(t));
         }
         {
             Template t = cfg.getTemplate("utf16.ftl");
-            assertEquals(StandardCharsets.UTF_16LE, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_16LE, t.getActualSourceEncoding());
             assertEquals(TEXT_WITH_ACCENTS, getTemplateOutput(t));
         }
         {
             Template t = cfg.getTemplate("default.ftl");
-            assertEquals(StandardCharsets.ISO_8859_1, t.getSourceEncoding());
+            assertEquals(StandardCharsets.ISO_8859_1, t.getActualSourceEncoding());
             assertEquals(TEXT_WITH_ACCENTS, getTemplateOutput(t));
         }
         {
             Template t = cfg.getTemplate("utf8-latin2.ftl");
-            assertEquals(ISO_8859_2, t.getSourceEncoding());
+            assertEquals(ISO_8859_2, t.getActualSourceEncoding());
             assertEquals(TEXT_WITH_ACCENTS, getTemplateOutput(t));
         }
         {
             Template t = cfg.getTemplate("default-latin2.ftl");
-            assertEquals(ISO_8859_2, t.getSourceEncoding());
+            assertEquals(ISO_8859_2, t.getActualSourceEncoding());
             assertEquals(TEXT_WITH_ACCENTS, getTemplateOutput(t));
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/test/java/org/apache/freemarker/core/TemplateConstructorsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/TemplateConstructorsTest.java b/src/test/java/org/apache/freemarker/core/TemplateConstructorsTest.java
index dd73d79..f0fe11f 100644
--- a/src/test/java/org/apache/freemarker/core/TemplateConstructorsTest.java
+++ b/src/test/java/org/apache/freemarker/core/TemplateConstructorsTest.java
@@ -47,49 +47,49 @@ public class TemplateConstructorsTest {
             assertEquals(name, t.getName());
             assertEquals(name, t.getSourceName());
             assertEquals(CONTENT, t.toString());
-            assertNull(t.getSourceEncoding());
+            assertNull(t.getActualSourceEncoding());
         }
         {
             Template t = new Template(name, CONTENT, cfg);
             assertEquals(name, t.getName());
             assertEquals(name, t.getSourceName());
             assertEquals(CONTENT, t.toString());
-            assertNull(t.getSourceEncoding());
+            assertNull(t.getActualSourceEncoding());
         }
         {
             Template t = new Template(name, CONTENT_FORCE_UTF8, cfg);
             assertEquals(name, t.getName());
             assertEquals(name, t.getSourceName());
             // assertEquals(CONTENT_FORCE_UTF8, t.toString()); // FIXME the #ftl header is missing from the dump, why?
-            assertNull(t.getSourceEncoding()); // Because it was created from a String
+            assertNull(t.getActualSourceEncoding()); // Because it was created from a String
         }
         {
             Template t = new Template(name, createReader(), cfg, sourceEncoding);
             assertEquals(name, t.getName());
             assertEquals(name, t.getSourceName());
             assertEquals(CONTENT, t.toString());
-            assertEquals(StandardCharsets.UTF_16LE, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_16LE, t.getActualSourceEncoding());
         }
         {
             Template t = new Template(name, sourceName, createReader(), cfg);
             assertEquals(name, t.getName());
             assertEquals(sourceName, t.getSourceName());
             assertEquals(CONTENT, t.toString());
-            assertNull(t.getSourceEncoding());
+            assertNull(t.getActualSourceEncoding());
         }
         {
             Template t = new Template(name, sourceName, createReader(), cfg, sourceEncoding);
             assertEquals(name, t.getName());
             assertEquals(sourceName, t.getSourceName());
             assertEquals(CONTENT, t.toString());
-            assertEquals(StandardCharsets.UTF_16LE, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_16LE, t.getActualSourceEncoding());
         }
         {
             Template t = Template.createPlainTextTemplate(name, CONTENT, cfg);
             assertEquals(name, t.getName());
             assertEquals(name, t.getSourceName());
             assertEquals(CONTENT, t.toString());
-            assertNull(t.getSourceEncoding());
+            assertNull(t.getActualSourceEncoding());
         }
         {
             try {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/test/java/org/apache/freemarker/core/TemplateGetEncodingTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/TemplateGetEncodingTest.java b/src/test/java/org/apache/freemarker/core/TemplateGetEncodingTest.java
index 6f8517a..d678a67 100644
--- a/src/test/java/org/apache/freemarker/core/TemplateGetEncodingTest.java
+++ b/src/test/java/org/apache/freemarker/core/TemplateGetEncodingTest.java
@@ -53,12 +53,12 @@ public class TemplateGetEncodingTest {
             cfg.setCacheStorage(new StrongCacheStorage());
         }
 
-        assertEquals(ISO_8859_2, cfg.getTemplate("bin").getSourceEncoding());
-        assertEquals(ISO_8859_2, cfg.getTemplate("bin-static").getSourceEncoding());
-        assertNull(cfg.getTemplate("text").getSourceEncoding());
-        assertNull(cfg.getTemplate("text-static").getSourceEncoding());
-        assertNull(new Template(null, "test", cfg).getSourceEncoding());
-        assertNull(Template.createPlainTextTemplate(null, "<#test>", cfg).getSourceEncoding());
+        assertEquals(ISO_8859_2, cfg.getTemplate("bin").getActualSourceEncoding());
+        assertEquals(ISO_8859_2, cfg.getTemplate("bin-static").getActualSourceEncoding());
+        assertNull(cfg.getTemplate("text").getActualSourceEncoding());
+        assertNull(cfg.getTemplate("text-static").getActualSourceEncoding());
+        assertNull(new Template(null, "test", cfg).getActualSourceEncoding());
+        assertNull(Template.createPlainTextTemplate(null, "<#test>", cfg).getActualSourceEncoding());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/test/java/org/apache/freemarker/core/templateresolver/DefaultTemplateResolverTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/templateresolver/DefaultTemplateResolverTest.java b/src/test/java/org/apache/freemarker/core/templateresolver/DefaultTemplateResolverTest.java
index bfbcd5d..c33a7ae 100644
--- a/src/test/java/org/apache/freemarker/core/templateresolver/DefaultTemplateResolverTest.java
+++ b/src/test/java/org/apache/freemarker/core/templateresolver/DefaultTemplateResolverTest.java
@@ -286,7 +286,7 @@ public class DefaultTemplateResolverTest {
             Template t = cfg.getTemplate("utf-8.ftl");
             assertEquals("utf-8.ftl", t.getName());
             assertEquals("utf-8_en.ftl", t.getSourceName());
-            assertEquals(StandardCharsets.UTF_8, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_8, t.getActualSourceEncoding());
             assertEquals("B�ka", t.toString());
             
             assertEquals(
@@ -304,7 +304,7 @@ public class DefaultTemplateResolverTest {
             Template t = cfg.getTemplate("iso-8859-1.ftl");
             assertEquals("iso-8859-1.ftl", t.getName());
             assertEquals("iso-8859-1_en_US.ftl", t.getSourceName());
-            assertEquals(StandardCharsets.ISO_8859_1, t.getSourceEncoding());
+            assertEquals(StandardCharsets.ISO_8859_1, t.getActualSourceEncoding());
             assertEquals("B�ka", t.toString());
             
             assertEquals(
@@ -331,7 +331,7 @@ public class DefaultTemplateResolverTest {
             Template t = cfg.getTemplate("foo.ftl");
             assertEquals("foo.ftl", t.getName());
             assertEquals("foo_en.ftl", t.getSourceName());
-            assertNull(t.getSourceEncoding());
+            assertNull(t.getActualSourceEncoding());
             assertEquals("\u0151", t.toString());
             
             assertEquals(

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/3f77b8f7/src/test/java/org/apache/freemarker/manualtest/TemplateConfigurationExamples.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/manualtest/TemplateConfigurationExamples.java b/src/test/java/org/apache/freemarker/manualtest/TemplateConfigurationExamples.java
index eded767..6e8cc74 100644
--- a/src/test/java/org/apache/freemarker/manualtest/TemplateConfigurationExamples.java
+++ b/src/test/java/org/apache/freemarker/manualtest/TemplateConfigurationExamples.java
@@ -57,7 +57,7 @@ public class TemplateConfigurationExamples extends ExamplesTest {
                     new FileExtensionMatcher("xml"), tcbUTF8XML.build()));
             
             Template t = cfg.getTemplate("t.xml");
-            assertEquals(StandardCharsets.UTF_8, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_8, t.getActualSourceEncoding());
             assertEquals(XMLOutputFormat.INSTANCE, t.getOutputFormat());
         }
 
@@ -66,7 +66,7 @@ public class TemplateConfigurationExamples extends ExamplesTest {
             cfg.setSettings(loadPropertiesFile("TemplateConfigurationExamples1.properties"));
             
             Template t = cfg.getTemplate("t.xml");
-            assertEquals(StandardCharsets.UTF_8, t.getSourceEncoding());
+            assertEquals(StandardCharsets.UTF_8, t.getActualSourceEncoding());
             assertEquals(XMLOutputFormat.INSTANCE, t.getOutputFormat());
         }
     }
@@ -162,12 +162,12 @@ public class TemplateConfigurationExamples extends ExamplesTest {
         );
         
         assertEquals(HTMLOutputFormat.INSTANCE, cfg.getTemplate("t.html").getOutputFormat());
-        assertEquals(StandardCharsets.ISO_8859_1, cfg.getTemplate("t.html").getSourceEncoding());
+        assertEquals(StandardCharsets.ISO_8859_1, cfg.getTemplate("t.html").getActualSourceEncoding());
         assertEquals(HTMLOutputFormat.INSTANCE, cfg.getTemplate("t.htm").getOutputFormat());
         assertEquals(XMLOutputFormat.INSTANCE, cfg.getTemplate("t.xml").getOutputFormat());
         assertEquals(HTMLOutputFormat.INSTANCE, cfg.getTemplate("t.stats.html").getOutputFormat());
         assertOutputForNamed("t.stats.html", "2015-08-24T15:53:26.011Z 2015-08-24 15:53:26.011Z");
-        assertEquals(StandardCharsets.UTF_8, cfg.getTemplate("mail/t.html").getSourceEncoding());
+        assertEquals(StandardCharsets.UTF_8, cfg.getTemplate("mail/t.html").getActualSourceEncoding());
         
         // From properties:
         
@@ -175,12 +175,12 @@ public class TemplateConfigurationExamples extends ExamplesTest {
         cfg.setSettings(loadPropertiesFile("TemplateConfigurationExamples3.properties"));
         
         assertEquals(HTMLOutputFormat.INSTANCE, cfg.getTemplate("t.html").getOutputFormat());
-        assertEquals(StandardCharsets.ISO_8859_1, cfg.getTemplate("t.html").getSourceEncoding());
+        assertEquals(StandardCharsets.ISO_8859_1, cfg.getTemplate("t.html").getActualSourceEncoding());
         assertEquals(HTMLOutputFormat.INSTANCE, cfg.getTemplate("t.htm").getOutputFormat());
         assertEquals(XMLOutputFormat.INSTANCE, cfg.getTemplate("t.xml").getOutputFormat());
         assertEquals(HTMLOutputFormat.INSTANCE, cfg.getTemplate("t.stats.html").getOutputFormat());
         assertOutputForNamed("t.stats.html", "2015-08-24T15:53:26.011Z 2015-08-24 15:53:26.011Z");
-        assertEquals(StandardCharsets.UTF_8, cfg.getTemplate("mail/t.html").getSourceEncoding());
+        assertEquals(StandardCharsets.UTF_8, cfg.getTemplate("mail/t.html").getActualSourceEncoding());
     }
     
 }