Author: ssievers
Date: Mon Mar 11 23:00:24 2013
New Revision: 1455358

URL: http://svn.apache.org/r1455358
Log:
SHINDIG-1912 | Allow EhCache DiskStore location to be easily configurable

Modified:
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProvider.java
    
shindig/trunk/java/common/src/main/resources/org/apache/shindig/common/cache/ehcache/ehcacheConfig.xml

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProvider.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProvider.java?rev=1455358&r1=1455357&r2=1455358&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProvider.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProvider.java
 Mon Mar 11 23:00:24 2013
@@ -19,6 +19,8 @@
 package org.apache.shindig.common.cache.ehcache;
 
 import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+
 import org.apache.shindig.common.cache.Cache;
 import org.apache.shindig.common.cache.CacheProvider;
 import org.apache.shindig.common.servlet.GuiceServletContextListener;
@@ -79,7 +81,14 @@ public class EhCacheCacheProvider implem
     // Remove res:// and file:// prefixes.  EhCache can't understand them.
     String normalizedFilterPath = 
filterPath.replaceFirst(ResourceLoader.RESOURCE_PREFIX, "");
     normalizedFilterPath = 
normalizedFilterPath.replaceFirst(ResourceLoader.FILE_PREFIX, "");
-    System.getProperties().put("net.sf.ehcache.sizeof.filter", 
normalizedFilterPath);
+    System.setProperty("net.sf.ehcache.sizeof.filter", normalizedFilterPath);
+
+    // If ehcache.disk.store.dir isn't already set, set it to java.io.tmpdir.
+    // See 
http://ehcache.org/documentation/user-guide/storage-options#diskstore-configuration-element
+    String diskStoreProperty = System.getProperty("ehcache.disk.store.dir");
+    if (Strings.isNullOrEmpty(diskStoreProperty)) {
+      System.setProperty("ehcache.disk.store.dir", 
System.getProperty("java.io.tmpdir"));
+    }
 
     cacheManager = CacheManager.create(getConfiguration(configPath));
     create(jmxEnabled, withCacheStats);

Modified: 
shindig/trunk/java/common/src/main/resources/org/apache/shindig/common/cache/ehcache/ehcacheConfig.xml
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/resources/org/apache/shindig/common/cache/ehcache/ehcacheConfig.xml?rev=1455358&r1=1455357&r2=1455358&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/resources/org/apache/shindig/common/cache/ehcache/ehcacheConfig.xml
 (original)
+++ 
shindig/trunk/java/common/src/main/resources/org/apache/shindig/common/cache/ehcache/ehcacheConfig.xml
 Mon Mar 11 23:00:24 2013
@@ -42,7 +42,7 @@ under the License.
     The directory where any caches configured as diskPersistent or 
overflowToDisk
     will end up.
   -->
-  <diskStore path="java.io.tmpdir"/>
+  <diskStore path="ehcache.disk.store.dir"/>
 
   <!-- Default sizeOfPolicy for computing the size of cache elements in memory 
-->
   <sizeOfPolicy maxDepth="1000" maxDepthExceededBehavior="abort"/>


Reply via email to