package org.infinispan.cdi.embedded.test.cachemanager.programmatic; import javax.enterprise.context.ApplicationScoped; import javax.enterprise.inject.Disposes; import javax.enterprise.inject.Produces; import javax.inject.Named; import org.infinispan.cdi.embedded.ConfigureCache; import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.test.TestingUtil; import org.infinispan.test.fwk.TestCacheManagerFactory; /** * Creates a cache, based on some external mechanism. * * @author Pete Muir * @author Kevin Pollet <kevin.pollet@serli.com> (C) 2011 SERLI */ public class Config { /** * <p>Associates the "large" cache with qualifier "large"</p> * * Note that {@link Named} works as a string-based qualifier, so it is necessary to support also {@link ConfigureCache}. * * @see Named * @see ConfigureCache */ @Named("large") @ConfigureCache("large") @Produces public Configuration largeConfiguration = new ConfigurationBuilder().memory().size(10).build(); /** * The same as the above. The intention here is to check whether we can use 2 Configurations with <code>@Named</code> * annotations. */ @Named("super-large") @ConfigureCache("super-large") @Produces public Configuration superLargeConfiguration = new ConfigurationBuilder().memory().size(20).build(); /** * <p>Associates the "small" cache with the qualifier {@link Small}.</p> * * <p>The default configuration will be used.</p> */ @Small @ConfigureCache("small") @Produces @SuppressWarnings("unused") public Configuration smallConfiguration; /** * Overrides the default embedded cache manager. */ @Produces @ApplicationScoped @SuppressWarnings("unused") public EmbeddedCacheManager defaultCacheManager() { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.eviction().maxEntries(7); return TestCacheManagerFactory.createCacheManager(builder); } /** * Stops cache manager. * * @param cacheManager to be stopped */ @SuppressWarnings("unused") public void killCacheManager(@Disposes EmbeddedCacheManager cacheManager) { TestingUtil.killCacheManagers(cacheManager); } }