package com.hantsylabs.example.spring.config; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.eviction.EvictionStrategy; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.spring.provider.SpringEmbeddedCacheManager; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurer; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.cache.interceptor.SimpleKeyGenerator; import org.springframework.context.annotation.AdviceMode; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @Configuration @EnableCaching(mode = AdviceMode.ASPECTJ) public class InfinispanEmbeddedCacheConfig extends CachingConfigurerSupport { @Override @Bean public CacheManager cacheManager() { return new SpringEmbeddedCacheManager( new DefaultCacheManager( new ConfigurationBuilder() .eviction() .maxEntries(20000) .strategy(EvictionStrategy.LIRS) .expiration() .wakeUpInterval(5000L) .maxIdle(120000L) .build() ) ); } @Override @Bean public KeyGenerator keyGenerator() { return new SimpleKeyGenerator(); } }