package org.infinispan.persistence; import javax.transaction.TransactionManager; import org.infinispan.Cache; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.manager.CacheContainer; import org.infinispan.persistence.dummy.DummyInMemoryStoreConfigurationBuilder; import org.infinispan.persistence.spi.AdvancedLoadWriteStore; import org.infinispan.persistence.spi.PersistenceException; import org.infinispan.test.AbstractInfinispanTest; import org.infinispan.test.TestingUtil; import org.infinispan.test.fwk.TestCacheManagerFactory; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @Test(testName = "persistence.PassivatePersistentTest", groups = "functional") public class PassivatePersistentTest extends AbstractInfinispanTest { Cache<String, String> cache; AdvancedLoadWriteStore store; TransactionManager tm; ConfigurationBuilder cfg; CacheContainer cm; @BeforeMethod public void setUp() { cfg = new ConfigurationBuilder(); cfg .persistence() .passivation(true) .addStore(DummyInMemoryStoreConfigurationBuilder.class) .storeName(this.getClass().getName()) .purgeOnStartup(false); cm = TestCacheManagerFactory.createCacheManager(cfg); cache = cm.getCache(); store = (AdvancedLoadWriteStore) TestingUtil.getCacheLoader(cache); tm = TestingUtil.getTransactionManager(cache); } @AfterMethod public void tearDown() throws PersistenceException { store.clear(); TestingUtil.killCacheManagers(cm); } public void testPersistence() throws PersistenceException { cache.put("k", "v"); assert "v".equals(cache.get("k")); cache.evict("k"); assert store.contains("k"); assert "v".equals(cache.get("k")); assert !store.contains("k"); cache.stop(); cache.start(); // The old store's marshaller is not working any more store = (AdvancedLoadWriteStore) TestingUtil.getCacheLoader(cache); assert store.contains("k"); assert "v".equals(cache.get("k")); assert !store.contains("k"); } }