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
 


Reply via email to