shopizer-memoizeit

replaced multicache for caffeine

7/21/2020 5:54:21 AM

Changes

Details

diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/GeoLocationImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/GeoLocationImpl.java
index 6e69cea..bfed8d8 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/GeoLocationImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/GeoLocationImpl.java
@@ -10,7 +10,7 @@ import com.maxmind.geoip2.model.CityResponse;
 import com.salesmanager.core.model.common.Address;
 import com.salesmanager.core.modules.utils.GeoLocation;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
+import br.ufrgs.inf.prosoft.cache.*;
 
 /**
  * Using Geolite2 City database
@@ -24,7 +24,7 @@ public class GeoLocationImpl implements GeoLocation {
 	private static final Logger LOGGER = LoggerFactory.getLogger( GeoLocationImpl.class );
 
 
-public static SingleCache<String, Address> getAddressCache = new SingleCache<>("22#static-single:GeoLocationImpl.getAddress");
+public static CaffeineSingleCache<String, Address> getAddressCache = new CaffeineSingleCache<>("22#static-single:GeoLocationImpl.getAddress", 1200000);
 
 	@Override
 	public Address getAddress(String ipAddress) throws Exception {
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryImpl.java
index ce418f3..9ff9d40 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryImpl.java
@@ -14,8 +14,7 @@ import com.salesmanager.core.model.catalog.product.relationship.ProductRelations
 import com.salesmanager.core.model.merchant.MerchantStore;
 import com.salesmanager.core.model.reference.language.Language;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 
 public class ProductRelationshipRepositoryImpl implements ProductRelationshipRepositoryCustom {
@@ -24,7 +23,7 @@ public class ProductRelationshipRepositoryImpl implements ProductRelationshipRep
     @PersistenceContext
     private EntityManager em;
 
-public static SingleCache<Parameters, List<ProductRelationship>> getByTypeCache1 = new SingleCache<>("21#static-single:ProductRelationshipRepositoryImpl.getByType1");
+public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByTypeCache1 = new CaffeineSingleCache<>("21#static-single:ProductRelationshipRepositoryImpl.getByType1", 1200000);
     
 	@Override
 	public List<ProductRelationship> getByType(MerchantStore store, String type, Product product, Language language) {
@@ -64,7 +63,7 @@ return getByTypeCache1.computeIfAbsent(new Parameters(store, type, product, lang
 
 	}
 	
-public static SingleCache<Parameters, List<ProductRelationship>> getByTypeCache2 = new SingleCache<>("21#static-single:ProductRelationshipRepositoryImpl.getByType2");
+public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByTypeCache2 = new CaffeineSingleCache<>("21#static-single:ProductRelationshipRepositoryImpl.getByType2", 1200000);
 	@Override
 	public List<ProductRelationship> getByType(MerchantStore store, String type, Language language) {
 return getByTypeCache2.computeIfAbsent(new Parameters(store, type, language),  () -> {
@@ -195,7 +194,7 @@ return getByTypeCache2.computeIfAbsent(new Parameters(store, type, language),  (
 
 	}
 	
-	public static SingleCache<Parameters, List<ProductRelationship>> getByTypeCache3 = new SingleCache<>("21#static-single:ProductRelationshipRepositoryImpl.getByType3");
+	public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByTypeCache3 = new CaffeineSingleCache<>("21#static-single:ProductRelationshipRepositoryImpl.getByType3", 1200000);
 	@Override
 	public List<ProductRelationship> getByType(MerchantStore store, String type) {
 
@@ -263,7 +262,7 @@ return getByTypeCache3.computeIfAbsent(new Parameters(store, type),  () -> {
 	}
 	
 
-	public static SingleCache<Parameters, List<ProductRelationship>> getByTypeCache4 = new SingleCache<>("21#static-single:ProductRelationshipRepositoryImpl.getByType4");
+	public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByTypeCache4 = new CaffeineSingleCache<>("21#static-single:ProductRelationshipRepositoryImpl.getByType4", 1200000);
 	@Override
 	public List<ProductRelationship> getByType(MerchantStore store, String type, Product product) {
 return getByTypeCache4.computeIfAbsent(new Parameters(store, type, product),  () -> {
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/category/CategoryServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/category/CategoryServiceImpl.java
index dc5f939..c1e275a 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/category/CategoryServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/category/CategoryServiceImpl.java
@@ -23,8 +23,7 @@ import com.salesmanager.core.model.catalog.product.Product;
 import com.salesmanager.core.model.merchant.MerchantStore;
 import com.salesmanager.core.model.reference.language.Language;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 @Service("categoryService")
 public class CategoryServiceImpl extends SalesManagerEntityServiceImpl<Long, Category> implements CategoryService {
@@ -355,7 +354,7 @@ public class CategoryServiceImpl extends SalesManagerEntityServiceImpl<Long, Cat
 
 	}
 	
-public static SingleCache<Parameters, List<Category>> listByDepthCache1 = new SingleCache<>("25#static-single:CategoryServiceImpl.listByDepth1");
+public static CaffeineSingleCache<Parameters, List<Category>> listByDepthCache1 = new CaffeineSingleCache<>("25#static-single:CategoryServiceImpl.listByDepth1", 1200000);
 
 	@Override
 	public List<Category> listByDepth(MerchantStore store, int depth) {
@@ -364,7 +363,7 @@ return listByDepthCache1.computeIfAbsent(new Parameters(store, depth),  () -> {
 }, 1200000);
 	}
 	
-public static SingleCache<Parameters, List<Category>> listByDepthCache2 = new SingleCache<>("25#static-single:CategoryServiceImpl.listByDepth2");
+public static CaffeineSingleCache<Parameters, List<Category>> listByDepthCache2 = new CaffeineSingleCache<>("25#static-single:CategoryServiceImpl.listByDepth2", 1200000);
 	@Override
 	public List<Category> listByDepth(MerchantStore store, int depth, Language language) {
 return listByDepthCache2.computeIfAbsent(new Parameters(store, depth, language),  () -> {
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/relationship/ProductRelationshipServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/relationship/ProductRelationshipServiceImpl.java
index 76f16ab..9d66987 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/relationship/ProductRelationshipServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/relationship/ProductRelationshipServiceImpl.java
@@ -15,8 +15,7 @@ import com.salesmanager.core.model.catalog.product.relationship.ProductRelations
 import com.salesmanager.core.model.merchant.MerchantStore;
 import com.salesmanager.core.model.reference.language.Language;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 @Service("productRelationshipService")
 public class ProductRelationshipServiceImpl extends
@@ -103,7 +102,7 @@ public class ProductRelationshipServiceImpl extends
 
 	}
 	
-public static SingleCache<Parameters, List<ProductRelationship>> getByTypeCache1 = new SingleCache<>("05#static-single:ProductRelationshipServiceImpl.getByType1");
+public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByTypeCache1 = new CaffeineSingleCache<>("05#static-single:ProductRelationshipServiceImpl.getByType1", 1200000);
 
 	@Override
 	public List<ProductRelationship> getByType(MerchantStore store, Product product, ProductRelationshipType type, Language language) throws ServiceException {
@@ -114,7 +113,7 @@ return getByTypeCache1.computeIfAbsent(new Parameters(store, product, type, lang
 
 	}
 	
-public static SingleCache<Parameters, List<ProductRelationship>> getByTypeCache2 = new SingleCache<>("05#static-single:ProductRelationshipServiceImpl.getByType2");
+public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByTypeCache2 = new CaffeineSingleCache<>("05#static-single:ProductRelationshipServiceImpl.getByType2", 1200000);
 
 	@Override
 	public List<ProductRelationship> getByType(MerchantStore store, ProductRelationshipType type, Language language) throws ServiceException {
@@ -123,7 +122,7 @@ return getByTypeCache2.computeIfAbsent(new Parameters(store, type, language),  (
 }, 1200000);
 	}
 	
-public static SingleCache<Parameters, List<ProductRelationship>> getByTypeCache3 = new SingleCache<>("05#static-single:ProductRelationshipServiceImpl.getByType3");
+public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByTypeCache3 = new CaffeineSingleCache<>("05#static-single:ProductRelationshipServiceImpl.getByType3", 1200000);
 	@Override
 	public List<ProductRelationship> getByType(MerchantStore store, ProductRelationshipType type) throws ServiceException {
 return getByTypeCache3.computeIfAbsent(new Parameters(store, type),  () -> {
@@ -133,7 +132,7 @@ return getByTypeCache3.computeIfAbsent(new Parameters(store, type),  () -> {
 
 	}
 
-public static SingleCache<Parameters, List<ProductRelationship>> getByGroupCache1 = new SingleCache<>("08#static-single:ProductRelationshipServiceImpl.getByGroup1");
+public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByGroupCache1 = new CaffeineSingleCache<>("08#static-single:ProductRelationshipServiceImpl.getByGroup1", 1200000);
 	
 	@Override
 	public List<ProductRelationship> getByGroup(MerchantStore store, String groupName) throws ServiceException {
@@ -144,7 +143,7 @@ return getByGroupCache1.computeIfAbsent(new Parameters(store, groupName),  () ->
 
 	}
 	
-	public static SingleCache<Parameters, List<ProductRelationship>> getByGroupCache2 = new SingleCache<>("08#static-single:ProductRelationshipServiceImpl.getByGroup2");
+	public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByGroupCache2 = new CaffeineSingleCache<>("08#static-single:ProductRelationshipServiceImpl.getByGroup2", 1200000);
 
 	@Override
 	public List<ProductRelationship> getByGroup(MerchantStore store, String groupName, Language language) throws ServiceException {
@@ -155,7 +154,7 @@ return getByGroupCache2.computeIfAbsent(new Parameters(store, groupName, languag
 
 	}
 
-	public static SingleCache<Parameters, List<ProductRelationship>> getByTypeCache4 = new SingleCache<>("05#static-single:ProductRelationshipServiceImpl.getByType4");
+	public static CaffeineSingleCache<Parameters, List<ProductRelationship>> getByTypeCache4 = new CaffeineSingleCache<>("05#static-single:ProductRelationshipServiceImpl.getByType4", 1200000);
 	
 	@Override
 	public List<ProductRelationship> getByType(MerchantStore store, Product product, ProductRelationshipType type) throws ServiceException {
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java
index f6ca712..e1cf55e 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java
@@ -9,7 +9,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import com.salesmanager.core.business.exception.ServiceException;
 import com.salesmanager.core.model.generic.SalesManagerEntity;
 
-import br.ufrgs.inf.prosoft.cache.GetterCache;
+import br.ufrgs.inf.prosoft.cache.*;
 
 /**
  * @param <T> entity type
@@ -73,7 +73,7 @@ public abstract class SalesManagerEntityServiceImpl<K extends Serializable & Com
 		return repository.findAll();
 	}
 	
-public static GetterCache<Long> countCache = new GetterCache<>("27#static-getter:SalesManagerEntityServiceImpl.count");
+public static CaffeineGetterCache<Long> countCache = new CaffeineGetterCache<>("27#static-getter:SalesManagerEntityServiceImpl.count", 1200000);
 	public Long count() {
 return countCache.computeIfAbsent(() -> {
 		return repository.count();
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/content/ContentServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/content/ContentServiceImpl.java
index cbdaea5..b753ebf 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/content/ContentServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/content/ContentServiceImpl.java
@@ -22,8 +22,7 @@ import com.salesmanager.core.model.content.OutputContentFile;
 import com.salesmanager.core.model.merchant.MerchantStore;
 import com.salesmanager.core.model.reference.language.Language;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 
 @Service( "contentService" )
@@ -87,7 +86,7 @@ public class ContentServiceImpl
         return contentRepository.findByTypes( contentType, store.getId(), language.getId() );
     }
     
-public static SingleCache<Parameters, List<ContentDescription>> listNameByTypeCache = new SingleCache<>("12#static-single:ContentServiceImpl.listNameByType");
+public static CaffeineSingleCache<Parameters, List<ContentDescription>> listNameByTypeCache = new CaffeineSingleCache<>("12#static-single:ContentServiceImpl.listNameByType", 1200000);
 
     @Override
     public List<ContentDescription> listNameByType(  List<ContentType> contentType,  MerchantStore store,  Language language )
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerServiceImpl.java
index 12da894..9f45713 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerServiceImpl.java
@@ -20,8 +20,7 @@ import com.salesmanager.core.model.customer.attribute.CustomerAttribute;
 import com.salesmanager.core.model.merchant.MerchantStore;
 import com.salesmanager.core.modules.utils.GeoLocation;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 
 @Service("customerService")
@@ -54,7 +53,7 @@ public class CustomerServiceImpl extends SalesManagerEntityServiceImpl<Long, Cus
 			return customerRepository.findOne(id);		
 	}
 	
-// public static SingleCache<String, Customer> getByNickCache1 = new SingleCache<>("static-single:7#CustomerServiceImpl.getByNick1");
+// public static CaffeineSingleCache<String, Customer> getByNickCache1 = new CaffeineSingleCache<>("static-single:7#CustomerServiceImpl.getByNick1", 1200000);
 
 	@Override
 	public Customer getByNick(String nick) {
@@ -63,7 +62,7 @@ public class CustomerServiceImpl extends SalesManagerEntityServiceImpl<Long, Cus
 // }, 1200000);
 	}
 	
-// public static SingleCache<Parameters, Customer> getByNickCache2 = new SingleCache<>("static-single:7#CustomerServiceImpl.getByNick2");
+// public static CaffeineSingleCache<Parameters, Customer> getByNickCache2 = new CaffeineSingleCache<>("static-single:7#CustomerServiceImpl.getByNick2", 1200000);
 	@Override
 	public Customer getByNick(String nick, int storeId) {
 // return getByNickCache2.computeIfAbsent(new Parameters(nick, storeId),  () -> {
@@ -81,7 +80,7 @@ public class CustomerServiceImpl extends SalesManagerEntityServiceImpl<Long, Cus
 		return customerRepository.listByStore(store,criteria);
 	}
 	
-public static SingleCache<Parameters, Address> getCustomerAddressCache = new SingleCache<>("17#static-single:CustomerServiceImpl.getCustomerAddress");
+public static CaffeineSingleCache<Parameters, Address> getCustomerAddressCache = new CaffeineSingleCache<>("17#static-single:CustomerServiceImpl.getCustomerAddress", 1200000);
 
 	@Override
 	public Address getCustomerAddress(MerchantStore store, String ipAddress) throws ServiceException {
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/init/InitializationDatabaseImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/init/InitializationDatabaseImpl.java
index e36b4fe..e5090b0 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/init/InitializationDatabaseImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/init/InitializationDatabaseImpl.java
@@ -37,7 +37,7 @@ import com.salesmanager.core.model.reference.zone.ZoneDescription;
 import com.salesmanager.core.model.system.IntegrationModule;
 import com.salesmanager.core.model.tax.taxclass.TaxClass;
 
-import br.ufrgs.inf.prosoft.cache.GetterCache;
+import br.ufrgs.inf.prosoft.cache.*;
 
 @Service("initializationDatabase")
 public class InitializationDatabaseImpl implements InitializationDatabase {
@@ -81,7 +81,7 @@ public class InitializationDatabaseImpl implements InitializationDatabase {
 	private String name;
 	
 
-public static GetterCache<Boolean> isEmptyCache = new GetterCache<>("26#static-getter:InitializationDatabaseImpl.isEmpty");
+public static CaffeineGetterCache<Boolean> isEmptyCache = new CaffeineGetterCache<>("26#static-getter:InitializationDatabaseImpl.isEmpty", 1200000);
 
 	public boolean isEmpty() {
 return isEmptyCache.computeIfAbsent(() -> {
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneServiceImpl.java
index 6686dde..c844696 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneServiceImpl.java
@@ -21,7 +21,7 @@ import com.salesmanager.core.model.reference.language.Language;
 import com.salesmanager.core.model.reference.zone.Zone;
 import com.salesmanager.core.model.reference.zone.ZoneDescription;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
+import br.ufrgs.inf.prosoft.cache.*;
 
 @Service("zoneService")
 public class ZoneServiceImpl extends SalesManagerEntityServiceImpl<Long, Zone> implements
@@ -42,7 +42,7 @@ public class ZoneServiceImpl extends SalesManagerEntityServiceImpl<Long, Zone> i
 		this.zoneRepository = zoneRepository;
 	}
 
-public static SingleCache<String, Zone> getByCodeCache = new SingleCache<>("24#static-single:ZoneServiceImpl.getByCode");
+public static CaffeineSingleCache<String, Zone> getByCodeCache = new CaffeineSingleCache<>("24#static-single:ZoneServiceImpl.getByCode", 1200000);
 	@Override
 	public Zone getByCode(String code) {
 return getByCodeCache.computeIfAbsent(code,  () -> {
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailServiceImpl.java
index 0504338..515d671 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailServiceImpl.java
@@ -13,7 +13,7 @@ import com.salesmanager.core.business.modules.email.HtmlEmailSender;
 import com.salesmanager.core.model.merchant.MerchantStore;
 import com.salesmanager.core.model.system.MerchantConfiguration;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
+import br.ufrgs.inf.prosoft.cache.*;
 
 @Service("emailService")
 public class EmailServiceImpl implements EmailService {
@@ -33,7 +33,7 @@ public class EmailServiceImpl implements EmailService {
 		sender.send(email);
 	}
 
-public static SingleCache<MerchantStore, EmailConfig> getEmailConfigurationCache = new SingleCache<>("16#static-single:EmailServiceImpl.getEmailConfiguration");
+public static CaffeineSingleCache<MerchantStore, EmailConfig> getEmailConfigurationCache = new CaffeineSingleCache<>("16#static-single:EmailServiceImpl.getEmailConfiguration", 1200000);
 
 	@Override
 	public EmailConfig getEmailConfiguration(MerchantStore store) {
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationServiceImpl.java
index 785035f..75059e5 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationServiceImpl.java
@@ -16,7 +16,7 @@ import com.salesmanager.core.model.system.MerchantConfig;
 import com.salesmanager.core.model.system.MerchantConfiguration;
 import com.salesmanager.core.model.system.MerchantConfigurationType;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
+import br.ufrgs.inf.prosoft.cache.*;
 
 @Service("merchantConfigurationService")
 public class MerchantConfigurationServiceImpl extends
@@ -70,7 +70,7 @@ public class MerchantConfigurationServiceImpl extends
 		}
 	}
 	
-public static SingleCache<MerchantStore, MerchantConfig> getMerchantConfigCache = new SingleCache<>("23#static-single:MerchantConfigurationServiceImpl.getMerchantConfig");
+public static CaffeineSingleCache<MerchantStore, MerchantConfig> getMerchantConfigCache = new CaffeineSingleCache<>("23#static-single:MerchantConfigurationServiceImpl.getMerchantConfig", 1200000);
 
 	@Override
 	public MerchantConfig getMerchantConfig(MerchantStore store) {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/filter/StoreFilter.java b/sm-shop/src/main/java/com/salesmanager/shop/filter/StoreFilter.java
index 228d9b6..3f54f1b 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/filter/StoreFilter.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/filter/StoreFilter.java
@@ -51,8 +51,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 /**
  * Servlet Filter implementation class StoreFilter
@@ -708,7 +707,7 @@ public class StoreFilter extends HandlerInterceptorAdapter {
 	   }
 */	
 	
-public static SingleCache<Parameters, Map<String, List<ContentDescription>>> getContentPagesNamesCache = new SingleCache<>("11#static-single:StoreFilter.getContentPagesNames");
+public static CaffeineSingleCache<Parameters, Map<String, List<ContentDescription>>> getContentPagesNamesCache = new CaffeineSingleCache<>("11#static-single:StoreFilter.getContentPagesNames", 1200000);
 
 	   private Map<String, List<ContentDescription>> getContentPagesNames(MerchantStore store, Language language) throws Exception {
 		   
@@ -761,7 +760,7 @@ return getContentPagesNamesCache.computeIfAbsent(new Parameters(store, language)
 }, 1200000);
 	   }
 
-public static SingleCache<Parameters, Map<String, List<Content>>> getContentCache = new SingleCache<>("13#static-single:StoreFilter.getContent");
+public static CaffeineSingleCache<Parameters, Map<String, List<Content>>> getContentCache = new CaffeineSingleCache<>("13#static-single:StoreFilter.getContent", 1200000);
 	   
 	   private Map<String, List<Content>> getContent(MerchantStore store, Language language) throws Exception {
 return getContentCache.computeIfAbsent(new Parameters(store, language),  () -> {
@@ -896,7 +895,7 @@ try {
 			return objects;
 	   }
 	   
-public static SingleCache<MerchantStore, Map<String, Object>> getConfigurationsCache = new SingleCache<>("02#static-single:StoreFilter.getConfigurations");
+public static CaffeineSingleCache<MerchantStore, Map<String, Object>> getConfigurationsCache = new CaffeineSingleCache<>("02#static-single:StoreFilter.getConfigurations", 1200000);
 
 	   @SuppressWarnings("unused")
 	private Map<String,Object> getConfigurations(MerchantStore store) {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.java
index 4887c2e..d3b3738 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.java
@@ -17,8 +17,7 @@ import javax.inject.Inject;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 @Service( value = "categoryFacade" )
 public class CategoryFacadeImpl implements CategoryFacade {
@@ -29,7 +28,7 @@ public class CategoryFacadeImpl implements CategoryFacade {
 	@Inject
 	private LanguageService languageService;
 
-public static SingleCache<Parameters, List<ReadableCategory>> getCategoryHierarchyCache = new SingleCache<>("07#static-single:CategoryFacadeImpl.getCategoryHierarchy");
+public static CaffeineSingleCache<Parameters, List<ReadableCategory>> getCategoryHierarchyCache = new CaffeineSingleCache<>("07#static-single:CategoryFacadeImpl.getCategoryHierarchy", 1200000);
 
 
 	@Override
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.java
index 31875ff..5b1e895 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.java
@@ -54,8 +54,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 //import com.salesmanager.core.business.customer.CustomerRegistrationException;
 //import com.salesmanager.core.business.customer.exception.CustomerNotFoundException;
@@ -237,7 +236,7 @@ public class CustomerFacadeImpl implements CustomerFacade
     }
 
 
-public static SingleCache<Parameters, Customer> getCustomerByUserNameCache = new SingleCache<>("06#static-single:CustomerFacadeImpl.getCustomerByUserName");
+public static CaffeineSingleCache<Parameters, Customer> getCustomerByUserNameCache = new CaffeineSingleCache<>("06#static-single:CustomerFacadeImpl.getCustomerByUserName", 1200000);
 
 
  	@Override
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/error/ErrorController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/error/ErrorController.java
index 612bb02..b10fbf6 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/error/ErrorController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/error/ErrorController.java
@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
+import br.ufrgs.inf.prosoft.cache.*;
 
 
 @ControllerAdvice
@@ -48,7 +48,7 @@ public class ErrorController {
  
 	}
 	
-public static SingleCache<Exception, ModelAndView> handleRuntimeExceptionCache = new SingleCache<>("28#static-single:ErrorController.handleRuntimeException");
+public static CaffeineSingleCache<Exception, ModelAndView> handleRuntimeExceptionCache = new CaffeineSingleCache<>("28#static-single:ErrorController.handleRuntimeException", 1200000);
 
 	@ExceptionHandler(RuntimeException.class)
 	@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/BeanUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/BeanUtils.java
index 316f9f1..eb9f229 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/utils/BeanUtils.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/BeanUtils.java
@@ -7,8 +7,7 @@ import java.beans.PropertyDescriptor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 public class BeanUtils
 {
@@ -20,7 +19,7 @@ public class BeanUtils
         return new BeanUtils();
     }
 
-public static SingleCache<Parameters, Object> getPropertyValueCache = new SingleCache<>("30#static-single:BeanUtils.getPropertyValue");
+public static CaffeineSingleCache<Parameters, Object> getPropertyValueCache = new CaffeineSingleCache<>("30#static-single:BeanUtils.getPropertyValue", 1200000);
     
     @SuppressWarnings( "nls" )
     public Object getPropertyValue( Object bean, String property )
@@ -60,7 +59,7 @@ try {
         }, 1200000);
     }
 
-public static SingleCache<Parameters, PropertyDescriptor> getPropertyDescriptorCache = new SingleCache<>("31#static-single:BeanUtils.getPropertyDescriptor");
+public static CaffeineSingleCache<Parameters, PropertyDescriptor> getPropertyDescriptorCache = new CaffeineSingleCache<>("31#static-single:BeanUtils.getPropertyDescriptor", 1200000);
 
     private PropertyDescriptor getPropertyDescriptor( Class<?> beanClass, String propertyname )
         // throws IntrospectionException
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailUtils.java
index 0dfe27f..c1bc144 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailUtils.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailUtils.java
@@ -12,8 +12,7 @@ import org.springframework.stereotype.Component;
 import com.salesmanager.core.model.merchant.MerchantStore;
 import com.salesmanager.shop.constants.Constants;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 @Component
 public class EmailUtils {
@@ -29,7 +28,7 @@ public class EmailUtils {
 	@Qualifier("img")
 	private ImageFilePath imageUtils;
 	
-public static SingleCache<Parameters, Map<String, String>> createEmailObjectsMapCache = new SingleCache<>("20#static-single:EmailUtils.createEmailObjectsMap");
+public static CaffeineSingleCache<Parameters, Map<String, String>> createEmailObjectsMapCache = new CaffeineSingleCache<>("20#static-single:EmailUtils.createEmailObjectsMap", 1200000);
 
 	/**
 	 * Builds generic html email information
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatchValidator.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatchValidator.java
index 8143605..cf8907b 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatchValidator.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatchValidator.java
@@ -7,8 +7,7 @@ import org.slf4j.LoggerFactory;
 import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorContext;
 
-import br.ufrgs.inf.prosoft.cache.SingleCache;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
 
 public class FieldMatchValidator implements ConstraintValidator<FieldMatch, Object>
 {
@@ -27,7 +26,7 @@ public class FieldMatchValidator implements ConstraintValidator<FieldMatch, Obje
     }
 
 
-public static SingleCache<Parameters, Boolean> isValidCache = new SingleCache<>("29#static-single:FieldMatchValidator.isValid");
+public static CaffeineSingleCache<Parameters, Boolean> isValidCache = new CaffeineSingleCache<>("29#static-single:FieldMatchValidator.isValid", 1200000);
 
     @SuppressWarnings( "nls" )
     @Override