package org.infinispan.test.integration.as.cdi; import javax.enterprise.context.ApplicationScoped; import javax.enterprise.inject.Disposes; import javax.enterprise.inject.Produces; import org.infinispan.cdi.embedded.ConfigureCache; import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.eviction.EvictionStrategy; import org.infinispan.manager.DefaultCacheManager; /** * This is the configuration class. * * @author Kevin Pollet <pollet.kevin@gmail.com> (C) 2011 * @author Galder ZamarreƱo */ public class Config { /** * <p>This producer defines the greeting cache configuration.</p> * * <p>This cache will have: * <ul> * <li>a maximum of 4 entries</li> * <li>use the strategy LRU for eviction</li> * </ul> * </p> * * @return the greeting cache configuration. */ @GreetingCache @ConfigureCache("greeting-cache") @Produces public Configuration greetingCache() { return new ConfigurationBuilder() .eviction().strategy(EvictionStrategy.LRU).maxEntries(128) .build(); } /** * <p>This producer overrides the default cache configuration used by the default cache manager.</p> * * <p>The default cache configuration defines that a cache entry will have a lifespan of 60000 ms.</p> */ @Produces public Configuration defaultCacheConfiguration() { return new ConfigurationBuilder() .expiration().lifespan(60000l) .build(); } @Produces @ApplicationScoped public org.infinispan.manager.EmbeddedCacheManager defaultEmbeddedCacheManager() { return new DefaultCacheManager(); } public void killCacheManager(@Disposes org.infinispan.manager.EmbeddedCacheManager cacheManager) { cacheManager.stop(); } }