51 lines
2.6 KiB
Java
51 lines
2.6 KiB
Java
package eu.eudat.cache;
|
|
|
|
|
|
import com.google.common.cache.CacheBuilder;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.cache.CacheManager;
|
|
import org.springframework.cache.annotation.EnableCaching;
|
|
import org.springframework.cache.guava.GuavaCache;
|
|
import org.springframework.cache.support.SimpleCacheManager;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
@Component
|
|
@EnableCaching
|
|
public class ResponsesCache {
|
|
private static final Logger logger = LoggerFactory.getLogger(ResponsesCache.class);
|
|
|
|
public static long HOW_MANY = 30;
|
|
public static TimeUnit TIME_UNIT = TimeUnit.MINUTES;
|
|
|
|
|
|
@Bean
|
|
public CacheManager cacheManager() {
|
|
logger.info("Loading ResponsesCache...");
|
|
SimpleCacheManager simpleCacheManager = new SimpleCacheManager();
|
|
List<GuavaCache> caches = new ArrayList<GuavaCache>();
|
|
caches.add(new GuavaCache("repositories", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("grants", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("projects", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("funders", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("organisations", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("registries", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("services", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("tags", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("researchers", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("externalDatasets", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("currencies", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
caches.add(new GuavaCache("licenses", CacheBuilder.newBuilder().expireAfterAccess(HOW_MANY, TIME_UNIT).build()));
|
|
simpleCacheManager.setCaches(caches);
|
|
logger.info("OK");
|
|
return simpleCacheManager;
|
|
}
|
|
|
|
}
|