package knorxx.framework.generator.springadapter; import java.io.ByteArrayInputStream; import java.io.UnsupportedEncodingException; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.ehcache.EhCacheCacheManager; import org.springframework.cache.ehcache.EhCacheManagerFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.InputStreamResource; /** * * @author sj */ @Configuration @EnableCaching public class KnorxxGeneratorCacheConfig { public final static String GENERATOR_CACHE_NAME = "generatorCache"; @Bean public EhCacheManagerFactoryBean ehCacheManagerFactoryBean() { EhCacheManagerFactoryBean ehCacheManagerFactoryBean = new EhCacheManagerFactoryBean(); try { ehCacheManagerFactoryBean.setConfigLocation(new InputStreamResource(new ByteArrayInputStream(( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<ehcache>\n" + " <defaultCache eternal=\"true\" maxElementsInMemory=\"100\" overflowToDisk=\"false\" />\n" + " <cache name=\"" + GENERATOR_CACHE_NAME + "\" maxEntriesLocalHeap=\"1000\" />" + "</ehcache>").getBytes("UTF-8")))); } catch (UnsupportedEncodingException ex) { throw new IllegalStateException(ex); } return ehCacheManagerFactoryBean; } @Bean public CacheManager cacheManager() { EhCacheCacheManager cacheManager = new EhCacheCacheManager(); cacheManager.setCacheManager(ehCacheManagerFactoryBean().getObject()); return cacheManager; } }