Repository: incubator-freemarker
Updated Branches:
  refs/heads/3 421f4747b -> 4b12b5b1c


Forward ported from 2.3-gae: When specifying the output_format configuration 
settings with String-String key-value pairs (like with 
Configuration.setSetting(String, String) or in a .properties file), it's now 
possible to specify the standard output formats by name rather than by class 
name  (like output_format=HTML). (Custom formats still has to be referred by 
class name, as FreeMarker can't discover what their names are, since it's not 
aware of the custom classes.)


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

Branch: refs/heads/3
Commit: 4b12b5b1cd0129c5bf58f4126307009bb7d55ef8
Parents: 421f474
Author: ddekany <ddek...@apache.org>
Authored: Tue Mar 20 19:53:48 2018 +0100
Committer: ddekany <ddek...@apache.org>
Committed: Tue Mar 20 19:53:48 2018 +0100

----------------------------------------------------------------------
 .../core/MutableParsingAndProcessingConfigurationTest.java    | 3 +++
 .../main/java/org/apache/freemarker/core/Configuration.java   | 2 +-
 .../core/MutableParsingAndProcessingConfiguration.java        | 7 +++++--
 3 files changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b12b5b1/freemarker-core-test/src/test/java/org/apache/freemarker/core/MutableParsingAndProcessingConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/MutableParsingAndProcessingConfigurationTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/MutableParsingAndProcessingConfigurationTest.java
index cbdcbe4..51a331f 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/MutableParsingAndProcessingConfigurationTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/MutableParsingAndProcessingConfigurationTest.java
@@ -85,6 +85,9 @@ public class MutableParsingAndProcessingConfigurationTest {
         cfgB.setSetting(Configuration.ExtendableBuilder.OUTPUT_FORMAT_KEY, 
HTMLOutputFormat.class.getSimpleName());
         assertEquals(HTMLOutputFormat.INSTANCE, cfgB.getOutputFormat());
 
+        cfgB.setSetting(Configuration.ExtendableBuilder.OUTPUT_FORMAT_KEY, 
XMLOutputFormat.INSTANCE.getName());
+        assertEquals(XMLOutputFormat.INSTANCE, cfgB.getOutputFormat());
+        
         cfgB.unsetOutputFormat();
         assertEquals(UndefinedOutputFormat.INSTANCE, cfgB.getOutputFormat());
         assertFalse(cfgB.isOutputFormatSet());

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b12b5b1/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java 
b/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java
index fb113d9..5b23091 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java
@@ -132,7 +132,7 @@ public final class Configuration implements 
TopLevelConfiguration, CustomStateSc
     
     private static final String VERSION_PROPERTIES_PATH = 
"/org/apache/freemarker/core/version.properties";
 
-    private static final Map<String, OutputFormat> STANDARD_OUTPUT_FORMATS;
+    static final Map<String, OutputFormat> STANDARD_OUTPUT_FORMATS;
     static {
         STANDARD_OUTPUT_FORMATS = new HashMap<>();
         STANDARD_OUTPUT_FORMATS.put(UndefinedOutputFormat.INSTANCE.getName(), 
UndefinedOutputFormat.INSTANCE);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b12b5b1/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
 
b/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
index a486547..ef174ab 100644
--- 
a/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
+++ 
b/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
@@ -91,8 +91,11 @@ public abstract class 
MutableParsingAndProcessingConfiguration<
                 if (value.equalsIgnoreCase(DEFAULT_VALUE)) {
                     unsetOutputFormat();
                 } else {
-                    setOutputFormat((OutputFormat) 
_ObjectBuilderSettingEvaluator.eval(
-                            value, OutputFormat.class, true, 
_SettingEvaluationEnvironment.getCurrent()));
+                    OutputFormat stdOF = 
Configuration.STANDARD_OUTPUT_FORMATS.get(value);
+                    setOutputFormat(
+                            stdOF != null ? stdOF
+                            : (OutputFormat) 
_ObjectBuilderSettingEvaluator.eval(
+                                    value, OutputFormat.class, true, 
_SettingEvaluationEnvironment.getCurrent()));
                 }
             } else if (WHITESPACE_STRIPPING_KEY.equals(name)) {
                 setWhitespaceStripping(_StringUtils.getYesNo(value));

Reply via email to