Details
diff --git a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java
index 2f246de..f293792 100644
--- a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java
+++ b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java
@@ -87,8 +87,7 @@ import java.util.UUID;
import java.util.function.Consumer;
import java.util.stream.Collectors;
-import br.ufrgs.inf.prosoft.cache.MultiCache;
-import br.ufrgs.inf.prosoft.cache.KeyNotFoundException;
+import br.ufrgs.inf.prosoft.cache.*;
/**
* @author Andrew Shvayka
@@ -100,7 +99,7 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor {
final DeviceId deviceId;
// private final Map<UUID, SessionInfoMetaData> sessions;
-private MultiCache<UUID, SessionInfoMetaData> sessions = new MultiCache<>("instance-multi:DeviceActorMessageProcessor.sessions");
+private Caffeine<UUID, SessionInfoMetaData> sessions = new Caffeine<>("instance-multi:DeviceActorMessageProcessor.sessions");
private final Map<UUID, SessionInfo> attributeSubscriptions;
private final Map<UUID, SessionInfo> rpcSubscriptions;
@@ -645,7 +644,7 @@ private MultiCache<UUID, SessionInfoMetaData> sessions = new MultiCache<>("insta
return builder.build();
}
-public static MultiCache<DeviceId, List<TransportProtos.SessionSubscriptionInfoProto>> deviceSessionCache = new MultiCache<>("static-multi:ActorSystemContext.deviceSession");
+public static Caffeine<DeviceId, List<TransportProtos.SessionSubscriptionInfoProto>> deviceSessionCache = new Caffeine<>("static-multi:ActorSystemContext.deviceSession");
private void restoreSessions() {
log.debug("[{}] Restoring sessions from cache", deviceId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java b/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java
index 9f9b0c5..e452e90 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java
@@ -62,9 +62,7 @@ import static org.thingsboard.server.dao.DaoUtil.toUUIDs;
import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
import static org.thingsboard.server.dao.service.Validator.*;
-import br.ufrgs.inf.prosoft.cache.MultiCache;
-import br.ufrgs.inf.prosoft.cache.KeyNotFoundException;
-import br.ufrgs.inf.prosoft.cache.Parameters;
+import br.ufrgs.inf.prosoft.cache.*;
@Service
@Slf4j
@@ -103,7 +101,7 @@ public class BaseAssetService extends AbstractEntityService implements AssetServ
return assetDao.findByIdAsync(tenantId, assetId.getId());
}
-public static MultiCache<Parameters, Asset> findAssetByTenantIdAndNameCache = new MultiCache<>("static-multi:BaseAssetService.findAssetByTenantIdAndName");
+public static Caffeine<Parameters, Asset> findAssetByTenantIdAndNameCache = new Caffeine<>("static-multi:BaseAssetService.findAssetByTenantIdAndName", 1440000);
// @Cacheable(cacheNames = ASSET_CACHE, key = "{#tenantId, #name}")
@Override
diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceCredentialsServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceCredentialsServiceImpl.java
index b3bfe76..233c4c2 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceCredentialsServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceCredentialsServiceImpl.java
@@ -55,7 +55,7 @@ public class DeviceCredentialsServiceImpl implements DeviceCredentialsService {
return deviceCredentialsDao.findByDeviceId(tenantId, deviceId.getId());
}
-public static MultiCache<String, DeviceCredentials> findDeviceCredentialsByCredentialsIdCache = new MultiCache<>("static-multi:DeviceCredentialsServiceImpl.findDeviceCredentialsByCredentialsId");
+public static Caffeine<String, DeviceCredentials> findDeviceCredentialsByCredentialsIdCache = new Caffeine<>("static-multi:DeviceCredentialsServiceImpl.findDeviceCredentialsByCredentialsId", 1440000);
@Override
// @Cacheable(cacheNames = DEVICE_CREDENTIALS_CACHE, unless = "#result == null")
diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java
index 14671ad..a7a8f55 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java
@@ -111,7 +111,7 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe
return deviceDao.findByIdAsync(tenantId, deviceId.getId());
}
-public static MultiCache<Parameters, Device> findDeviceByTenantIdAndNameCache = new MultiCache<>("static-multi:DeviceServiceImpl.findDeviceByTenantIdAndName");
+public static Caffeine<Parameters, Device> findDeviceByTenantIdAndNameCache = new Caffeine<>("static-multi:DeviceServiceImpl.findDeviceByTenantIdAndName", 1440000);
// @Cacheable(cacheNames = DEVICE_CACHE, key = "{#tenantId, #name}")
@Override
diff --git a/dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java
index ae7d66a..36822b2 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java
@@ -131,7 +131,7 @@ findEntityViewByIdCache.invalidate(entityViewId);
customerEntityViewsUnAssigner.removeEntities(tenantId, customerId);
}
-public static MultiCache<EntityViewId, EntityView> findEntityViewByIdCache = new MultiCache<>("static-multi:EntityViewServiceImpl.findEntityViewById");
+public static Caffeine<EntityViewId, EntityView> findEntityViewByIdCache = new Caffeine<>("static-multi:EntityViewServiceImpl.findEntityViewById", 1440000);
// @Cacheable(cacheNames = ENTITY_VIEW_CACHE, key = "{#entityViewId}")
@Override
@@ -143,7 +143,7 @@ return findEntityViewByIdCache.computeIfAbsent(entityViewId, () -> {
}, 1440000);
}
-public static MultiCache<Parameters, EntityView> findEntityViewByTenantIdAndNameCache = new MultiCache<>("static-multi:EntityViewServiceImpl.findEntityViewByTenantIdAndName");
+public static Caffeine<Parameters, EntityView> findEntityViewByTenantIdAndNameCache = new Caffeine<>("static-multi:EntityViewServiceImpl.findEntityViewByTenantIdAndName", 1440000);
// @Cacheable(cacheNames = ENTITY_VIEW_CACHE, key = "{#tenantId, #name}")
@Override
diff --git a/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java b/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java
index 447ab77..f04f4a0 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java
@@ -76,7 +76,7 @@ public class BaseRelationService implements RelationService {
return relationDao.checkRelation(tenantId, from, to, relationType, typeGroup);
}
-public static MultiCache<Parameters, EntityRelation> getRelationCache = new MultiCache<>("static-multi:BaseRelationService.getRelation");
+public static Caffeine<Parameters, EntityRelation> getRelationCache = new Caffeine<>("static-multi:BaseRelationService.getRelation", 1440000);
// @Cacheable(cacheNames = RELATIONS_CACHE, key = "{#from, #to, #relationType, #typeGroup}")
@Override
@@ -316,7 +316,7 @@ public static MultiCache<Parameters, EntityRelation> getRelationCache = new Mult
// cache.evict(toTypeAndTypeGroup);
}
-public static MultiCache<Parameters, List<EntityRelation>> findByFromCache = new MultiCache<>("static-multi:BaseRelationService.findByFrom");
+public static Caffeine<Parameters, List<EntityRelation>> findByFromCache = new Caffeine<>("static-multi:BaseRelationService.findByFrom", 1440000);
// @Cacheable(cacheNames = RELATIONS_CACHE, key = "{#from, #typeGroup, 'FROM'}")
@Override
@@ -388,7 +388,7 @@ try {
});
}
-public static MultiCache<Parameters, List<EntityRelation>> findByFromAndTypeCache = new MultiCache<>("static-multi:BaseRelationService.findByFromAndType");
+public static Caffeine<Parameters, List<EntityRelation>> findByFromAndTypeCache = new Caffeine<>("static-multi:BaseRelationService.findByFromAndType", 1440000);
// @Cacheable(cacheNames = RELATIONS_CACHE, key = "{#from, #relationType, #typeGroup, 'FROM'}")
@Override
@@ -411,7 +411,7 @@ return findByFromAndTypeCache.computeIfAbsent(new Parameters(from, relationType,
return relationDao.findAllByFromAndType(tenantId, from, relationType, typeGroup);
}
-public static MultiCache<Parameters, List<EntityRelation>> findByToCache = new MultiCache<>("static-multi:BaseRelationService.findByTo");
+public static Caffeine<Parameters, List<EntityRelation>> findByToCache = new Caffeine<>("static-multi:BaseRelationService.findByTo", 1440000);
// @Cacheable(cacheNames = RELATIONS_CACHE, key = "{#to, #typeGroup, 'TO'}")
@Override
@@ -493,7 +493,7 @@ try{
});
}
-public static MultiCache<Parameters, List<EntityRelation>> findByToAndTypeCache = new MultiCache<>("static-multi:BaseRelationService.findByToAndType");
+public static Caffeine<Parameters, List<EntityRelation>> findByToAndTypeCache = new Caffeine<>("static-multi:BaseRelationService.findByToAndType", 1440000);
// @Cacheable(cacheNames = RELATIONS_CACHE, key = "{#to, #relationType, #typeGroup, 'TO'}")
@Override
diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbAbstractCustomerActionNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbAbstractCustomerActionNode.java
index 1b23b0f..20504a0 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbAbstractCustomerActionNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbAbstractCustomerActionNode.java
@@ -83,7 +83,7 @@ public abstract class TbAbstractCustomerActionNode<C extends TbAbstractCustomerA
protected abstract void doProcessCustomerAction(TbContext ctx, TbMsg msg, CustomerId customerId);
-private MultiCache<CustomerKey, Optional<CustomerId>> getCustomerCache = new MultiCache<>("instance-multi:TbAbstractCustomerActionNode.getCustomer");
+private Caffeine<CustomerKey, Optional<CustomerId>> getCustomerCache = new Caffeine<>("instance-multi:TbAbstractCustomerActionNode.getCustomer");
protected ListenableFuture<CustomerId> getCustomer(TbContext ctx, TbMsg msg) {
String customerTitle = TbNodeUtils.processPattern(this.config.getCustomerNamePattern(), msg.getMetaData());