package fr.itldev.koya.cache; import com.google.common.cache.CacheBuilder; import java.io.Serializable; import java.util.concurrent.TimeUnit; /** * * @author nico */ public class DefaultCacheFactory extends org.alfresco.repo.cache.AbstractCacheFactory<Serializable, Object> { public DefaultCacheAdapter createCache(String cacheName) { CacheBuilder builder = CacheBuilder.newBuilder(); long timeToLive = Long.parseLong(getProperty(cacheName, "timeToLiveSeconds", "0")); long maxItems = Long.parseLong(getProperty(cacheName, "maxItems", "0")); long maxIdle = Long.parseLong(getProperty(cacheName, "maxIdleSeconds", "0")); if (timeToLive > 0) { builder.expireAfterWrite(timeToLive, TimeUnit.SECONDS); } if (maxItems > 0) { builder.maximumSize(maxItems); } if (maxIdle > 0) { builder.expireAfterAccess(maxIdle, TimeUnit.SECONDS); } return new DefaultCacheAdapter(builder.build()); } }