package org.jooby.ehcache; import static org.junit.Assert.assertEquals; import net.sf.ehcache.CacheManager; import net.sf.ehcache.config.CacheConfiguration; import net.sf.ehcache.config.PersistenceConfiguration.Strategy; import net.sf.ehcache.store.MemoryStoreEvictionPolicy; import org.jooby.test.ServerFeature; import org.junit.Test; import com.typesafe.config.ConfigFactory; import com.typesafe.config.ConfigValueFactory; public class EhcacheFeature extends ServerFeature { { use(ConfigFactory .empty() .withValue("ehcache.cache.default.maxEntriesLocalHeap", ConfigValueFactory.fromAnyRef(10000)) .withValue("ehcache.cache.default.eternal", ConfigValueFactory.fromAnyRef(false)) .withValue("ehcache.cache.default.timeToIdle", ConfigValueFactory.fromAnyRef("2m")) .withValue("ehcache.cache.default.timeToLive", ConfigValueFactory.fromAnyRef("2m")) .withValue("ehcache.cache.default.maxEntriesLocalDisk", ConfigValueFactory.fromAnyRef(10000000)) .withValue("ehcache.cache.default.diskExpiryThreadInterval", ConfigValueFactory.fromAnyRef("2m")) .withValue("ehcache.cache.default.memoryStoreEvictionPolicy", ConfigValueFactory.fromAnyRef("lru")) .withValue("ehcache.cache.default.persistence.strategy", ConfigValueFactory.fromAnyRef("LOCALTEMPSWAP"))); use(new Eh().doWith(conf -> { CacheConfiguration cache = conf.getDefaultCacheConfiguration(); assertEquals(10000, cache.getMaxEntriesLocalHeap()); assertEquals(false, cache.isEternal()); assertEquals(120, cache.getTimeToIdleSeconds()); assertEquals(120, cache.getTimeToLiveSeconds()); assertEquals(10000000, cache.getMaxEntriesLocalDisk()); assertEquals(120, cache.getDiskExpiryThreadIntervalSeconds()); assertEquals(MemoryStoreEvictionPolicy.LRU, cache.getMemoryStoreEvictionPolicy()); assertEquals(Strategy.LOCALTEMPSWAP, cache.getPersistenceConfiguration().getStrategy()); })); get("/eh/cm", req -> { return req.require(CacheManager.class).getCacheNames().length; }); } @Test public void ehcache() throws Exception { request().get("/eh/cm") .expect("0"); } }