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

This commit is contained in:
Lukasz Lenart
2017-08-23 09:23:23 +02:00
parent 853b446113
commit 68cb702dc8
2 changed files with 19 additions and 3 deletions
@@ -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;
}
@@ -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;
}