uri-resolver/src/main/java/org/gcube/datatransfer/resolver/caches/CatalogueApplicationProfile...

61 lines
1.6 KiB
Java

/**
*
*/
package org.gcube.datatransfer.resolver.caches;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.common.cache.RemovalListener;
import com.google.common.cache.RemovalNotification;
/**
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Nov 5, 2018
*/
public class CatalogueApplicationProfilesGuavaCache {
private static Logger logger = LoggerFactory.getLogger(CatalogueApplicationProfilesGuavaCache.class);
private static LoadingCache<String, String> catalogueApplicationProfiles;
static{
CacheLoader<String, String> loader = new CacheLoader<String, String>(){
@Override
public String load(String arg0)
throws Exception {
logger.info(CatalogueApplicationProfilesGuavaCache.class.getSimpleName() +" loaded");
//ApplicationProfileReaderForCatalogueResolver appPrCatResolver = new ApplicationProfileReaderForCatalogueResolver(scopeToEncDecr, true);
return null;
}
};
RemovalListener<String, String> removalListener = new RemovalListener<String, String>() {
@Override
public void onRemoval(RemovalNotification<String, String> arg0) {
logger.info(CatalogueApplicationProfilesGuavaCache.class.getSimpleName() +" cache expired");
}
};
catalogueApplicationProfiles = CacheBuilder.newBuilder().maximumSize(100).expireAfterWrite(
1, TimeUnit.HOURS).removalListener(removalListener).
build(loader);
}
}