svn commit: r948449 - in /ofbiz/trunk: ./ framework/base/lib/ framework/base/src/org/ofbiz/base/util/cache/ framework/base/src/org/ofbiz/base/util/cache/test/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r948449 - in /ofbiz/trunk: ./ framework/base/lib/ framework/base/src/org/ofbiz/base/util/cache/ framework/base/src/org/ofbiz/base/util/cache/test/

doogie-3
Author: doogie
Date: Wed May 26 14:23:11 2010
New Revision: 948449

URL: http://svn.apache.org/viewvc?rev=948449&view=rev
Log:
Re-apply 948328, which brings us back to using the more efficient clhm,
but now UtilCache is not strictly least-recently-used.  Instead, it's
more of a less-recently-used.  This difference can be seen when reducing
the max-in-memory setting(but not reducing completely to 0).

Added:
    ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar
Removed:
    ofbiz/trunk/framework/base/lib/clhm-20100316.jar
Modified:
    ofbiz/trunk/.classpath
    ofbiz/trunk/LICENSE
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java

Modified: ofbiz/trunk/.classpath
URL: http://svn.apache.org/viewvc/ofbiz/trunk/.classpath?rev=948449&r1=948448&r2=948449&view=diff
==============================================================================
--- ofbiz/trunk/.classpath (original)
+++ ofbiz/trunk/.classpath Wed May 26 14:23:11 2010
@@ -15,7 +15,7 @@
     <classpathentry kind="lib" path="framework/base/lib/avalon-util-exception-1.0.0.jar"/>
     <classpathentry kind="lib" path="framework/base/lib/barcode4j-fop-ext-complete-2.0.jar"/>
     <classpathentry kind="lib" path="framework/base/lib/batik-all-1.7.jar"/>
-    <classpathentry kind="lib" path="framework/base/lib/clhm-20100316.jar"/>
+    <classpathentry kind="lib" path="framework/base/lib/clhm-release-1.0-lru.jar"/>
     <classpathentry kind="lib" path="framework/base/lib/hamcrest-all-1.2.jar"/>
     <classpathentry kind="lib" path="framework/base/lib/fop-0.95.jar"/>
     <classpathentry kind="lib" path="framework/base/lib/freemarker-2.3.15.jar"/>

Modified: ofbiz/trunk/LICENSE
URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=948449&r1=948448&r2=948449&view=diff
==============================================================================
--- ofbiz/trunk/LICENSE (original)
+++ ofbiz/trunk/LICENSE Wed May 26 14:23:11 2010
@@ -21,7 +21,7 @@ ofbiz/trunk/framework/base/lib/avalon-fr
 ofbiz/trunk/framework/base/lib/avalon-util-exception-1.0.0.jar
 ofbiz/trunk/framework/base/lib/batik-all-1.7.jar
 ofbiz/trunk/framework/base/lib/barcode4j-fop-ext-complete-2.0.jar
-ofbiz/trunk/framework/base/lib/clhm-20100316.jar
+ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar
 ofbiz/trunk/framework/base/lib/jakarta-regexp-1.5.jar
 ofbiz/trunk/framework/base/lib/jpim-0.1.jar
 ofbiz/trunk/framework/base/lib/juel-2.2.1.jar

Added: ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar?rev=948449&view=auto
==============================================================================
Files ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar (added) and ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar Wed May 26 14:23:11 2010 differ

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java?rev=948449&r1=948448&r2=948449&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java Wed May 26 14:23:11 2010
@@ -38,7 +38,9 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 
-import com.reardencommerce.kernel.collections.shared.evictable.ConcurrentLinkedHashMap;
+import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap;
+import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.Builder;
+import com.googlecode.concurrentlinkedhashmap.Weighers;
 
 import javolution.util.FastList;
 import javolution.util.FastMap;
@@ -143,7 +145,9 @@ public class UtilCache<K, V> implements
         if (maxMemSize == 0) {
             memoryTable = new ConcurrentHashMap<Object, CacheLine<V>>();
         } else {
-            memoryTable = ConcurrentLinkedHashMap.create(ConcurrentLinkedHashMap.EvictionPolicy.LRU, maxMemSize);
+            memoryTable = new Builder<Object, CacheLine<V>>()
+            .maximumWeightedCapacity(maxMemSize)
+            .build();
         }
         if (this.useFileSystemStore) {
             // create the manager the first time it is needed
@@ -723,7 +727,9 @@ public class UtilCache<K, V> implements
                 ((ConcurrentLinkedHashMap) this.memoryTable).setCapacity(newInMemory);
                 return;
             } else {
-                this.memoryTable = ConcurrentLinkedHashMap.create(ConcurrentLinkedHashMap.EvictionPolicy.LRU, newInMemory);
+                this.memoryTable =new Builder<Object, CacheLine<V>>()
+                    .maximumWeightedCapacity(newInMemory)
+                    .build();
             }
         } else {
             this.memoryTable = new ConcurrentHashMap<Object, CacheLine<V>>();

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java?rev=948449&r1=948448&r2=948449&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java Wed May 26 14:23:11 2010
@@ -346,9 +346,8 @@ public class UtilCacheTests extends Gene
             assertKey(s, cache, s, new String(s), new String(":" + s), i + 1, map);
         }
         cache.setMaxInMemory(2);
-        for (int i = 0; i < size - 2; i++) {
-            map.remove(Integer.toString(i));
-        }
+        assertEquals("cache.size", 2, cache.size());
+        map.keySet().retainAll(cache.getCacheLineKeys());
         assertEquals("map-keys", map.keySet(), cache.getCacheLineKeys());
         assertEquals("map-values", map.values(), cache.values());
         cache.setMaxInMemory(0);