package uk.co.cosmic_solutions.mdtest2.infinispan.test; import org.infinispan.Cache; import org.infinispan.config.Configuration; import org.infinispan.eviction.EvictionStrategy; import org.infinispan.eviction.EvictionThreadPolicy; import org.infinispan.loaders.jdbm.JdbmCacheStoreConfig; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.util.concurrent.BoundedConcurrentHashMap; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.io.File; /** * Created by IntelliJ IDEA. * User: nardonep * Date: 03-Aug-2010 * Time: 07:42:07 */ public class InfinispanTest4 { private static DefaultCacheManager defaultCacheManager; @BeforeClass public static void setup(){ Configuration ccl=new Configuration(); ccl.setCacheMode(Configuration.CacheMode.LOCAL); JdbmCacheStoreConfig cacheStoreConfig; defaultCacheManager=new DefaultCacheManager(ccl); Configuration cclPassivationPiggybackLRU=new Configuration(); cacheStoreConfig = new JdbmCacheStoreConfig(); File dirPiggy = new File("C:\\TEMP\\InfinispanTest4\\PASSIVATIONPIGGYLRU\\"); dirPiggy.mkdirs(); for(File f : dirPiggy.listFiles()){ f.delete(); } cacheStoreConfig.setLocation(dirPiggy.getAbsolutePath()); cacheStoreConfig.setPurgeOnStartup(Boolean.TRUE); cclPassivationPiggybackLRU.getCacheLoaderManagerConfig().addCacheLoaderConfig(cacheStoreConfig); cclPassivationPiggybackLRU.getCacheLoaderManagerConfig().setPassivation(Boolean.TRUE); cclPassivationPiggybackLRU.setEvictionStrategy(EvictionStrategy.LRU); cclPassivationPiggybackLRU.setEvictionThreadPolicy(EvictionThreadPolicy.PIGGYBACK); cclPassivationPiggybackLRU.setEvictionMaxEntries(1); defaultCacheManager.defineConfiguration("PASSIVATIONPIGGYLRU",cclPassivationPiggybackLRU); Configuration cclPassivationPiggybackLIRS=new Configuration(); cacheStoreConfig = new JdbmCacheStoreConfig(); File dirPassivationDefault = new File("C:\\TEMP\\InfinispanTest4\\PASSIVATIONPIGGYLIRS\\"); dirPassivationDefault.mkdirs(); for(File f : dirPassivationDefault.listFiles()){ f.delete(); } cacheStoreConfig.setLocation(dirPassivationDefault.getAbsolutePath()); cacheStoreConfig.setPurgeOnStartup(Boolean.TRUE); cclPassivationPiggybackLIRS.getCacheLoaderManagerConfig().addCacheLoaderConfig(cacheStoreConfig); cclPassivationPiggybackLIRS.getCacheLoaderManagerConfig().setPassivation(Boolean.TRUE); cclPassivationPiggybackLIRS.setEvictionStrategy(EvictionStrategy.LIRS); cclPassivationPiggybackLIRS.setEvictionThreadPolicy(EvictionThreadPolicy.PIGGYBACK); cclPassivationPiggybackLIRS.setEvictionMaxEntries(1); defaultCacheManager.defineConfiguration("PASSIVATIONPIGGYLIRS",cclPassivationPiggybackLIRS); Configuration cclNoPassivationPiggybackNONE=new Configuration(); cacheStoreConfig = new JdbmCacheStoreConfig(); File dirNoPassivationDefault = new File("C:\\TEMP\\InfinispanTest4\\NOPASSIVATIONPIGGYNONE\\"); dirNoPassivationDefault.mkdirs(); for(File f : dirNoPassivationDefault.listFiles()){ f.delete(); } cacheStoreConfig.setLocation(dirPassivationDefault.getAbsolutePath()); cacheStoreConfig.setPurgeOnStartup(Boolean.TRUE); cclNoPassivationPiggybackNONE.getCacheLoaderManagerConfig().addCacheLoaderConfig(cacheStoreConfig); cclNoPassivationPiggybackNONE.getCacheLoaderManagerConfig().setPassivation(Boolean.TRUE); cclNoPassivationPiggybackNONE.setEvictionStrategy(EvictionStrategy.NONE); cclNoPassivationPiggybackNONE.setEvictionThreadPolicy(EvictionThreadPolicy.PIGGYBACK); cclNoPassivationPiggybackNONE.setEvictionMaxEntries(1); defaultCacheManager.defineConfiguration("PASSIVATIONPIGGYNONE",cclNoPassivationPiggybackNONE); } @Test public void testPassivationPiggyLRU(){ runTest("PASSIVATIONPIGGYLRU",false); } @Test public void testPassivationPiggyLIRS(){ runTest("PASSIVATIONPIGGYLIRS",false); } @Test public void testNoPassivationPiggyNONE(){ runTest("NOPASSIVATIONPIGGYNONE",false); } private void runTest(String n,boolean doget) { Cache testCache=defaultCacheManager.getCache(n); testCache.clear(); try { testCache.put("X","4567"); testCache.put("Y","4567"); testCache.put("Z","4567"); Assert.assertNotNull(testCache.get("X")); Assert.assertNotNull(testCache.get("Y")); Assert.assertNotNull(testCache.get("Z")); } catch (Exception e) { throw new RuntimeException(e); } } }