[infinispan-commits] Infinispan SVN: r1735 - in trunk/core/src: main/java/org/infinispan/factories and 1 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Mon May 3 15:15:12 EDT 2010


Author: vblagojevic at jboss.com
Date: 2010-05-03 15:15:11 -0400 (Mon, 03 May 2010)
New Revision: 1735

Added:
   trunk/core/src/test/java/org/infinispan/eviction/LIRSEvictionFunctionalTest.java
   trunk/core/src/test/java/org/infinispan/eviction/UNORDEREDEvictionFunctionalTest.java
Modified:
   trunk/core/src/main/java/org/infinispan/container/DefaultDataContainer.java
   trunk/core/src/main/java/org/infinispan/factories/DataContainerFactory.java
   trunk/core/src/test/java/org/infinispan/eviction/BaseEvictionFunctionalTest.java
Log:
[ISPN-414] - UNORDERED eviction does not work
treat UNORDERED as LRU (for now)
add tests for LIRS and UNORDERED

Modified: trunk/core/src/main/java/org/infinispan/container/DefaultDataContainer.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/container/DefaultDataContainer.java	2010-05-03 09:22:06 UTC (rev 1734)
+++ trunk/core/src/main/java/org/infinispan/container/DefaultDataContainer.java	2010-05-03 19:15:11 UTC (rev 1735)
@@ -79,6 +79,7 @@
       Eviction eviction;
       switch (strategy) {
          case FIFO:
+         case UNORDERED:   
          case LRU:
             eviction = Eviction.LRU;            
             break;
@@ -248,9 +249,15 @@
       }   
       
       public Set<InternalCacheEntry> getEvicted() {
+         Set<InternalCacheEntry> result = Collections.emptySet();
          synchronized (evicted) {
-            return new HashSet<InternalCacheEntry>(evicted);
-         } 
+            try {
+               result = new HashSet<InternalCacheEntry>(evicted);
+            } finally {
+               evicted.clear();
+            }
+         }
+         return result;
       }
    }
    

Modified: trunk/core/src/main/java/org/infinispan/factories/DataContainerFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/factories/DataContainerFactory.java	2010-05-03 09:22:06 UTC (rev 1734)
+++ trunk/core/src/main/java/org/infinispan/factories/DataContainerFactory.java	2010-05-03 19:15:11 UTC (rev 1735)
@@ -45,9 +45,9 @@
       int level = configuration.getConcurrencyLevel();
      
       switch (st) {
-         case NONE:
-         case UNORDERED:
+         case NONE:         
             return (T) DefaultDataContainer.unBoundedDataContainer(level);
+         case UNORDERED:   
          case LRU:
          case FIFO:
          case LIRS:

Modified: trunk/core/src/test/java/org/infinispan/eviction/BaseEvictionFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/eviction/BaseEvictionFunctionalTest.java	2010-05-03 09:22:06 UTC (rev 1734)
+++ trunk/core/src/test/java/org/infinispan/eviction/BaseEvictionFunctionalTest.java	2010-05-03 19:15:11 UTC (rev 1735)
@@ -1,15 +1,14 @@
 package org.infinispan.eviction;
 
-import org.infinispan.Cache;
+import java.util.Random;
+import java.util.concurrent.CountDownLatch;
+
 import org.infinispan.config.Configuration;
 import org.infinispan.manager.CacheManager;
 import org.infinispan.test.SingleCacheManagerTest;
 import org.infinispan.test.fwk.TestCacheManagerFactory;
 import org.testng.annotations.Test;
 
-import java.util.Random;
-import java.util.concurrent.CountDownLatch;
-
 @Test(groups = "functional", testName = "eviction.BaseEvictionFunctionalTest")
 public abstract class BaseEvictionFunctionalTest extends SingleCacheManagerTest {
    
@@ -25,8 +24,8 @@
       Configuration cfg = new Configuration();
       cfg.setEvictionStrategy(getEvictionStrategy());
       cfg.setEvictionWakeUpInterval(100);
-      cfg.setEvictionMaxEntries(128); // 1 max entries
-      cfg.setUseLockStriping(false); // to minimise chances of deadlock in the unit test
+      cfg.setEvictionMaxEntries(128); // 128 max entries
+      cfg.setUseLockStriping(false); // to minimize chances of deadlock in the unit test
       CacheManager cm = TestCacheManagerFactory.createCacheManager(cfg);
       cache = cm.getCache();
       return cm;

Added: trunk/core/src/test/java/org/infinispan/eviction/LIRSEvictionFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/eviction/LIRSEvictionFunctionalTest.java	                        (rev 0)
+++ trunk/core/src/test/java/org/infinispan/eviction/LIRSEvictionFunctionalTest.java	2010-05-03 19:15:11 UTC (rev 1735)
@@ -0,0 +1,11 @@
+package org.infinispan.eviction;
+
+import org.testng.annotations.Test;
+
+ at Test(groups = "functional", testName = "eviction.LIRSEvictionFunctionalTest")
+public class LIRSEvictionFunctionalTest extends BaseEvictionFunctionalTest {
+
+   protected EvictionStrategy getEvictionStrategy() {
+      return EvictionStrategy.LIRS;
+   }
+}
\ No newline at end of file

Added: trunk/core/src/test/java/org/infinispan/eviction/UNORDEREDEvictionFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/eviction/UNORDEREDEvictionFunctionalTest.java	                        (rev 0)
+++ trunk/core/src/test/java/org/infinispan/eviction/UNORDEREDEvictionFunctionalTest.java	2010-05-03 19:15:11 UTC (rev 1735)
@@ -0,0 +1,11 @@
+package org.infinispan.eviction;
+
+import org.testng.annotations.Test;
+
+ at Test(groups = "functional", testName = "eviction.UNORDEREDEvictionFunctionalTest")
+public class UNORDEREDEvictionFunctionalTest extends BaseEvictionFunctionalTest {
+
+   protected EvictionStrategy getEvictionStrategy() {
+      return EvictionStrategy.UNORDERED;
+   }
+}
\ No newline at end of file



More information about the infinispan-commits mailing list