diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java
index ee34bd7f23..9532bc3044 100644
--- a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java
+++ b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java
@@ -561,7 +561,7 @@ public class DefaultDataUpdateService implements DataUpdateService {
while (hasNext) {
for (Alarm alarm : alarms.getData()) {
if (alarm.getCustomerId() == null && alarm.getOriginator() != null) {
- alarm.setCustomerId(entityService.fetchEntityCustomerId(tenantId, alarm.getOriginator()));
+ alarm.setCustomerId(entityService.fetchEntityCustomerId(tenantId, alarm.getOriginator()).get());
alarmDao.save(tenantId, alarm);
}
if (processed.incrementAndGet() % 1000 == 0) {
diff --git a/common/dao-api/pom.xml b/common/dao-api/pom.xml
index f56582a786..cba811343a 100644
--- a/common/dao-api/pom.xml
+++ b/common/dao-api/pom.xml
@@ -115,10 +115,6 @@
awaitility
test
-
- org.apache.commons
- commons-text
-
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java
index 4bd1eb79fc..70f8f00ebb 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java
@@ -30,14 +30,14 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.query.AlarmData;
import org.thingsboard.server.common.data.query.AlarmDataQuery;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.Collection;
/**
* Created by ashvayka on 11.05.17.
*/
-public interface AlarmService extends TbEntityService {
+public interface AlarmService extends EntityDaoService {
AlarmOperationResult createOrUpdateAlarm(Alarm alarm);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java
index c8200812dc..1d702c7ec0 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java
@@ -21,9 +21,9 @@ import org.thingsboard.server.common.data.id.AssetProfileId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
-public interface AssetProfileService extends TbEntityService {
+public interface AssetProfileService extends EntityDaoService {
AssetProfile findAssetProfileById(TenantId tenantId, AssetProfileId assetProfileId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetService.java
index fc8f8ca88e..721386b2c7 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetService.java
@@ -27,11 +27,11 @@ import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
-public interface AssetService extends TbEntityService {
+public interface AssetService extends EntityDaoService {
AssetInfo findAssetInfoById(TenantId tenantId, AssetId assetId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/audit/AuditLogService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/audit/AuditLogService.java
index c810971ee5..01b3bf4b5e 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/audit/AuditLogService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/audit/AuditLogService.java
@@ -25,11 +25,10 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List;
-public interface AuditLogService extends TbEntityService {
+public interface AuditLogService {
PageData findAuditLogsByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, List actionTypes, TimePageLink pageLink);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/customer/CustomerService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/customer/CustomerService.java
index d8a904d7c1..12fcc04768 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/customer/CustomerService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/customer/CustomerService.java
@@ -21,11 +21,11 @@ import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.Optional;
-public interface CustomerService extends TbEntityService {
+public interface CustomerService extends EntityDaoService {
Customer findCustomerById(TenantId tenantId, CustomerId customerId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java
index 9f7f3ae3e0..e718e53367 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java
@@ -24,11 +24,11 @@ import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
-public interface DashboardService extends TbEntityService {
+public interface DashboardService extends EntityDaoService {
Dashboard findDashboardById(TenantId tenantId, DashboardId dashboardId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java
index ec5673ce15..2e65e159cd 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java
@@ -21,9 +21,9 @@ import org.thingsboard.server.common.data.id.DeviceProfileId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
-public interface DeviceProfileService extends TbEntityService {
+public interface DeviceProfileService extends EntityDaoService {
DeviceProfile findDeviceProfileById(TenantId tenantId, DeviceProfileId deviceProfileId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceService.java
index 9ce266e12a..4c4bcd4d40 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceService.java
@@ -33,12 +33,12 @@ import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.security.DeviceCredentials;
import org.thingsboard.server.dao.device.provision.ProvisionRequest;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
import java.util.UUID;
-public interface DeviceService extends TbEntityService {
+public interface DeviceService extends EntityDaoService {
DeviceInfo findDeviceInfoById(TenantId tenantId, DeviceId deviceId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java
index b9fb6d8fcf..b7f5ecfc45 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java
@@ -26,12 +26,12 @@ import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
import java.util.Optional;
-public interface EdgeService extends TbEntityService {
+public interface EdgeService extends EntityDaoService {
Edge findEdgeById(TenantId tenantId, EdgeId edgeId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/TbEntityService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityDaoService.java
similarity index 88%
rename from common/dao-api/src/main/java/org/thingsboard/server/dao/entity/TbEntityService.java
rename to common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityDaoService.java
index 0ce6a75b80..ce181e6d5a 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/TbEntityService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityDaoService.java
@@ -21,8 +21,8 @@ import org.thingsboard.server.common.data.id.TenantId;
import java.util.Optional;
-public interface TbEntityService {
+public interface EntityDaoService {
- Optional> fetchEntity(TenantId tenantId, EntityId entityId);
+ Optional> findEntity(TenantId tenantId, EntityId entityId);
}
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java
index 9362dbef7a..aa5c70867f 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java
@@ -29,7 +29,7 @@ public interface EntityService {
Optional fetchEntityName(TenantId tenantId, EntityId entityId);
- CustomerId fetchEntityCustomerId(TenantId tenantId, EntityId entityId);
+ Optional fetchEntityCustomerId(TenantId tenantId, EntityId entityId);
long countEntitiesByQuery(TenantId tenantId, CustomerId customerId, EntityCountQuery query);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceRegistry.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceRegistry.java
new file mode 100644
index 0000000000..3bbaa8f06e
--- /dev/null
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceRegistry.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright © 2016-2022 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.thingsboard.server.dao.entity;
+
+import org.thingsboard.server.common.data.EntityType;
+
+public interface EntityServiceRegistry {
+
+ EntityDaoService getServiceByEntityType(EntityType entityType);
+
+}
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java
index 7d0cb1211d..f3efd99528 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java
@@ -27,14 +27,14 @@ import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
/**
* Created by Victor Basanets on 8/27/2017.
*/
-public interface EntityViewService extends TbEntityService {
+public interface EntityViewService extends EntityDaoService {
EntityView saveEntityView(EntityView entityView);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java
index 00e6bea2de..3b0de80811 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java
@@ -24,11 +24,10 @@ import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List;
-public interface EventService extends TbEntityService {
+public interface EventService {
ListenableFuture saveAsync(Event event);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/ota/OtaPackageService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/ota/OtaPackageService.java
index fe44038ccb..09d37fd81a 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/ota/OtaPackageService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/ota/OtaPackageService.java
@@ -25,11 +25,11 @@ import org.thingsboard.server.common.data.ota.ChecksumAlgorithm;
import org.thingsboard.server.common.data.ota.OtaPackageType;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.nio.ByteBuffer;
-public interface OtaPackageService extends TbEntityService {
+public interface OtaPackageService extends EntityDaoService {
OtaPackageInfo saveOtaPackageInfo(OtaPackageInfo otaPackageInfo, boolean isUrl);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/queue/QueueService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/queue/QueueService.java
index 02b465602e..f9bb3e834d 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/queue/QueueService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/queue/QueueService.java
@@ -20,11 +20,11 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.queue.Queue;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
-public interface QueueService extends TbEntityService {
+public interface QueueService extends EntityDaoService {
Queue saveQueue(Queue queue);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java
index 1f6cba7062..fcb8ecebab 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java
@@ -23,11 +23,11 @@ import org.thingsboard.server.common.data.id.TbResourceId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
-public interface ResourceService extends TbEntityService {
+public interface ResourceService extends EntityDaoService {
TbResource saveResource(TbResource resource);
TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java
index 431fdb5bda..727a1aadb8 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java
@@ -23,9 +23,9 @@ import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.rpc.Rpc;
import org.thingsboard.server.common.data.rpc.RpcStatus;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
-public interface RpcService extends TbEntityService {
+public interface RpcService extends EntityDaoService {
Rpc save(Rpc rpc);
void deleteRpc(TenantId tenantId, RpcId id);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java
index 8baf3783e7..20d4667a3c 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java
@@ -31,7 +31,7 @@ import org.thingsboard.server.common.data.rule.RuleChainMetaData;
import org.thingsboard.server.common.data.rule.RuleChainType;
import org.thingsboard.server.common.data.rule.RuleChainUpdateResult;
import org.thingsboard.server.common.data.rule.RuleNode;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.Collection;
import java.util.List;
@@ -39,7 +39,7 @@ import java.util.List;
/**
* Created by igor on 3/12/18.
*/
-public interface RuleChainService extends TbEntityService {
+public interface RuleChainService extends EntityDaoService {
RuleChain saveRuleChain(RuleChain ruleChain);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileService.java
index 91b1d70a61..1728837569 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileService.java
@@ -21,9 +21,9 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.TenantProfileId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
-public interface TenantProfileService extends TbEntityService {
+public interface TenantProfileService extends EntityDaoService {
TenantProfile findTenantProfileById(TenantId tenantId, TenantProfileId tenantProfileId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantService.java
index 8186623ed2..af7c4c5892 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantService.java
@@ -22,11 +22,11 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.TenantProfileId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
-public interface TenantService extends TbEntityService {
+public interface TenantService extends EntityDaoService {
Tenant findTenantById(TenantId tenantId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateService.java
index 93fd1d1f00..50208c859d 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateService.java
@@ -19,9 +19,9 @@ import org.thingsboard.server.common.data.ApiUsageState;
import org.thingsboard.server.common.data.id.ApiUsageStateId;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
-public interface ApiUsageStateService extends TbEntityService {
+public interface ApiUsageStateService extends EntityDaoService {
ApiUsageState createDefaultApiUsageState(TenantId id, EntityId entityId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/user/UserService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/user/UserService.java
index 53e89d7a51..d52f11e548 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/user/UserService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/user/UserService.java
@@ -24,9 +24,9 @@ import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.security.UserCredentials;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
-public interface UserService extends TbEntityService {
+public interface UserService extends EntityDaoService {
User findUserById(TenantId tenantId, UserId userId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java
index d2a4e8ee2a..52beb62a25 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java
@@ -20,11 +20,11 @@ import org.thingsboard.server.common.data.id.WidgetTypeId;
import org.thingsboard.server.common.data.widget.WidgetType;
import org.thingsboard.server.common.data.widget.WidgetTypeDetails;
import org.thingsboard.server.common.data.widget.WidgetTypeInfo;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
-public interface WidgetTypeService extends TbEntityService {
+public interface WidgetTypeService extends EntityDaoService {
WidgetType findWidgetTypeById(TenantId tenantId, WidgetTypeId widgetTypeId);
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java
index d0ef55a91e..c037cfb612 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java
+++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java
@@ -20,11 +20,11 @@ import org.thingsboard.server.common.data.id.WidgetsBundleId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.widget.WidgetsBundle;
-import org.thingsboard.server.dao.entity.TbEntityService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
-public interface WidgetsBundleService extends TbEntityService {
+public interface WidgetsBundleService extends EntityDaoService {
WidgetsBundle findWidgetsBundleById(TenantId tenantId, WidgetsBundleId widgetsBundleId);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java
index aed28fc2aa..0560e58a3e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java
@@ -115,7 +115,7 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
if (alarm.getEndTs() == 0L) {
alarm.setEndTs(alarm.getStartTs());
}
- alarm.setCustomerId(entityService.fetchEntityCustomerId(alarm.getTenantId(), alarm.getOriginator()));
+ alarm.setCustomerId(entityService.fetchEntityCustomerId(alarm.getTenantId(), alarm.getOriginator()).get());
if (alarm.getId() == null) {
Alarm existing = alarmDao.findLatestByOriginatorAndType(alarm.getTenantId(), alarm.getOriginator(), alarm.getType());
if (existing == null || existing.getStatus().isCleared()) {
@@ -286,8 +286,8 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
return Futures.transform(alarmDao.findAlarmByIdAsync(tenantId, alarmId.getId()),
a -> {
AlarmInfo alarmInfo = new AlarmInfo(a);
- Optional originatorNameOpt = entityService.fetchEntityName(tenantId, alarmInfo.getOriginator());
- alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "N/A" : originatorNameOpt.get());
+ alarmInfo.setOriginatorName(
+ entityService.fetchEntityName(tenantId, alarmInfo.getOriginator()).orElse("N/A"));
return alarmInfo;
}, MoreExecutors.directExecutor());
}
@@ -313,8 +313,8 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
private ListenableFuture> fetchAlarmsOriginators(TenantId tenantId, PageData alarms) {
List> alarmFutures = new ArrayList<>(alarms.getData().size());
for (AlarmInfo alarmInfo : alarms.getData()) {
- Optional originatorNameOpt = entityService.fetchEntityName(tenantId, alarmInfo.getOriginator());
- alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "Deleted" : originatorNameOpt.get());
+ alarmInfo.setOriginatorName(
+ entityService.fetchEntityName(tenantId, alarmInfo.getOriginator()).orElse("Deleted"));
alarmFutures.add(Futures.immediateFuture(alarmInfo));
}
return Futures.transform(Futures.successfulAsList(alarmFutures),
@@ -407,7 +407,7 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
}
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findAlarmById(tenantId, new AlarmId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java
index 75de5ba5d0..b7bd6afd75 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java
@@ -268,7 +268,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findAssetProfileById(tenantId, new AssetProfileId(entityId.getId())));
}
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 e65a886833..4bc91f1d47 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
@@ -433,7 +433,7 @@ public class BaseAssetService extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findAssetById(tenantId, new AssetId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/audit/AuditLogServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/audit/AuditLogServiceImpl.java
index 2ee07fd30c..8e7a1cdd17 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/audit/AuditLogServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/audit/AuditLogServiceImpl.java
@@ -36,7 +36,6 @@ import org.thingsboard.server.common.data.audit.AuditLog;
import org.thingsboard.server.common.data.id.AuditLogId;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId;
-import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
@@ -54,7 +53,6 @@ import org.thingsboard.server.dao.service.DataValidator;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.List;
-import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors;
@@ -62,7 +60,7 @@ import static org.thingsboard.server.dao.service.Validator.validateEntityId;
import static org.thingsboard.server.dao.service.Validator.validateId;
@Slf4j
-@Service("AuditLogDaoService")
+@Service
@ConditionalOnProperty(prefix = "audit-log", value = "enabled", havingValue = "true")
public class AuditLogServiceImpl implements AuditLogService {
@@ -128,8 +126,7 @@ public class AuditLogServiceImpl implements AuditLogService {
entityName = entity.getName();
} else {
try {
- Optional entityNameOpt = entityService.fetchEntityName(tenantId, entityId);
- entityName = entityNameOpt.orElse(entityName);
+ entityName = entityService.fetchEntityName(tenantId, entityId).orElse(entityName);
} catch (Exception ignored) {
}
}
@@ -406,9 +403,4 @@ public class AuditLogServiceImpl implements AuditLogService {
return Futures.allAsList(futures);
}
- @Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
- return Optional.empty();
- }
-
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/audit/DummyAuditLogServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/audit/DummyAuditLogServiceImpl.java
index 40b3b77c2e..0b1efaf82e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/audit/DummyAuditLogServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/audit/DummyAuditLogServiceImpl.java
@@ -23,16 +23,14 @@ import org.thingsboard.server.common.data.audit.ActionType;
import org.thingsboard.server.common.data.audit.AuditLog;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId;
-import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink;
import java.util.List;
-import java.util.Optional;
-@Service("AuditLogDaoService")
+@Service
@ConditionalOnProperty(prefix = "audit-log", value = "enabled", havingValue = "false")
public class DummyAuditLogServiceImpl implements AuditLogService {
@@ -61,9 +59,4 @@ public class DummyAuditLogServiceImpl implements AuditLogService {
return null;
}
- @Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
- return Optional.empty();
- }
-
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java
index aad5de33f7..1f99c08be4 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java
@@ -182,7 +182,7 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom
};
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findCustomerById(tenantId, new CustomerId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java
index d40c559856..b5093299fe 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java
@@ -311,7 +311,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
};
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findDashboardById(tenantId, new DashboardId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java
index e459d3f48d..ed8c30af06 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java
@@ -290,7 +290,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findDeviceProfileById(tenantId, new DeviceProfileId(entityId.getId())));
}
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 d095e3d96c..56ffea98be 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
@@ -709,7 +709,7 @@ public class DeviceServiceImpl extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findDeviceById(tenantId, new DeviceId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java
index 68763786ef..834e733bdc 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java
@@ -522,7 +522,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findEdgeById(tenantId, new EdgeId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java
index 07e9f9f1a8..0a9b3c631a 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java
@@ -54,7 +54,7 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
private EntityQueryDao entityQueryDao;
@Autowired
- EntityServiceBeanFactory entityServiceBeanFactory;
+ EntityServiceRegistry entityServiceRegistry;
@Override
public long countEntitiesByQuery(TenantId tenantId, CustomerId customerId, EntityCountQuery query) {
@@ -77,8 +77,8 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
@Override
public Optional fetchEntityName(TenantId tenantId, EntityId entityId) {
log.trace("Executing fetchEntityName [{}]", entityId);
- TbEntityService tbEntityService = entityServiceBeanFactory.getServiceByEntityType(entityId.getEntityType());
- Optional> hasIdOpt = tbEntityService.fetchEntity(tenantId, entityId);
+ EntityDaoService entityDaoService = entityServiceRegistry.getServiceByEntityType(entityId.getEntityType());
+ Optional> hasIdOpt = entityDaoService.findEntity(tenantId, entityId);
if (hasIdOpt.isPresent()) {
HasId> hasId = hasIdOpt.get();
if (hasId instanceof HasName) {
@@ -90,18 +90,22 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
}
@Override
- public CustomerId fetchEntityCustomerId(TenantId tenantId, EntityId entityId) {
+ public Optional fetchEntityCustomerId(TenantId tenantId, EntityId entityId) {
log.trace("Executing fetchEntityCustomerId [{}]", entityId);
- TbEntityService tbEntityService = entityServiceBeanFactory.getServiceByEntityType(entityId.getEntityType());
- Optional> hasIdOpt = tbEntityService.fetchEntity(tenantId, entityId);
+ EntityDaoService entityDaoService = entityServiceRegistry.getServiceByEntityType(entityId.getEntityType());
+ Optional> hasIdOpt = entityDaoService.findEntity(tenantId, entityId);
if (hasIdOpt.isPresent()) {
HasId> hasId = hasIdOpt.get();
if (hasId instanceof HasCustomerId) {
HasCustomerId hasCustomerId = (HasCustomerId) hasId;
- return hasCustomerId.getCustomerId();
+ CustomerId customerId = hasCustomerId.getCustomerId();
+ if (customerId == null) {
+ customerId = NULL_CUSTOMER_ID;
+ }
+ return Optional.of(customerId);
}
}
- return NULL_CUSTOMER_ID;
+ return Optional.of(NULL_CUSTOMER_ID);
}
private static void validateEntityCountQuery(EntityCountQuery query) {
diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceBeanFactory.java b/dao/src/main/java/org/thingsboard/server/dao/entity/DefaultEntityServiceRegistry.java
similarity index 56%
rename from common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceBeanFactory.java
rename to dao/src/main/java/org/thingsboard/server/dao/entity/DefaultEntityServiceRegistry.java
index ff91d16d72..b51697d405 100644
--- a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceBeanFactory.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/entity/DefaultEntityServiceRegistry.java
@@ -16,24 +16,43 @@
package org.thingsboard.server.dao.entity;
import org.apache.commons.text.CaseUtils;
-import org.springframework.beans.factory.BeanFactory;
+import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.thingsboard.server.common.data.EntityType;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import java.util.Map;
+
@Service
-public class EntityServiceBeanFactory {
+public class DefaultEntityServiceRegistry implements EntityServiceRegistry {
private static final String SERVICE_SUFFIX = "DaoService";
- private final BeanFactory beanFactory;
+ private Map entityDaoServicesMap;
+
+ private final ApplicationContext applicationContext;
+
+ public DefaultEntityServiceRegistry(ApplicationContext applicationContext) {
+ this.applicationContext = applicationContext;
+ }
+
+ @PostConstruct
+ public void init() {
+ entityDaoServicesMap = applicationContext.getBeansOfType(EntityDaoService.class);
+ }
- public EntityServiceBeanFactory(BeanFactory beanFactory) {
- this.beanFactory = beanFactory;
+ @PreDestroy
+ public void destroy() {
+ if (entityDaoServicesMap != null) {
+ entityDaoServicesMap.clear();
+ }
}
- public TbEntityService getServiceByEntityType(EntityType entityType) {
+ @Override
+ public EntityDaoService getServiceByEntityType(EntityType entityType) {
String beanName = EntityType.RULE_NODE.equals(entityType) ? getBeanName(EntityType.RULE_CHAIN) : getBeanName(entityType);
- return beanFactory.getBean(beanName, TbEntityService.class);
+ return entityDaoServicesMap.get(beanName);
}
private String getBeanName(EntityType entityType) {
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 f828be9235..ef72b01ff8 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
@@ -412,7 +412,7 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findEntityViewById(tenantId, new EntityViewId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java
index de4683f6b4..55a98a9549 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java
@@ -31,19 +31,17 @@ import org.thingsboard.server.common.data.event.LifecycleEvent;
import org.thingsboard.server.common.data.event.RuleChainDebugEvent;
import org.thingsboard.server.common.data.event.RuleNodeDebugEvent;
import org.thingsboard.server.common.data.id.EntityId;
-import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.dao.service.DataValidator;
import java.util.List;
-import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.stream.Collectors;
-@Service("EventDaoService")
+@Service
@Slf4j
public class BaseEventService implements EventService {
@@ -151,9 +149,4 @@ public class BaseEventService implements EventService {
return list == null ? null : list.stream().map(e -> e.toInfo(entityType)).collect(Collectors.toList());
}
- @Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
- return Optional.empty();
- }
-
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/ota/BaseOtaPackageService.java b/dao/src/main/java/org/thingsboard/server/dao/ota/BaseOtaPackageService.java
index 0345ed2369..b1422100d8 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/ota/BaseOtaPackageService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/ota/BaseOtaPackageService.java
@@ -237,7 +237,7 @@ public class BaseOtaPackageService extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findOtaPackageInfoById(tenantId, new OtaPackageId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueService.java b/dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueService.java
index a05eb12218..5953e31c83 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueService.java
@@ -123,7 +123,7 @@ public class BaseQueueService extends AbstractEntityService implements QueueServ
}
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findQueueById(tenantId, new QueueId(entityId.getId())));
}
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 320e7661fc..5cd57b557e 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
@@ -375,9 +375,9 @@ public class BaseRelationService implements RelationService {
private ListenableFuture fetchRelationInfoAsync(TenantId tenantId, EntityRelation relation,
Function entityIdGetter,
BiConsumer entityNameSetter) {
- Optional entityNameOpt = entityService.fetchEntityName(tenantId, entityIdGetter.apply(relation));
EntityRelationInfo relationInfo = new EntityRelationInfo(relation);
- entityNameSetter.accept(relationInfo, entityNameOpt.orElse("N/A"));
+ entityNameSetter.accept(relationInfo,
+ entityService.fetchEntityName(tenantId, entityIdGetter.apply(relation)).orElse("N/A"));
return Futures.immediateFuture(relationInfo);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java
index 9d72a331de..d144c18ab7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java
@@ -137,7 +137,7 @@ public class BaseResourceService implements ResourceService {
}
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findResourceInfoById(tenantId, new TbResourceId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java b/dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java
index e56fd832ec..24e9843849 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java
@@ -98,7 +98,7 @@ public class BaseRpcService implements RpcService {
}
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findById(tenantId, new RpcId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java
index d6b9e123fb..8ee3f4d0a9 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java
@@ -761,7 +761,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
HasId> hasId = EntityType.RULE_NODE.equals(entityId.getEntityType()) ?
findRuleNodeById(tenantId, new RuleNodeId(entityId.getId())) :
findRuleChainById(tenantId, new RuleChainId(entityId.getId()));
diff --git a/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java
index 03479e4483..f6e9e29ed0 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java
@@ -208,7 +208,7 @@ public class TenantProfileServiceImpl extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findTenantProfileById(tenantId, new TenantProfileId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java
index 04f42ed3e2..595673fb79 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java
@@ -261,7 +261,7 @@ public class TenantServiceImpl extends AbstractCachedEntityService> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findTenantById(new TenantId(entityId.getId())));
}
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java
index 4c6a3472ee..d956a007a8 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java
@@ -164,7 +164,7 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A
}
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findApiUsageStateById(tenantId, new ApiUsageStateId(entityId.getId())));
}
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java
index 28912d3571..12348cb74b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java
@@ -401,7 +401,7 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
};
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findUserById(tenantId, new UserId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java b/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java
index 26ae0de259..b6b6c5efa7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java
@@ -327,12 +327,12 @@ public abstract class AbstractBufferedRateExecutor {
+ String defaultName = "N/A";
try {
- Optional entityNameOpt = entityService.fetchEntityName(TenantId.SYS_TENANT_ID, tenantId);
- return entityNameOpt.orElse("N/A");
+ return entityService.fetchEntityName(TenantId.SYS_TENANT_ID, tenantId).orElse(defaultName);
} catch (Exception e) {
log.error("[{}] Failed to get tenant name", tenantId, e);
- return "N/A";
+ return defaultName;
}
});
log.info("[{}][{}] Rate limited requests: {}", tenantId, name, rateLimitedRequests);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java
index e5e9360698..921344bd43 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java
@@ -116,7 +116,7 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
}
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findWidgetTypeById(tenantId, new WidgetTypeId(entityId.getId())));
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java
index 474ac247ba..719f250dca 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java
@@ -155,7 +155,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
}
@Override
- public Optional> fetchEntity(TenantId tenantId, EntityId entityId) {
+ public Optional> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findWidgetsBundleById(tenantId, new WidgetsBundleId(entityId.getId())));
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceBeanFactoryTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceRegistryTest.java
similarity index 60%
rename from dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceBeanFactoryTest.java
rename to dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceRegistryTest.java
index d9b907d825..81c6159d4a 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceBeanFactoryTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceRegistryTest.java
@@ -16,31 +16,31 @@
package org.thingsboard.server.dao.service;
import lombok.extern.slf4j.Slf4j;
-import org.assertj.core.api.Assertions;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.EntityType;
-import org.thingsboard.server.dao.entity.EntityServiceBeanFactory;
-import org.thingsboard.server.dao.rule.BaseRuleChainService;
+import org.thingsboard.server.dao.entity.EntityDaoService;
+import org.thingsboard.server.dao.entity.EntityServiceRegistry;
+import org.thingsboard.server.dao.rule.RuleChainService;
@Slf4j
-public abstract class BaseEntityServiceBeanFactoryTest extends AbstractServiceTest {
+public abstract class BaseEntityServiceRegistryTest extends AbstractServiceTest {
@Autowired
- private EntityServiceBeanFactory entityServiceBeanFactory;
+ private EntityServiceRegistry entityServiceRegistry;
@Test
- public void givenAllEntityTypes_whenGetServiceByEntityTypeCalled_thenNoExceptionsThrows() {
+ public void givenAllEntityTypes_whenGetServiceByEntityTypeCalled_thenAllBeansExists() {
for (EntityType entityType : EntityType.values()) {
- Assertions.assertThatCode(() -> entityServiceBeanFactory.getServiceByEntityType(entityType))
- .doesNotThrowAnyException();
+ EntityDaoService entityDaoService = entityServiceRegistry.getServiceByEntityType(entityType);
+ Assert.assertNotNull("entityDaoService bean is missed for type: " + entityType.name(), entityDaoService);
}
}
@Test
- public void givenRuleNodeEntityType_whenGetServiceByEntityTypeCalled_thenReturnedRuleChainDaoService() {
- Assert.assertTrue(entityServiceBeanFactory.getServiceByEntityType(EntityType.RULE_NODE) instanceof BaseRuleChainService);
+ public void givenRuleNodeEntityType_whenGetServiceByEntityTypeCalled_thenReturnedRuleChainService() {
+ Assert.assertTrue(entityServiceRegistry.getServiceByEntityType(EntityType.RULE_NODE) instanceof RuleChainService);
}
}
diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceBeanFactorySqlTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceRegistrySqlTest.java
similarity index 81%
rename from dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceBeanFactorySqlTest.java
rename to dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceRegistrySqlTest.java
index 48fd73db75..40d6d2ae77 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceBeanFactorySqlTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceRegistrySqlTest.java
@@ -15,10 +15,10 @@
*/
package org.thingsboard.server.dao.service.sql;
-import org.thingsboard.server.dao.service.BaseEntityServiceBeanFactoryTest;
+import org.thingsboard.server.dao.service.BaseEntityServiceRegistryTest;
import org.thingsboard.server.dao.service.DaoSqlTest;
@DaoSqlTest
-public class EntityServiceBeanFactorySqlTest extends BaseEntityServiceBeanFactoryTest {
+public class EntityServiceRegistrySqlTest extends BaseEntityServiceRegistryTest {
}