Author: musachy Date: Wed Jul 11 07:44:54 2007 New Revision: 555289 URL: http://svn.apache.org/viewvc?view=rev&rev=555289 Log: WW-2012 Freemarker caching of BeanWrapper models
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java?view=diff&rev=555289&r1=555288&r2=555289 ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java Wed Jul 11 07:44:54 2007 @@ -78,6 +78,9 @@ /** Cache Freemarker templates */ public static final String STRUTS_FREEMARKER_CACHE_TEMPLATES = "struts.freemarker.templatesCache"; + + /** Cache model instances at BeanWrapper level */ + public static final String STRUTS_FREEMARKER_BEANWRAPPER_CACHE = "struts.freemarker.beanwrapperCache"; /** org.apache.struts2.views.velocity.VelocityManager implementation class */ public static final String STRUTS_VELOCITY_MANAGER_CLASSNAME = "struts.velocity.manager.classname"; Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java?view=diff&rev=555289&r1=555288&r2=555289 ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java Wed Jul 11 07:44:54 2007 @@ -124,6 +124,7 @@ private String encoding; private boolean altMapWrapper; + private boolean cacheBeanWrapper; private Map<String,TagLibrary> tagLibraries; @Inject(StrutsConstants.STRUTS_I18N_ENCODING) @@ -136,6 +137,11 @@ altMapWrapper = "true".equals(val); } + @Inject(StrutsConstants.STRUTS_FREEMARKER_BEANWRAPPER_CACHE) + public void setCacheBeanWrapper(String val) { + cacheBeanWrapper = "true".equals(val); + } + @Inject public void setContainer(Container container) { Map<String,TagLibrary> map = new HashMap<String,TagLibrary>(); @@ -236,7 +242,9 @@ } protected BeansWrapper getObjectWrapper() { - return new StrutsBeanWrapper(altMapWrapper); + StrutsBeanWrapper wrapper = new StrutsBeanWrapper(altMapWrapper); + wrapper.setUseCache(cacheBeanWrapper); + return wrapper; } /** Modified: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties?view=diff&rev=555289&r1=555288&r2=555289 ============================================================================== --- struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties (original) +++ struts/struts2/trunk/core/src/main/resources/org/apache/struts2/default.properties Wed Jul 11 07:44:54 2007 @@ -149,6 +149,9 @@ ### Has the same effect as copying the templates under WEB_APP/templates struts.freemarker.templatesCache=false +### Enables caching of models on the BeanWrapper +struts.freemarker.beanwrapperCache=false + ### See the StrutsBeanWrapper javadocs for more information struts.freemarker.wrapper.altMap=true