Author: mck
Date: Fri Feb 17 22:20:26 2012
New Revision: 1245787

URL: http://svn.apache.org/viewvc?rev=1245787&view=rev
Log:
 Cache TTL be customised by a system property like
  -Dorg.apache.tiles.extras.renderer.OptionsRenderer.Cache.ttl_ms=0

 The default is 5 minutes.
 Setting it to zero disables all caching.

Modified:
    
tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java

Modified: 
tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java
URL: 
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java?rev=1245787&r1=1245786&r2=1245787&view=diff
==============================================================================
--- 
tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java
 (original)
+++ 
tiles/framework/trunk/tiles-parent/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java
 Fri Feb 17 22:20:26 2012
@@ -130,10 +130,21 @@ public final class OptionsRenderer imple
                 = new ConcurrentHashMap<String,Boolean>();
 
         private volatile static long cacheLastCleaned = 
System.currentTimeMillis();
-        private static final long CACHE_LIFE = 1000 * 60 * 5;
+
+        private static final String CACHE_LIFE_PROPERTY = 
Cache.class.getName() + ".ttl_ms";
+
+        /** Cache TTL be customised by a system property like
+         *  -Dorg.apache.tiles.extras.renderer.OptionsRenderer.Cache.ttl_ms=0
+         *
+         * The default is 5 minutes.
+         * Setting it to zero disables all caching.
+         */
+        private static final long CACHE_LIFE = null != 
Long.getLong(CACHE_LIFE_PROPERTY)
+                ? Long.getLong(CACHE_LIFE_PROPERTY)
+                : 1000 * 60 * 5;
 
         static boolean isTemplateMissing(final String template){
-            if(System.currentTimeMillis() > cacheLastCleaned + CACHE_LIFE){
+            if(0 < CACHE_LIFE && System.currentTimeMillis() > cacheLastCleaned 
+ CACHE_LIFE){
                 cacheLastCleaned = System.currentTimeMillis();
                 TEMPLATE_EXISTS.clear();
                 return false;
@@ -143,7 +154,7 @@ public final class OptionsRenderer imple
         }
 
         static void setIfAbsentTemplateFound(final String template, final 
boolean found){
-            if(!TEMPLATE_EXISTS.containsKey(template)){
+            if(0 < CACHE_LIFE && !TEMPLATE_EXISTS.containsKey(template)){
                 TEMPLATE_EXISTS.putIfAbsent(template, found);
             }
         }


Reply via email to