Browse Source

updated logic & fix typos after review

pull/7804/head
ShvaykaD 4 years ago
parent
commit
5c5b83c4ce
  1. 2
      application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java
  2. 4
      common/dao-api/pom.xml
  3. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmService.java
  4. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java
  5. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetService.java
  6. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/audit/AuditLogService.java
  7. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/customer/CustomerService.java
  8. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java
  9. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java
  10. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceService.java
  11. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java
  12. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityDaoService.java
  13. 2
      common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java
  14. 24
      common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceRegistry.java
  15. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java
  16. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java
  17. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/ota/OtaPackageService.java
  18. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/queue/QueueService.java
  19. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java
  20. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java
  21. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java
  22. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileService.java
  23. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/tenant/TenantService.java
  24. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateService.java
  25. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/user/UserService.java
  26. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java
  27. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java
  28. 12
      dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java
  29. 2
      dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java
  30. 2
      dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java
  31. 5
      dao/src/main/java/org/thingsboard/server/dao/audit/AuditLogServiceImpl.java
  32. 2
      dao/src/main/java/org/thingsboard/server/dao/audit/DummyAuditLogServiceImpl.java
  33. 2
      dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java
  34. 2
      dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java
  35. 2
      dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java
  36. 2
      dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java
  37. 2
      dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java
  38. 20
      dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java
  39. 35
      dao/src/main/java/org/thingsboard/server/dao/entity/DefaultEntityServiceRegistry.java
  40. 2
      dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java
  41. 2
      dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java
  42. 2
      dao/src/main/java/org/thingsboard/server/dao/ota/BaseOtaPackageService.java
  43. 2
      dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueService.java
  44. 4
      dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java
  45. 2
      dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java
  46. 2
      dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java
  47. 2
      dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java
  48. 2
      dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java
  49. 2
      dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java
  50. 2
      dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java
  51. 2
      dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java
  52. 6
      dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java
  53. 2
      dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java
  54. 2
      dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java
  55. 20
      dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceRegistryTest.java
  56. 4
      dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceRegistrySqlTest.java

2
application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java

@ -561,7 +561,7 @@ public class DefaultDataUpdateService implements DataUpdateService {
while (hasNext) { while (hasNext) {
for (Alarm alarm : alarms.getData()) { for (Alarm alarm : alarms.getData()) {
if (alarm.getCustomerId() == null && alarm.getOriginator() != null) { 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); alarmDao.save(tenantId, alarm);
} }
if (processed.incrementAndGet() % 1000 == 0) { if (processed.incrementAndGet() % 1000 == 0) {

4
common/dao-api/pom.xml

@ -115,10 +115,6 @@
<artifactId>awaitility</artifactId> <artifactId>awaitility</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

4
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.page.PageData;
import org.thingsboard.server.common.data.query.AlarmData; import org.thingsboard.server.common.data.query.AlarmData;
import org.thingsboard.server.common.data.query.AlarmDataQuery; 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; import java.util.Collection;
/** /**
* Created by ashvayka on 11.05.17. * Created by ashvayka on 11.05.17.
*/ */
public interface AlarmService extends TbEntityService { public interface AlarmService extends EntityDaoService {
AlarmOperationResult createOrUpdateAlarm(Alarm alarm); AlarmOperationResult createOrUpdateAlarm(Alarm alarm);

4
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.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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); AssetProfile findAssetProfileById(TenantId tenantId, AssetProfileId assetProfileId);

4
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.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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.List;
public interface AssetService extends TbEntityService { public interface AssetService extends EntityDaoService {
AssetInfo findAssetInfoById(TenantId tenantId, AssetId assetId); AssetInfo findAssetInfoById(TenantId tenantId, AssetId assetId);

4
common/dao-api/src/main/java/org/thingsboard/server/dao/audit/AuditLogService.java

@ -25,11 +25,11 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink; import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.dao.entity.TbEntityService; import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List; import java.util.List;
public interface AuditLogService extends TbEntityService { public interface AuditLogService extends EntityDaoService {
PageData<AuditLog> findAuditLogsByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, List<ActionType> actionTypes, TimePageLink pageLink); PageData<AuditLog> findAuditLogsByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, List<ActionType> actionTypes, TimePageLink pageLink);

4
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.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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; import java.util.Optional;
public interface CustomerService extends TbEntityService { public interface CustomerService extends EntityDaoService {
Customer findCustomerById(TenantId tenantId, CustomerId customerId); Customer findCustomerById(TenantId tenantId, CustomerId customerId);

4
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.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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.List;
public interface DashboardService extends TbEntityService { public interface DashboardService extends EntityDaoService {
Dashboard findDashboardById(TenantId tenantId, DashboardId dashboardId); Dashboard findDashboardById(TenantId tenantId, DashboardId dashboardId);

4
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.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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); DeviceProfile findDeviceProfileById(TenantId tenantId, DeviceProfileId deviceProfileId);

4
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.page.PageLink;
import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.data.security.DeviceCredentials;
import org.thingsboard.server.dao.device.provision.ProvisionRequest; 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.List;
import java.util.UUID; import java.util.UUID;
public interface DeviceService extends TbEntityService { public interface DeviceService extends EntityDaoService {
DeviceInfo findDeviceInfoById(TenantId tenantId, DeviceId deviceId); DeviceInfo findDeviceInfoById(TenantId tenantId, DeviceId deviceId);

4
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.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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.List;
import java.util.Optional; import java.util.Optional;
public interface EdgeService extends TbEntityService { public interface EdgeService extends EntityDaoService {
Edge findEdgeById(TenantId tenantId, EdgeId edgeId); Edge findEdgeById(TenantId tenantId, EdgeId edgeId);

4
common/dao-api/src/main/java/org/thingsboard/server/dao/entity/TbEntityService.java → 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; import java.util.Optional;
public interface TbEntityService { public interface EntityDaoService {
Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId); Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId);
} }

2
common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityService.java

@ -29,7 +29,7 @@ public interface EntityService {
Optional<String> fetchEntityName(TenantId tenantId, EntityId entityId); Optional<String> fetchEntityName(TenantId tenantId, EntityId entityId);
CustomerId fetchEntityCustomerId(TenantId tenantId, EntityId entityId); Optional<CustomerId> fetchEntityCustomerId(TenantId tenantId, EntityId entityId);
long countEntitiesByQuery(TenantId tenantId, CustomerId customerId, EntityCountQuery query); long countEntitiesByQuery(TenantId tenantId, CustomerId customerId, EntityCountQuery query);

24
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);
}

4
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.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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.List;
/** /**
* Created by Victor Basanets on 8/27/2017. * Created by Victor Basanets on 8/27/2017.
*/ */
public interface EntityViewService extends TbEntityService { public interface EntityViewService extends EntityDaoService {
EntityView saveEntityView(EntityView entityView); EntityView saveEntityView(EntityView entityView);

4
common/dao-api/src/main/java/org/thingsboard/server/dao/event/EventService.java

@ -24,11 +24,11 @@ import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.TimePageLink; import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.dao.entity.TbEntityService; import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List; import java.util.List;
public interface EventService extends TbEntityService { public interface EventService extends EntityDaoService {
ListenableFuture<Void> saveAsync(Event event); ListenableFuture<Void> saveAsync(Event event);

4
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.ota.OtaPackageType;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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; import java.nio.ByteBuffer;
public interface OtaPackageService extends TbEntityService { public interface OtaPackageService extends EntityDaoService {
OtaPackageInfo saveOtaPackageInfo(OtaPackageInfo otaPackageInfo, boolean isUrl); OtaPackageInfo saveOtaPackageInfo(OtaPackageInfo otaPackageInfo, boolean isUrl);

4
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.PageData;
import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.queue.Queue; 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; import java.util.List;
public interface QueueService extends TbEntityService { public interface QueueService extends EntityDaoService {
Queue saveQueue(Queue queue); Queue saveQueue(Queue queue);

4
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.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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.List;
public interface ResourceService extends TbEntityService { public interface ResourceService extends EntityDaoService {
TbResource saveResource(TbResource resource); TbResource saveResource(TbResource resource);
TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceId); TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceId);

4
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.page.PageLink;
import org.thingsboard.server.common.data.rpc.Rpc; import org.thingsboard.server.common.data.rpc.Rpc;
import org.thingsboard.server.common.data.rpc.RpcStatus; 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); Rpc save(Rpc rpc);
void deleteRpc(TenantId tenantId, RpcId id); void deleteRpc(TenantId tenantId, RpcId id);

4
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.RuleChainType;
import org.thingsboard.server.common.data.rule.RuleChainUpdateResult; import org.thingsboard.server.common.data.rule.RuleChainUpdateResult;
import org.thingsboard.server.common.data.rule.RuleNode; 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.Collection;
import java.util.List; import java.util.List;
@ -39,7 +39,7 @@ import java.util.List;
/** /**
* Created by igor on 3/12/18. * Created by igor on 3/12/18.
*/ */
public interface RuleChainService extends TbEntityService { public interface RuleChainService extends EntityDaoService {
RuleChain saveRuleChain(RuleChain ruleChain); RuleChain saveRuleChain(RuleChain ruleChain);

4
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.id.TenantProfileId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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); TenantProfile findTenantProfileById(TenantId tenantId, TenantProfileId tenantProfileId);

4
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.id.TenantProfileId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; 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.List;
public interface TenantService extends TbEntityService { public interface TenantService extends EntityDaoService {
Tenant findTenantById(TenantId tenantId); Tenant findTenantById(TenantId tenantId);

4
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.ApiUsageStateId;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId; 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); ApiUsageState createDefaultApiUsageState(TenantId id, EntityId entityId);

4
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.PageData;
import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.security.UserCredentials; 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); User findUserById(TenantId tenantId, UserId userId);

4
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.WidgetType;
import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetTypeDetails;
import org.thingsboard.server.common.data.widget.WidgetTypeInfo; 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; import java.util.List;
public interface WidgetTypeService extends TbEntityService { public interface WidgetTypeService extends EntityDaoService {
WidgetType findWidgetTypeById(TenantId tenantId, WidgetTypeId widgetTypeId); WidgetType findWidgetTypeById(TenantId tenantId, WidgetTypeId widgetTypeId);

4
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.PageData;
import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.widget.WidgetsBundle; 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; import java.util.List;
public interface WidgetsBundleService extends TbEntityService { public interface WidgetsBundleService extends EntityDaoService {
WidgetsBundle findWidgetsBundleById(TenantId tenantId, WidgetsBundleId widgetsBundleId); WidgetsBundle findWidgetsBundleById(TenantId tenantId, WidgetsBundleId widgetsBundleId);

12
dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java

@ -114,7 +114,7 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
if (alarm.getEndTs() == 0L) { if (alarm.getEndTs() == 0L) {
alarm.setEndTs(alarm.getStartTs()); 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) { if (alarm.getId() == null) {
Alarm existing = alarmDao.findLatestByOriginatorAndType(alarm.getTenantId(), alarm.getOriginator(), alarm.getType()); Alarm existing = alarmDao.findLatestByOriginatorAndType(alarm.getTenantId(), alarm.getOriginator(), alarm.getType());
if (existing == null || existing.getStatus().isCleared()) { if (existing == null || existing.getStatus().isCleared()) {
@ -284,8 +284,8 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
return Futures.transform(alarmDao.findAlarmByIdAsync(tenantId, alarmId.getId()), return Futures.transform(alarmDao.findAlarmByIdAsync(tenantId, alarmId.getId()),
a -> { a -> {
AlarmInfo alarmInfo = new AlarmInfo(a); AlarmInfo alarmInfo = new AlarmInfo(a);
Optional<String> originatorNameOpt = entityService.fetchEntityName(tenantId, alarmInfo.getOriginator()); alarmInfo.setOriginatorName(
alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "N/A" : originatorNameOpt.get()); entityService.fetchEntityName(tenantId, alarmInfo.getOriginator()).orElse("N/A"));
return alarmInfo; return alarmInfo;
}, MoreExecutors.directExecutor()); }, MoreExecutors.directExecutor());
} }
@ -311,8 +311,8 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
private ListenableFuture<PageData<AlarmInfo>> fetchAlarmsOriginators(TenantId tenantId, PageData<AlarmInfo> alarms) { private ListenableFuture<PageData<AlarmInfo>> fetchAlarmsOriginators(TenantId tenantId, PageData<AlarmInfo> alarms) {
List<ListenableFuture<AlarmInfo>> alarmFutures = new ArrayList<>(alarms.getData().size()); List<ListenableFuture<AlarmInfo>> alarmFutures = new ArrayList<>(alarms.getData().size());
for (AlarmInfo alarmInfo : alarms.getData()) { for (AlarmInfo alarmInfo : alarms.getData()) {
Optional<String> originatorNameOpt = entityService.fetchEntityName(tenantId, alarmInfo.getOriginator()); alarmInfo.setOriginatorName(
alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "Deleted" : originatorNameOpt.get()); entityService.fetchEntityName(tenantId, alarmInfo.getOriginator()).orElse("Deleted"));
alarmFutures.add(Futures.immediateFuture(alarmInfo)); alarmFutures.add(Futures.immediateFuture(alarmInfo));
} }
return Futures.transform(Futures.successfulAsList(alarmFutures), return Futures.transform(Futures.successfulAsList(alarmFutures),
@ -405,7 +405,7 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findAlarmById(tenantId, new AlarmId(entityId.getId()))); return Optional.ofNullable(findAlarmById(tenantId, new AlarmId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java

@ -268,7 +268,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findAssetProfileById(tenantId, new AssetProfileId(entityId.getId()))); return Optional.ofNullable(findAssetProfileById(tenantId, new AssetProfileId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java

@ -433,7 +433,7 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
}; };
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findAssetById(tenantId, new AssetId(entityId.getId()))); return Optional.ofNullable(findAssetById(tenantId, new AssetId(entityId.getId())));
} }

5
dao/src/main/java/org/thingsboard/server/dao/audit/AuditLogServiceImpl.java

@ -128,8 +128,7 @@ public class AuditLogServiceImpl implements AuditLogService {
entityName = entity.getName(); entityName = entity.getName();
} else { } else {
try { try {
Optional<String> entityNameOpt = entityService.fetchEntityName(tenantId, entityId); entityName = entityService.fetchEntityName(tenantId, entityId).orElse(entityName);
entityName = entityNameOpt.orElse(entityName);
} catch (Exception ignored) { } catch (Exception ignored) {
} }
} }
@ -407,7 +406,7 @@ public class AuditLogServiceImpl implements AuditLogService {
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.empty(); return Optional.empty();
} }

2
dao/src/main/java/org/thingsboard/server/dao/audit/DummyAuditLogServiceImpl.java

@ -62,7 +62,7 @@ public class DummyAuditLogServiceImpl implements AuditLogService {
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.empty(); return Optional.empty();
} }

2
dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java

@ -182,7 +182,7 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom
}; };
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findCustomerById(tenantId, new CustomerId(entityId.getId()))); return Optional.ofNullable(findCustomerById(tenantId, new CustomerId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java

@ -311,7 +311,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
}; };
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findDashboardById(tenantId, new DashboardId(entityId.getId()))); return Optional.ofNullable(findDashboardById(tenantId, new DashboardId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java

@ -290,7 +290,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findDeviceProfileById(tenantId, new DeviceProfileId(entityId.getId()))); return Optional.ofNullable(findDeviceProfileById(tenantId, new DeviceProfileId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java

@ -709,7 +709,7 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
}; };
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findDeviceById(tenantId, new DeviceId(entityId.getId()))); return Optional.ofNullable(findDeviceById(tenantId, new DeviceId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java

@ -522,7 +522,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findEdgeById(tenantId, new EdgeId(entityId.getId()))); return Optional.ofNullable(findEdgeById(tenantId, new EdgeId(entityId.getId())));
} }

20
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; private EntityQueryDao entityQueryDao;
@Autowired @Autowired
EntityServiceBeanFactory entityServiceBeanFactory; DefaultEntityServiceRegistry entityServiceRegistry;
@Override @Override
public long countEntitiesByQuery(TenantId tenantId, CustomerId customerId, EntityCountQuery query) { public long countEntitiesByQuery(TenantId tenantId, CustomerId customerId, EntityCountQuery query) {
@ -77,8 +77,8 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
@Override @Override
public Optional<String> fetchEntityName(TenantId tenantId, EntityId entityId) { public Optional<String> fetchEntityName(TenantId tenantId, EntityId entityId) {
log.trace("Executing fetchEntityName [{}]", entityId); log.trace("Executing fetchEntityName [{}]", entityId);
TbEntityService tbEntityService = entityServiceBeanFactory.getServiceByEntityType(entityId.getEntityType()); EntityDaoService entityDaoService = entityServiceRegistry.getServiceByEntityType(entityId.getEntityType());
Optional<HasId<?>> hasIdOpt = tbEntityService.fetchEntity(tenantId, entityId); Optional<HasId<?>> hasIdOpt = entityDaoService.findEntity(tenantId, entityId);
if (hasIdOpt.isPresent()) { if (hasIdOpt.isPresent()) {
HasId<?> hasId = hasIdOpt.get(); HasId<?> hasId = hasIdOpt.get();
if (hasId instanceof HasName) { if (hasId instanceof HasName) {
@ -90,18 +90,22 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
} }
@Override @Override
public CustomerId fetchEntityCustomerId(TenantId tenantId, EntityId entityId) { public Optional<CustomerId> fetchEntityCustomerId(TenantId tenantId, EntityId entityId) {
log.trace("Executing fetchEntityCustomerId [{}]", entityId); log.trace("Executing fetchEntityCustomerId [{}]", entityId);
TbEntityService tbEntityService = entityServiceBeanFactory.getServiceByEntityType(entityId.getEntityType()); EntityDaoService entityDaoService = entityServiceRegistry.getServiceByEntityType(entityId.getEntityType());
Optional<HasId<?>> hasIdOpt = tbEntityService.fetchEntity(tenantId, entityId); Optional<HasId<?>> hasIdOpt = entityDaoService.findEntity(tenantId, entityId);
if (hasIdOpt.isPresent()) { if (hasIdOpt.isPresent()) {
HasId<?> hasId = hasIdOpt.get(); HasId<?> hasId = hasIdOpt.get();
if (hasId instanceof HasCustomerId) { if (hasId instanceof HasCustomerId) {
HasCustomerId hasCustomerId = (HasCustomerId) hasId; 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) { private static void validateEntityCountQuery(EntityCountQuery query) {

35
common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceBeanFactory.java → dao/src/main/java/org/thingsboard/server/dao/entity/DefaultEntityServiceRegistry.java

@ -15,25 +15,46 @@
*/ */
package org.thingsboard.server.dao.entity; package org.thingsboard.server.dao.entity;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.text.CaseUtils; import org.apache.commons.text.CaseUtils;
import org.springframework.beans.factory.BeanFactory; import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.util.Map;
@Slf4j
@Service @Service
public class EntityServiceBeanFactory { public class DefaultEntityServiceRegistry implements EntityServiceRegistry {
private static final String SERVICE_SUFFIX = "DaoService"; private static final String SERVICE_SUFFIX = "DaoService";
private final BeanFactory beanFactory; private Map<String, EntityDaoService> 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) { @PreDestroy
this.beanFactory = beanFactory; 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); 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) { private String getBeanName(EntityType entityType) {

2
dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java

@ -412,7 +412,7 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
}; };
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findEntityViewById(tenantId, new EntityViewId(entityId.getId()))); return Optional.ofNullable(findEntityViewById(tenantId, new EntityViewId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java

@ -152,7 +152,7 @@ public class BaseEventService implements EventService {
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.empty(); return Optional.empty();
} }

2
dao/src/main/java/org/thingsboard/server/dao/ota/BaseOtaPackageService.java

@ -237,7 +237,7 @@ public class BaseOtaPackageService extends AbstractCachedEntityService<OtaPackag
}; };
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findOtaPackageInfoById(tenantId, new OtaPackageId(entityId.getId()))); return Optional.ofNullable(findOtaPackageInfoById(tenantId, new OtaPackageId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueService.java

@ -123,7 +123,7 @@ public class BaseQueueService extends AbstractEntityService implements QueueServ
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findQueueById(tenantId, new QueueId(entityId.getId()))); return Optional.ofNullable(findQueueById(tenantId, new QueueId(entityId.getId())));
} }

4
dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java

@ -375,9 +375,9 @@ public class BaseRelationService implements RelationService {
private ListenableFuture<EntityRelationInfo> fetchRelationInfoAsync(TenantId tenantId, EntityRelation relation, private ListenableFuture<EntityRelationInfo> fetchRelationInfoAsync(TenantId tenantId, EntityRelation relation,
Function<EntityRelation, EntityId> entityIdGetter, Function<EntityRelation, EntityId> entityIdGetter,
BiConsumer<EntityRelationInfo, String> entityNameSetter) { BiConsumer<EntityRelationInfo, String> entityNameSetter) {
Optional<String> entityNameOpt = entityService.fetchEntityName(tenantId, entityIdGetter.apply(relation));
EntityRelationInfo relationInfo = new EntityRelationInfo(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); return Futures.immediateFuture(relationInfo);
} }

2
dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java

@ -137,7 +137,7 @@ public class BaseResourceService implements ResourceService {
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findResourceInfoById(tenantId, new TbResourceId(entityId.getId()))); return Optional.ofNullable(findResourceInfoById(tenantId, new TbResourceId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java

@ -98,7 +98,7 @@ public class BaseRpcService implements RpcService {
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findById(tenantId, new RpcId(entityId.getId()))); return Optional.ofNullable(findById(tenantId, new RpcId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java

@ -761,7 +761,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
HasId<?> hasId = EntityType.RULE_NODE.equals(entityId.getEntityType()) ? HasId<?> hasId = EntityType.RULE_NODE.equals(entityId.getEntityType()) ?
findRuleNodeById(tenantId, new RuleNodeId(entityId.getId())) : findRuleNodeById(tenantId, new RuleNodeId(entityId.getId())) :
findRuleChainById(tenantId, new RuleChainId(entityId.getId())); findRuleChainById(tenantId, new RuleChainId(entityId.getId()));

2
dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java

@ -208,7 +208,7 @@ public class TenantProfileServiceImpl extends AbstractCachedEntityService<Tenant
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findTenantProfileById(tenantId, new TenantProfileId(entityId.getId()))); return Optional.ofNullable(findTenantProfileById(tenantId, new TenantProfileId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java

@ -261,7 +261,7 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
}; };
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findTenantById(new TenantId(entityId.getId()))); return Optional.ofNullable(findTenantById(new TenantId(entityId.getId())));
} }
} }

2
dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java

@ -164,7 +164,7 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findApiUsageStateById(tenantId, new ApiUsageStateId(entityId.getId()))); return Optional.ofNullable(findApiUsageStateById(tenantId, new ApiUsageStateId(entityId.getId())));
} }
} }

2
dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java

@ -401,7 +401,7 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
}; };
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findUserById(tenantId, new UserId(entityId.getId()))); return Optional.ofNullable(findUserById(tenantId, new UserId(entityId.getId())));
} }

6
dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java

@ -327,12 +327,12 @@ public abstract class AbstractBufferedRateExecutor<T extends AsyncTask, F extend
counter.clear(); counter.clear();
if (printTenantNames) { if (printTenantNames) {
String name = tenantNamesCache.computeIfAbsent(tenantId, tId -> { String name = tenantNamesCache.computeIfAbsent(tenantId, tId -> {
String defaultName = "N/A";
try { try {
Optional<String> entityNameOpt = entityService.fetchEntityName(TenantId.SYS_TENANT_ID, tenantId); return entityService.fetchEntityName(TenantId.SYS_TENANT_ID, tenantId).orElse(defaultName);
return entityNameOpt.orElse("N/A");
} catch (Exception e) { } catch (Exception e) {
log.error("[{}] Failed to get tenant name", tenantId, e); log.error("[{}] Failed to get tenant name", tenantId, e);
return "N/A"; return defaultName;
} }
}); });
log.info("[{}][{}] Rate limited requests: {}", tenantId, name, rateLimitedRequests); log.info("[{}][{}] Rate limited requests: {}", tenantId, name, rateLimitedRequests);

2
dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java

@ -116,7 +116,7 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findWidgetTypeById(tenantId, new WidgetTypeId(entityId.getId()))); return Optional.ofNullable(findWidgetTypeById(tenantId, new WidgetTypeId(entityId.getId())));
} }

2
dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java

@ -155,7 +155,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
} }
@Override @Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> findEntity(TenantId tenantId, EntityId entityId) {
return Optional.ofNullable(findWidgetsBundleById(tenantId, new WidgetsBundleId(entityId.getId()))); return Optional.ofNullable(findWidgetsBundleById(tenantId, new WidgetsBundleId(entityId.getId())));
} }

20
dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceBeanFactoryTest.java → dao/src/test/java/org/thingsboard/server/dao/service/BaseEntityServiceRegistryTest.java

@ -16,31 +16,31 @@
package org.thingsboard.server.dao.service; package org.thingsboard.server.dao.service;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.assertj.core.api.Assertions;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.dao.entity.EntityServiceBeanFactory; import org.thingsboard.server.dao.entity.DefaultEntityServiceRegistry;
import org.thingsboard.server.dao.rule.BaseRuleChainService; import org.thingsboard.server.dao.entity.EntityDaoService;
import org.thingsboard.server.dao.rule.RuleChainService;
@Slf4j @Slf4j
public abstract class BaseEntityServiceBeanFactoryTest extends AbstractServiceTest { public abstract class BaseEntityServiceRegistryTest extends AbstractServiceTest {
@Autowired @Autowired
private EntityServiceBeanFactory entityServiceBeanFactory; private DefaultEntityServiceRegistry entityServiceRegistry;
@Test @Test
public void givenAllEntityTypes_whenGetServiceByEntityTypeCalled_thenNoExceptionsThrows() { public void givenAllEntityTypes_whenGetServiceByEntityTypeCalled_thenAllBeansExists() {
for (EntityType entityType : EntityType.values()) { for (EntityType entityType : EntityType.values()) {
Assertions.assertThatCode(() -> entityServiceBeanFactory.getServiceByEntityType(entityType)) EntityDaoService entityDaoService = entityServiceRegistry.getServiceByEntityType(entityType);
.doesNotThrowAnyException(); Assert.assertNotNull(entityDaoService);
} }
} }
@Test @Test
public void givenRuleNodeEntityType_whenGetServiceByEntityTypeCalled_thenReturnedRuleChainDaoService() { public void givenRuleNodeEntityType_whenGetServiceByEntityTypeCalled_thenReturnedRuleChainService() {
Assert.assertTrue(entityServiceBeanFactory.getServiceByEntityType(EntityType.RULE_NODE) instanceof BaseRuleChainService); Assert.assertTrue(entityServiceRegistry.getServiceByEntityType(EntityType.RULE_NODE) instanceof RuleChainService);
} }
} }

4
dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceBeanFactorySqlTest.java → dao/src/test/java/org/thingsboard/server/dao/service/sql/EntityServiceRegistrySqlTest.java

@ -15,10 +15,10 @@
*/ */
package org.thingsboard.server.dao.service.sql; 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; import org.thingsboard.server.dao.service.DaoSqlTest;
@DaoSqlTest @DaoSqlTest
public class EntityServiceBeanFactorySqlTest extends BaseEntityServiceBeanFactoryTest { public class EntityServiceRegistrySqlTest extends BaseEntityServiceRegistryTest {
} }
Loading…
Cancel
Save