You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/06/27 17:15:12 UTC

svn commit: r1354574 - /archiva/redback/redback-components/trunk/spring-cache/spring-cache-providers/spring-cache-ehcache/src/main/java/org/apache/archiva/redback/components/cache/ehcache/EhcacheCache.java

Author: olamy
Date: Wed Jun 27 15:15:10 2012
New Revision: 1354574

URL: http://svn.apache.org/viewvc?rev=1354574&view=rev
Log:
more configuration options for ehcache implementation

Modified:
    archiva/redback/redback-components/trunk/spring-cache/spring-cache-providers/spring-cache-ehcache/src/main/java/org/apache/archiva/redback/components/cache/ehcache/EhcacheCache.java

Modified: archiva/redback/redback-components/trunk/spring-cache/spring-cache-providers/spring-cache-ehcache/src/main/java/org/apache/archiva/redback/components/cache/ehcache/EhcacheCache.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-components/trunk/spring-cache/spring-cache-providers/spring-cache-ehcache/src/main/java/org/apache/archiva/redback/components/cache/ehcache/EhcacheCache.java?rev=1354574&r1=1354573&r2=1354574&view=diff
==============================================================================
--- archiva/redback/redback-components/trunk/spring-cache/spring-cache-providers/spring-cache-ehcache/src/main/java/org/apache/archiva/redback/components/cache/ehcache/EhcacheCache.java (original)
+++ archiva/redback/redback-components/trunk/spring-cache/spring-cache-providers/spring-cache-ehcache/src/main/java/org/apache/archiva/redback/components/cache/ehcache/EhcacheCache.java Wed Jun 27 15:15:10 2012
@@ -23,6 +23,7 @@ import net.sf.ehcache.Cache;
 import net.sf.ehcache.CacheManager;
 import net.sf.ehcache.Element;
 import net.sf.ehcache.Status;
+import net.sf.ehcache.config.CacheConfiguration;
 import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
 import org.apache.archiva.redback.components.cache.CacheStatistics;
 import org.slf4j.Logger;
@@ -135,6 +136,21 @@ public class EhcacheCache
     private int timeToLiveSeconds = 300;
 
     /**
+     * @since 2.0
+     */
+    private boolean overflowToOffHeap = false;
+
+    /**
+     * @since 2.0
+     */
+    private long maxBytesLocalHeap;
+
+    /**
+     * @since 2.0
+     */
+    private long maxBytesLocalOffHeap;
+
+    /**
      *
      */
     private boolean failOnDuplicateCache = false;
@@ -175,10 +191,23 @@ public class EhcacheCache
 
         if ( !cacheExists )
         {
-            ehcache =
-                new Cache( getName(), getMaxElementsInMemory(), getMemoryStoreEvictionPolicy(), isOverflowToDisk(),
-                           getDiskStorePath(), isEternal(), getTimeToLiveSeconds(), getTimeToIdleSeconds(),
-                           isDiskPersistent(), getDiskExpiryThreadIntervalSeconds(), null );
+            CacheConfiguration cacheConfiguration = new CacheConfiguration().name( getName() ).maxEntriesLocalHeap(
+                getMaxElementsInMemory() ).memoryStoreEvictionPolicy( getMemoryStoreEvictionPolicy() ).overflowToDisk(
+                isOverflowToDisk() ).diskStorePath( getDiskStorePath() ).eternal( isEternal() ).timeToLiveSeconds(
+                getTimeToLiveSeconds() ).timeToIdleSeconds( getTimeToIdleSeconds() ).diskPersistent(
+                isDiskPersistent() ).diskExpiryThreadIntervalSeconds(
+                getDiskExpiryThreadIntervalSeconds() ).overflowToOffHeap( isOverflowToOffHeap() );
+
+            if ( getMaxBytesLocalHeap() > 0 )
+            {
+                cacheConfiguration.setMaxBytesLocalHeap( getMaxBytesLocalHeap() );
+            }
+            if ( getMaxBytesLocalOffHeap() > 0 )
+            {
+                cacheConfiguration.setMaxBytesLocalOffHeap( getMaxBytesLocalOffHeap() );
+            }
+
+            ehcache = new Cache( cacheConfiguration );
 
             cacheManager.addCache( ehcache );
             ehcache.setStatisticsEnabled( statisticsEnabled );
@@ -384,4 +413,34 @@ public class EhcacheCache
     {
         this.failOnDuplicateCache = failOnDuplicateCache;
     }
+
+    public boolean isOverflowToOffHeap()
+    {
+        return overflowToOffHeap;
+    }
+
+    public void setOverflowToOffHeap( boolean overflowToOffHeap )
+    {
+        this.overflowToOffHeap = overflowToOffHeap;
+    }
+
+    public long getMaxBytesLocalHeap()
+    {
+        return maxBytesLocalHeap;
+    }
+
+    public void setMaxBytesLocalHeap( long maxBytesLocalHeap )
+    {
+        this.maxBytesLocalHeap = maxBytesLocalHeap;
+    }
+
+    public long getMaxBytesLocalOffHeap()
+    {
+        return maxBytesLocalOffHeap;
+    }
+
+    public void setMaxBytesLocalOffHeap( long maxBytesLocalOffHeap )
+    {
+        this.maxBytesLocalOffHeap = maxBytesLocalOffHeap;
+    }
 }