diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANUserCache.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANUserCache.java index 86924cf..5ceecc8 100644 --- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANUserCache.java +++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANUserCache.java @@ -1,7 +1,5 @@ package org.gcube.gcat.persistence.ckan; -import java.util.HashMap; -import java.util.Map; import java.util.concurrent.TimeUnit; import javax.cache.Cache; @@ -24,8 +22,6 @@ public abstract class CKANUserCache { private static final MutableConfiguration userCacheConfiguration; - private static final Map> userCachePerContext; - static { CachingProvider provider = Caching.getCachingProvider(); cacheManager = provider.getCacheManager(); @@ -33,8 +29,6 @@ public abstract class CKANUserCache { userCacheConfiguration = new MutableConfiguration().setTypes(String.class, CKANUser.class) .setStoreByValue(false) .setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.MINUTES, 15))); - - userCachePerContext = new HashMap>(); } private CKANUserCache() { @@ -43,10 +37,9 @@ public abstract class CKANUserCache { public synchronized static CKANUser getCurrrentCKANUser() { SecretManager secretManager = SecretManagerProvider.instance.get(); String context = secretManager.getContext(); - Cache userCache = userCachePerContext.get(context); + Cache userCache = cacheManager.getCache(context); if(userCache == null) { userCache = cacheManager.createCache(context, userCacheConfiguration); - userCachePerContext.put(context, userCache); } String gcubeUsername = secretManager.getUser().getUsername(); @@ -68,7 +61,7 @@ public abstract class CKANUserCache { public synchronized static void removeUserFromCache(String gcubeUsername) { SecretManager secretManager = SecretManagerProvider.instance.get(); String context = secretManager.getContext(); - Cache userCache = userCachePerContext.get(context); + Cache userCache = cacheManager.getCache(context); if(userCache != null) { userCache.remove(gcubeUsername); } @@ -77,7 +70,7 @@ public abstract class CKANUserCache { public synchronized static void emptyUserCache() { SecretManager secretManager = SecretManagerProvider.instance.get(); String context = secretManager.getContext(); - userCachePerContext.remove(context); + cacheManager.destroyCache(context); } @Override