Repository: struts
Updated Branches:
  refs/heads/master 853b44611 -> 68cb702dc


WW-4838 Allows define incompatible improvements as an init-param


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/68cb702d
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/68cb702d
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/68cb702d

Branch: refs/heads/master
Commit: 68cb702dc8b13eb0e948a59cc3e274206019c642
Parents: 853b446
Author: Lukasz Lenart <lukaszlen...@apache.org>
Authored: Wed Aug 23 09:23:23 2017 +0200
Committer: Lukasz Lenart <lukaszlen...@apache.org>
Committed: Wed Aug 23 09:23:23 2017 +0200

----------------------------------------------------------------------
 .../views/freemarker/FreemarkerManager.java       | 18 ++++++++++++++++--
 .../views/freemarker/StrutsBeanWrapper.java       |  4 +++-
 2 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/68cb702d/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java 
b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
index b1010c3..22a66e5 100644
--- 
a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
+++ 
b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
@@ -314,7 +314,9 @@ public class FreemarkerManager {
      * @throws TemplateException in case of errors during creating the 
configuration
      */
     protected Configuration createConfiguration(ServletContext servletContext) 
throws TemplateException {
-        Configuration configuration = new 
Configuration(Configuration.VERSION_2_3_0);
+        Version incompatibleImprovements = 
getFreemarkerVersion(servletContext);
+
+        Configuration configuration = new 
Configuration(incompatibleImprovements);
 
         
configuration.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
 
@@ -340,6 +342,17 @@ public class FreemarkerManager {
         return configuration;
     }
 
+    protected Version getFreemarkerVersion(ServletContext servletContext) {
+        Version incompatibleImprovements = Configuration.VERSION_2_3_0;
+
+        String incompatibleImprovementsParam = 
servletContext.getInitParameter("freemarker." + 
Configuration.INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE);
+        if (incompatibleImprovementsParam != null) {
+            incompatibleImprovements = new 
Version(incompatibleImprovementsParam);
+        }
+
+        return incompatibleImprovements;
+    }
+
 
     protected ScopesHashModel buildScopesHashModel(ServletContext 
servletContext, HttpServletRequest request, HttpServletResponse response, 
ObjectWrapper wrapper, ValueStack stack) {
         ScopesHashModel model = new ScopesHashModel(wrapper, servletContext, 
request, stack);
@@ -396,7 +409,8 @@ public class FreemarkerManager {
     }
 
     protected ObjectWrapper createObjectWrapper(ServletContext servletContext) 
{
-        StrutsBeanWrapper wrapper = new StrutsBeanWrapper(altMapWrapper);
+        Version incompatibleImprovements = 
getFreemarkerVersion(servletContext);
+        StrutsBeanWrapper wrapper = new StrutsBeanWrapper(altMapWrapper, 
incompatibleImprovements);
         wrapper.setUseCache(cacheBeanWrapper);
         return wrapper;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/68cb702d/core/src/main/java/org/apache/struts2/views/freemarker/StrutsBeanWrapper.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/freemarker/StrutsBeanWrapper.java 
b/core/src/main/java/org/apache/struts2/views/freemarker/StrutsBeanWrapper.java
index ad1222f..c9e7eed 100644
--- 
a/core/src/main/java/org/apache/struts2/views/freemarker/StrutsBeanWrapper.java
+++ 
b/core/src/main/java/org/apache/struts2/views/freemarker/StrutsBeanWrapper.java
@@ -33,6 +33,7 @@ import freemarker.template.SimpleSequence;
 import freemarker.template.TemplateCollectionModel;
 import freemarker.template.TemplateHashModelEx;
 import freemarker.template.TemplateModel;
+import freemarker.template.Version;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -53,7 +54,8 @@ import freemarker.template.TemplateModel;
 public class StrutsBeanWrapper extends BeansWrapper {
     private boolean altMapWrapper;
 
-    public StrutsBeanWrapper(boolean altMapWrapper) {
+    public StrutsBeanWrapper(boolean altMapWrapper, Version 
incompatibleImprovements) {
+        super(incompatibleImprovements);
         this.altMapWrapper = altMapWrapper;
     }
 

Reply via email to