Browse Source

refactoring after review

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

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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
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 SimpleEntityService { public interface AlarmService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
public interface AssetProfileService extends SimpleEntityService { public interface AssetProfileService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface AssetService extends SimpleEntityService { public interface AssetService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface AuditLogService extends SimpleEntityService { public interface AuditLogService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.Optional; import java.util.Optional;
public interface CustomerService extends SimpleEntityService { public interface CustomerService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface DashboardService extends SimpleEntityService { public interface DashboardService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
public interface DeviceProfileService extends SimpleEntityService { public interface DeviceProfileService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
public interface DeviceService extends SimpleEntityService { public interface DeviceService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface EdgeService extends SimpleEntityService { public interface EdgeService extends TbEntityService {
Edge findEdgeById(TenantId tenantId, EdgeId edgeId); Edge findEdgeById(TenantId tenantId, EdgeId edgeId);

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

@ -15,7 +15,6 @@
*/ */
package org.thingsboard.server.dao.entity; package org.thingsboard.server.dao.entity;
import com.google.common.util.concurrent.ListenableFuture;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
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;
@ -28,7 +27,7 @@ import java.util.Optional;
public interface EntityService { public interface EntityService {
ListenableFuture<Optional<String>> fetchEntityNameAsync(TenantId tenantId, EntityId entityId); Optional<String> fetchEntityName(TenantId tenantId, EntityId entityId);
CustomerId fetchEntityCustomerId(TenantId tenantId, EntityId entityId); CustomerId fetchEntityCustomerId(TenantId tenantId, EntityId entityId);

4
common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityServiceBeanFactory.java

@ -31,9 +31,9 @@ public class EntityServiceBeanFactory {
this.beanFactory = beanFactory; this.beanFactory = beanFactory;
} }
public SimpleEntityService getServiceByEntityType(EntityType entityType) { public TbEntityService 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, SimpleEntityService.class); return beanFactory.getBean(beanName, TbEntityService.class);
} }
private String getBeanName(EntityType entityType) { private String getBeanName(EntityType entityType) {

12
common/dao-api/src/main/java/org/thingsboard/server/dao/entity/SimpleEntityService.java → common/dao-api/src/main/java/org/thingsboard/server/dao/entity/TbEntityService.java

@ -15,22 +15,20 @@
*/ */
package org.thingsboard.server.dao.entity; package org.thingsboard.server.dao.entity;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId; 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.TenantId;
import java.util.Optional;
import static org.thingsboard.server.common.data.id.EntityId.NULL_UUID; import static org.thingsboard.server.common.data.id.EntityId.NULL_UUID;
public interface SimpleEntityService { public interface TbEntityService {
CustomerId NULL_CUSTOMER_ID = new CustomerId(NULL_UUID); CustomerId NULL_CUSTOMER_ID = new CustomerId(NULL_UUID);
default ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId);
return Futures.immediateFuture(null);
}
default CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { default CustomerId getCustomerId(TenantId tenantId, EntityId entityId) {
return NULL_CUSTOMER_ID; return NULL_CUSTOMER_ID;

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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
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 SimpleEntityService { public interface EntityViewService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface EventService extends SimpleEntityService { public interface EventService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
public interface OtaPackageService extends SimpleEntityService { public interface OtaPackageService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface QueueService extends SimpleEntityService { public interface QueueService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface ResourceService extends SimpleEntityService { public interface ResourceService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
public interface RpcService extends SimpleEntityService { public interface RpcService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
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 SimpleEntityService { public interface RuleChainService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
public interface TenantProfileService extends SimpleEntityService { public interface TenantProfileService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface TenantService extends SimpleEntityService { public interface TenantService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
public interface ApiUsageStateService extends SimpleEntityService { public interface ApiUsageStateService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
public interface UserService extends SimpleEntityService { public interface UserService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface WidgetTypeService extends SimpleEntityService { public interface WidgetTypeService extends TbEntityService {
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.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import java.util.List; import java.util.List;
public interface WidgetsBundleService extends SimpleEntityService { public interface WidgetsBundleService extends TbEntityService {
WidgetsBundle findWidgetsBundleById(TenantId tenantId, WidgetsBundleId widgetsBundleId); WidgetsBundle findWidgetsBundleById(TenantId tenantId, WidgetsBundleId widgetsBundleId);

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

@ -27,7 +27,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.common.util.ThingsBoardThreadFactory;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.common.data.alarm.Alarm;
import org.thingsboard.server.common.data.alarm.AlarmInfo; import org.thingsboard.server.common.data.alarm.AlarmInfo;
import org.thingsboard.server.common.data.alarm.AlarmQuery; import org.thingsboard.server.common.data.alarm.AlarmQuery;
@ -39,6 +38,7 @@ import org.thingsboard.server.common.data.exception.ApiUsageLimitsExceededExcept
import org.thingsboard.server.common.data.id.AlarmId; import org.thingsboard.server.common.data.id.AlarmId;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId; 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.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;
@ -49,7 +49,7 @@ import org.thingsboard.server.common.data.relation.EntitySearchDirection;
import org.thingsboard.server.common.data.relation.RelationsSearchParameters; import org.thingsboard.server.common.data.relation.RelationsSearchParameters;
import org.thingsboard.server.dao.entity.AbstractEntityService; import org.thingsboard.server.dao.entity.AbstractEntityService;
import org.thingsboard.server.dao.entity.EntityService; import org.thingsboard.server.dao.entity.EntityService;
import org.thingsboard.server.dao.entity.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.service.DataValidator;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -60,6 +60,7 @@ import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
@ -281,14 +282,12 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
public ListenableFuture<AlarmInfo> findAlarmInfoByIdAsync(TenantId tenantId, AlarmId alarmId) { public ListenableFuture<AlarmInfo> findAlarmInfoByIdAsync(TenantId tenantId, AlarmId alarmId) {
log.trace("Executing findAlarmInfoByIdAsync [{}]", alarmId); log.trace("Executing findAlarmInfoByIdAsync [{}]", alarmId);
validateId(alarmId, "Incorrect alarmId " + alarmId); validateId(alarmId, "Incorrect alarmId " + alarmId);
return Futures.transformAsync(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);
return Futures.transform( Optional<String> originatorNameOpt = entityService.fetchEntityName(tenantId, alarmInfo.getOriginator());
entityService.fetchEntityNameAsync(tenantId, alarmInfo.getOriginator()), originatorNameOpt -> { alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "N/A" : originatorNameOpt.get());
alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "N/A" : originatorNameOpt.get()); return alarmInfo;
return alarmInfo;
}, MoreExecutors.directExecutor());
}, MoreExecutors.directExecutor()); }, MoreExecutors.directExecutor());
} }
@ -313,12 +312,9 @@ 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()) {
alarmFutures.add(Futures.transform( Optional<String> originatorNameOpt = entityService.fetchEntityName(tenantId, alarmInfo.getOriginator());
entityService.fetchEntityNameAsync(tenantId, alarmInfo.getOriginator()), originatorNameOpt -> { alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "Deleted" : originatorNameOpt.get());
alarmInfo.setOriginatorName(originatorNameOpt.isEmpty() ? "Deleted" : originatorNameOpt.get()); alarmFutures.add(Futures.immediateFuture(alarmInfo));
return alarmInfo;
}, MoreExecutors.directExecutor()
));
} }
return Futures.transform(Futures.successfulAsList(alarmFutures), return Futures.transform(Futures.successfulAsList(alarmFutures),
alarmInfos -> new PageData<>(alarmInfos, alarms.getTotalPages(), alarms.getTotalElements(), alarmInfos -> new PageData<>(alarmInfos, alarms.getTotalPages(), alarms.getTotalElements(),
@ -410,17 +406,17 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
} }
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findAlarmByIdAsync(tenantId, new AlarmId(entityId.getId())); return Optional.of(findAlarmById(tenantId, new AlarmId(entityId.getId())));
} }
@Override @Override
public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) {
try { try {
Alarm alarm = findAlarmByIdAsync(tenantId, new AlarmId(entityId.getId())).get(); Alarm alarm = findAlarmByIdAsync(tenantId, new AlarmId(entityId.getId())).get();
return alarm != null ? alarm.getCustomerId() : SimpleEntityService.NULL_CUSTOMER_ID; return alarm != null ? alarm.getCustomerId() : TbEntityService.NULL_CUSTOMER_ID;
} catch (Exception e) { } catch (Exception e) {
return SimpleEntityService.NULL_CUSTOMER_ID; return TbEntityService.NULL_CUSTOMER_ID;
} }
} }
} }

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

@ -15,21 +15,19 @@
*/ */
package org.thingsboard.server.dao.asset; package org.thingsboard.server.dao.asset;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.hibernate.exception.ConstraintViolationException; import org.hibernate.exception.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.event.TransactionalEventListener; import org.springframework.transaction.event.TransactionalEventListener;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.asset.AssetProfile;
import org.thingsboard.server.common.data.asset.AssetProfileInfo; import org.thingsboard.server.common.data.asset.AssetProfileInfo;
import org.thingsboard.server.common.data.id.AssetProfileId; import org.thingsboard.server.common.data.id.AssetProfileId;
import org.thingsboard.server.common.data.id.EntityId; 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.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;
@ -42,6 +40,7 @@ import org.thingsboard.server.dao.service.Validator;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
@ -269,8 +268,8 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
} }
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Futures.immediateFuture(findAssetProfileById(tenantId, new AssetProfileId(entityId.getId()))); return Optional.of(findAssetProfileById(tenantId, new AssetProfileId(entityId.getId())));
} }
private PaginatedRemover<TenantId, AssetProfile> tenantAssetProfilesRemover = private PaginatedRemover<TenantId, AssetProfile> tenantAssetProfilesRemover =

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

@ -27,7 +27,6 @@ import org.springframework.transaction.event.TransactionalEventListener;
import org.thingsboard.server.common.data.EntitySubtype; import org.thingsboard.server.common.data.EntitySubtype;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.EntityView;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.asset.AssetInfo; import org.thingsboard.server.common.data.asset.AssetInfo;
@ -39,6 +38,7 @@ import org.thingsboard.server.common.data.id.AssetProfileId;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityId; 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.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;
@ -46,7 +46,7 @@ import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.relation.EntitySearchDirection; import org.thingsboard.server.common.data.relation.EntitySearchDirection;
import org.thingsboard.server.common.data.relation.RelationTypeGroup; import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.dao.entity.AbstractCachedEntityService; import org.thingsboard.server.dao.entity.AbstractCachedEntityService;
import org.thingsboard.server.dao.entity.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.service.DataValidator;
import org.thingsboard.server.dao.service.PaginatedRemover; import org.thingsboard.server.dao.service.PaginatedRemover;
@ -55,6 +55,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.thingsboard.server.dao.DaoUtil.toUUIDs; import static org.thingsboard.server.dao.DaoUtil.toUUIDs;
@ -433,14 +434,14 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
}; };
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findAssetByIdAsync(tenantId, new AssetId(entityId.getId())); return Optional.of(findAssetById(tenantId, new AssetId(entityId.getId())));
} }
@Override @Override
public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) {
Asset asset = findAssetById(tenantId, new AssetId(entityId.getId())); Asset asset = findAssetById(tenantId, new AssetId(entityId.getId()));
return asset != null ? asset.getCustomerId() : SimpleEntityService.NULL_CUSTOMER_ID; return asset != null ? asset.getCustomerId() : TbEntityService.NULL_CUSTOMER_ID;
} }
} }

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

@ -36,6 +36,7 @@ import org.thingsboard.server.common.data.audit.AuditLog;
import org.thingsboard.server.common.data.id.AuditLogId; import org.thingsboard.server.common.data.id.AuditLogId;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId; 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.TenantId;
import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.kv.AttributeKvEntry; import org.thingsboard.server.common.data.kv.AttributeKvEntry;
@ -127,7 +128,7 @@ public class AuditLogServiceImpl implements AuditLogService {
entityName = entity.getName(); entityName = entity.getName();
} else { } else {
try { try {
Optional<String> entityNameOpt = entityService.fetchEntityNameAsync(tenantId, entityId).get(); Optional<String> entityNameOpt = entityService.fetchEntityName(tenantId, entityId);
entityName = entityNameOpt.orElse(entityName); entityName = entityNameOpt.orElse(entityName);
} catch (Exception ignored) { } catch (Exception ignored) {
} }
@ -405,4 +406,9 @@ public class AuditLogServiceImpl implements AuditLogService {
return Futures.allAsList(futures); return Futures.allAsList(futures);
} }
@Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Optional.empty();
}
} }

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

@ -23,14 +23,16 @@ import org.thingsboard.server.common.data.audit.ActionType;
import org.thingsboard.server.common.data.audit.AuditLog; import org.thingsboard.server.common.data.audit.AuditLog;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId; 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.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 java.util.List; import java.util.List;
import java.util.Optional;
@Service @Service("AuditLogDaoService")
@ConditionalOnProperty(prefix = "audit-log", value = "enabled", havingValue = "false") @ConditionalOnProperty(prefix = "audit-log", value = "enabled", havingValue = "false")
public class DummyAuditLogServiceImpl implements AuditLogService { public class DummyAuditLogServiceImpl implements AuditLogService {
@ -58,4 +60,10 @@ public class DummyAuditLogServiceImpl implements AuditLogService {
public <E extends HasName, I extends EntityId> ListenableFuture<List<Void>> logEntityAction(TenantId tenantId, CustomerId customerId, UserId userId, String userName, I entityId, E entity, ActionType actionType, Exception e, Object... additionalInfo) { public <E extends HasName, I extends EntityId> ListenableFuture<List<Void>> logEntityAction(TenantId tenantId, CustomerId customerId, UserId userId, String userName, I entityId, E entity, ActionType actionType, Exception e, Object... additionalInfo) {
return null; return null;
} }
@Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Optional.empty();
}
} }

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

@ -24,9 +24,9 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId; 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.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;
@ -182,13 +182,12 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom
}; };
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findCustomerByIdAsync(tenantId, new CustomerId(entityId.getId())); return Optional.of(findCustomerById(tenantId, new CustomerId(entityId.getId())));
} }
@Override @Override
public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) {
// todo ask Andrew why we are not checking for parent customer.
return new CustomerId(entityId.getId()); return new CustomerId(entityId.getId());
} }
} }

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

@ -24,12 +24,12 @@ import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.Dashboard;
import org.thingsboard.server.common.data.DashboardInfo; import org.thingsboard.server.common.data.DashboardInfo;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityId; 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.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;
@ -44,6 +44,7 @@ import org.thingsboard.server.dao.service.PaginatedRemover;
import org.thingsboard.server.dao.service.Validator; import org.thingsboard.server.dao.service.Validator;
import java.util.List; import java.util.List;
import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
@ -310,8 +311,8 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
}; };
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findDashboardByIdAsync(tenantId, new DashboardId(entityId.getId())); return Optional.of(findDashboardById(tenantId, new DashboardId(entityId.getId())));
} }
private class CustomerDashboardsUnassigner extends PaginatedRemover<Customer, DashboardInfo> { private class CustomerDashboardsUnassigner extends PaginatedRemover<Customer, DashboardInfo> {

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

@ -15,8 +15,6 @@
*/ */
package org.thingsboard.server.dao.device; package org.thingsboard.server.dao.device;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.hibernate.exception.ConstraintViolationException; import org.hibernate.exception.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -30,7 +28,6 @@ import org.thingsboard.server.common.data.DeviceProfileInfo;
import org.thingsboard.server.common.data.DeviceProfileProvisionType; import org.thingsboard.server.common.data.DeviceProfileProvisionType;
import org.thingsboard.server.common.data.DeviceProfileType; import org.thingsboard.server.common.data.DeviceProfileType;
import org.thingsboard.server.common.data.DeviceTransportType; import org.thingsboard.server.common.data.DeviceTransportType;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileConfiguration; import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileConfiguration;
import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileTransportConfiguration; import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileTransportConfiguration;
@ -38,6 +35,7 @@ import org.thingsboard.server.common.data.device.profile.DeviceProfileData;
import org.thingsboard.server.common.data.device.profile.DisabledDeviceProfileProvisionConfiguration; import org.thingsboard.server.common.data.device.profile.DisabledDeviceProfileProvisionConfiguration;
import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.id.DeviceProfileId;
import org.thingsboard.server.common.data.id.EntityId; 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.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;
@ -51,6 +49,7 @@ import org.thingsboard.server.dao.service.Validator;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
@ -291,8 +290,8 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
} }
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Futures.immediateFuture(findDeviceProfileById(tenantId, new DeviceProfileId(entityId.getId()))); return Optional.of(findDeviceProfileById(tenantId, new DeviceProfileId(entityId.getId())));
} }
private PaginatedRemover<TenantId, DeviceProfile> tenantDeviceProfilesRemover = private PaginatedRemover<TenantId, DeviceProfile> tenantDeviceProfilesRemover =

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

@ -37,7 +37,6 @@ import org.thingsboard.server.common.data.DeviceTransportType;
import org.thingsboard.server.common.data.EntitySubtype; import org.thingsboard.server.common.data.EntitySubtype;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.EntityView;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.device.DeviceSearchQuery; import org.thingsboard.server.common.data.device.DeviceSearchQuery;
import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials;
@ -54,6 +53,7 @@ import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.id.DeviceProfileId;
import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityId; 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.TenantId;
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;
@ -67,7 +67,7 @@ import org.thingsboard.server.dao.device.provision.ProvisionFailedException;
import org.thingsboard.server.dao.device.provision.ProvisionRequest; import org.thingsboard.server.dao.device.provision.ProvisionRequest;
import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus; import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus;
import org.thingsboard.server.dao.entity.AbstractCachedEntityService; import org.thingsboard.server.dao.entity.AbstractCachedEntityService;
import org.thingsboard.server.dao.entity.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import org.thingsboard.server.dao.event.EventService; import org.thingsboard.server.dao.event.EventService;
import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.service.DataValidator;
@ -78,6 +78,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -709,13 +710,13 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
}; };
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findDeviceByIdAsync(tenantId, new DeviceId(entityId.getId())); return Optional.of(findDeviceById(tenantId, new DeviceId(entityId.getId())));
} }
@Override @Override
public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) {
Device device = findDeviceById(tenantId, new DeviceId(entityId.getId())); Device device = findDeviceById(tenantId, new DeviceId(entityId.getId()));
return device != null ? device.getCustomerId() : SimpleEntityService.NULL_CUSTOMER_ID; return device != null ? device.getCustomerId() : TbEntityService.NULL_CUSTOMER_ID;
} }
} }

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

@ -32,7 +32,6 @@ import org.springframework.transaction.event.TransactionalEventListener;
import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.common.data.EntitySubtype; import org.thingsboard.server.common.data.EntitySubtype;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.Edge;
@ -41,6 +40,7 @@ import org.thingsboard.server.common.data.edge.EdgeSearchQuery;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.IdBased; import org.thingsboard.server.common.data.id.IdBased;
import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.RuleChainId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
@ -53,7 +53,7 @@ import org.thingsboard.server.common.data.relation.EntitySearchDirection;
import org.thingsboard.server.common.data.rule.RuleChain; import org.thingsboard.server.common.data.rule.RuleChain;
import org.thingsboard.server.common.data.rule.RuleNode; import org.thingsboard.server.common.data.rule.RuleNode;
import org.thingsboard.server.dao.entity.AbstractCachedEntityService; import org.thingsboard.server.dao.entity.AbstractCachedEntityService;
import org.thingsboard.server.dao.entity.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.dao.relation.RelationService; import org.thingsboard.server.dao.relation.RelationService;
import org.thingsboard.server.dao.rule.RuleChainService; import org.thingsboard.server.dao.rule.RuleChainService;
@ -523,13 +523,13 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
} }
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findEdgeByIdAsync(tenantId, new EdgeId(entityId.getId())); return Optional.of(findEdgeById(tenantId, new EdgeId(entityId.getId())));
} }
@Override @Override
public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) {
Edge edge = findEdgeById(tenantId, new EdgeId(entityId.getId())); Edge edge = findEdgeById(tenantId, new EdgeId(entityId.getId()));
return edge != null ? edge.getCustomerId() : SimpleEntityService.NULL_CUSTOMER_ID; return edge != null ? edge.getCustomerId() : TbEntityService.NULL_CUSTOMER_ID;
} }
} }

37
dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java

@ -15,10 +15,6 @@
*/ */
package org.thingsboard.server.dao.entity; package org.thingsboard.server.dao.entity;
import com.google.common.base.Function;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -26,6 +22,7 @@ import org.springframework.util.CollectionUtils;
import org.thingsboard.server.common.data.HasName; import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId; 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.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.query.EntityCountQuery; import org.thingsboard.server.common.data.query.EntityCountQuery;
@ -34,18 +31,7 @@ import org.thingsboard.server.common.data.query.EntityDataPageLink;
import org.thingsboard.server.common.data.query.EntityDataQuery; import org.thingsboard.server.common.data.query.EntityDataQuery;
import org.thingsboard.server.common.data.query.EntityFilterType; import org.thingsboard.server.common.data.query.EntityFilterType;
import org.thingsboard.server.common.data.query.RelationsQueryFilter; import org.thingsboard.server.common.data.query.RelationsQueryFilter;
import org.thingsboard.server.dao.alarm.AlarmService;
import org.thingsboard.server.dao.asset.AssetService;
import org.thingsboard.server.dao.customer.CustomerService;
import org.thingsboard.server.dao.dashboard.DashboardService;
import org.thingsboard.server.dao.device.DeviceService;
import org.thingsboard.server.dao.entityview.EntityViewService;
import org.thingsboard.server.dao.exception.IncorrectParameterException; import org.thingsboard.server.dao.exception.IncorrectParameterException;
import org.thingsboard.server.dao.ota.OtaPackageService;
import org.thingsboard.server.dao.resource.ResourceService;
import org.thingsboard.server.dao.rule.RuleChainService;
import org.thingsboard.server.dao.tenant.TenantService;
import org.thingsboard.server.dao.user.UserService;
import java.util.Optional; import java.util.Optional;
@ -86,18 +72,25 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
} }
@Override @Override
public ListenableFuture<Optional<String>> fetchEntityNameAsync(TenantId tenantId, EntityId entityId) { public Optional<String> fetchEntityName(TenantId tenantId, EntityId entityId) {
log.trace("Executing fetchEntityNameAsync [{}]", entityId); log.trace("Executing fetchEntityName [{}]", entityId);
SimpleEntityService fetchEntityService = entityServiceBeanFactory.getServiceByEntityType(entityId.getEntityType()); TbEntityService tbEntityService = entityServiceBeanFactory.getServiceByEntityType(entityId.getEntityType());
return Futures.transform(fetchEntityService.fetchHasNameEntityAsync(tenantId, entityId), Optional<HasId<?>> hasIdOpt = tbEntityService.fetchEntity(tenantId, entityId);
hasName -> hasName != null ? Optional.of(hasName.getName()) : Optional.empty(), MoreExecutors.directExecutor()); if (hasIdOpt.isPresent()) {
HasId<?> hasId = hasIdOpt.get();
if (hasId instanceof HasName) {
HasName hasName = (HasName) hasId;
return Optional.of(hasName.getName());
}
}
return Optional.empty();
} }
@Override @Override
public CustomerId fetchEntityCustomerId(TenantId tenantId, EntityId entityId) { public CustomerId fetchEntityCustomerId(TenantId tenantId, EntityId entityId) {
log.trace("Executing fetchEntityCustomerId [{}]", entityId); log.trace("Executing fetchEntityCustomerId [{}]", entityId);
SimpleEntityService fetchEntityService = entityServiceBeanFactory.getServiceByEntityType(entityId.getEntityType()); TbEntityService tbEntityService = entityServiceBeanFactory.getServiceByEntityType(entityId.getEntityType());
return fetchEntityService.getCustomerId(tenantId, entityId); return tbEntityService.getCustomerId(tenantId, entityId);
} }
private static void validateEntityCountQuery(EntityCountQuery query) { private static void validateEntityCountQuery(EntityCountQuery query) {

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

@ -28,7 +28,6 @@ import org.thingsboard.server.common.data.EntitySubtype;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.EntityView;
import org.thingsboard.server.common.data.EntityViewInfo; import org.thingsboard.server.common.data.EntityViewInfo;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.entityview.EntityViewSearchQuery; import org.thingsboard.server.common.data.entityview.EntityViewSearchQuery;
@ -36,6 +35,7 @@ import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.id.HasId;
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;
@ -43,7 +43,7 @@ import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.relation.EntitySearchDirection; import org.thingsboard.server.common.data.relation.EntitySearchDirection;
import org.thingsboard.server.common.data.relation.RelationTypeGroup; import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.dao.entity.AbstractCachedEntityService; import org.thingsboard.server.dao.entity.AbstractCachedEntityService;
import org.thingsboard.server.dao.entity.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.service.DataValidator;
import org.thingsboard.server.dao.service.PaginatedRemover; import org.thingsboard.server.dao.service.PaginatedRemover;
@ -54,6 +54,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
@ -412,13 +413,13 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
}; };
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findEntityViewByIdAsync(tenantId, new EntityViewId(entityId.getId())); return Optional.of(findEntityViewById(tenantId, new EntityViewId(entityId.getId())));
} }
@Override @Override
public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) {
EntityView entityView = findEntityViewById(tenantId, new EntityViewId(entityId.getId())); EntityView entityView = findEntityViewById(tenantId, new EntityViewId(entityId.getId()));
return entityView != null ? entityView.getCustomerId() : SimpleEntityService.NULL_CUSTOMER_ID; return entityView != null ? entityView.getCustomerId() : TbEntityService.NULL_CUSTOMER_ID;
} }
} }

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

@ -31,12 +31,14 @@ import org.thingsboard.server.common.data.event.LifecycleEvent;
import org.thingsboard.server.common.data.event.RuleChainDebugEvent; import org.thingsboard.server.common.data.event.RuleChainDebugEvent;
import org.thingsboard.server.common.data.event.RuleNodeDebugEvent; import org.thingsboard.server.common.data.event.RuleNodeDebugEvent;
import org.thingsboard.server.common.data.id.EntityId; 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.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.service.DataValidator; import org.thingsboard.server.dao.service.DataValidator;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -148,4 +150,10 @@ public class BaseEventService implements EventService {
private List<EventInfo> convert(EntityType entityType, List<? extends Event> list) { private List<EventInfo> convert(EntityType entityType, List<? extends Event> list) {
return list == null ? null : list.stream().map(e -> e.toInfo(entityType)).collect(Collectors.toList()); return list == null ? null : list.stream().map(e -> e.toInfo(entityType)).collect(Collectors.toList());
} }
@Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Optional.empty();
}
} }

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

@ -24,12 +24,12 @@ import org.hibernate.exception.ConstraintViolationException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.event.TransactionalEventListener; import org.springframework.transaction.event.TransactionalEventListener;
import org.thingsboard.server.cache.ota.OtaPackageDataCache; import org.thingsboard.server.cache.ota.OtaPackageDataCache;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.OtaPackage; import org.thingsboard.server.common.data.OtaPackage;
import org.thingsboard.server.common.data.OtaPackageInfo; import org.thingsboard.server.common.data.OtaPackageInfo;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.id.DeviceProfileId;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.OtaPackageId; import org.thingsboard.server.common.data.id.OtaPackageId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; import org.thingsboard.server.common.data.ota.ChecksumAlgorithm;
@ -237,8 +237,8 @@ public class BaseOtaPackageService extends AbstractCachedEntityService<OtaPackag
}; };
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findOtaPackageInfoByIdAsync(tenantId, new OtaPackageId(entityId.getId())); return Optional.of(findOtaPackageInfoById(tenantId, new OtaPackageId(entityId.getId())));
} }
} }

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

@ -15,17 +15,15 @@
*/ */
package org.thingsboard.server.dao.queue; package org.thingsboard.server.dao.queue;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.hibernate.exception.ConstraintViolationException; import org.hibernate.exception.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.TenantProfile;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.QueueId; import org.thingsboard.server.common.data.id.QueueId;
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;
@ -39,6 +37,7 @@ import org.thingsboard.server.dao.service.Validator;
import org.thingsboard.server.dao.tenant.TbTenantProfileCache; import org.thingsboard.server.dao.tenant.TbTenantProfileCache;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service("QueueDaoService") @Service("QueueDaoService")
@Slf4j @Slf4j
@ -124,8 +123,8 @@ public class BaseQueueService extends AbstractEntityService implements QueueServ
} }
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Futures.immediateFuture(findQueueById(tenantId, new QueueId(entityId.getId()))); return Optional.of(findQueueById(tenantId, new QueueId(entityId.getId())));
} }
private PaginatedRemover<TenantId, Queue> tenantQueuesRemover = private PaginatedRemover<TenantId, Queue> tenantQueuesRemover =

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

@ -72,7 +72,7 @@ import static org.thingsboard.server.dao.service.Validator.validateId;
/** /**
* Created by ashvayka on 28.04.17. * Created by ashvayka on 28.04.17.
*/ */
@Service("RelationDaoService") @Service()
@Slf4j @Slf4j
public class BaseRelationService implements RelationService { public class BaseRelationService implements RelationService {
@ -375,12 +375,10 @@ 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) {
ListenableFuture<Optional<String>> entityNameFuture = entityService.fetchEntityNameAsync(tenantId, entityIdGetter.apply(relation)); Optional<String> entityNameOpt = entityService.fetchEntityName(tenantId, entityIdGetter.apply(relation));
return Futures.transform(entityNameFuture, nameOpt -> { EntityRelationInfo relationInfo = new EntityRelationInfo(relation);
EntityRelationInfo entityRelationInfo1 = new EntityRelationInfo(relation); entityNameSetter.accept(relationInfo, entityNameOpt.orElse("N/A"));
entityNameSetter.accept(entityRelationInfo1, nameOpt.orElse("N/A")); return Futures.immediateFuture(relationInfo);
return entityRelationInfo1;
}, MoreExecutors.directExecutor());
} }
@Override @Override

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

@ -20,11 +20,11 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.hibernate.exception.ConstraintViolationException; import org.hibernate.exception.ConstraintViolationException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.ResourceType;
import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResource;
import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.TbResourceInfo;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.TbResourceId; 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;
@ -137,8 +137,8 @@ public class BaseResourceService implements ResourceService {
} }
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findResourceInfoByIdAsync(tenantId, new TbResourceId(entityId.getId())); return Optional.of(findResourceInfoById(tenantId, new TbResourceId(entityId.getId())));
} }
@Override @Override

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

@ -20,6 +20,8 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.RpcId; import org.thingsboard.server.common.data.id.RpcId;
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;
@ -28,6 +30,8 @@ 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.service.PaginatedRemover; import org.thingsboard.server.dao.service.PaginatedRemover;
import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
import static org.thingsboard.server.dao.service.Validator.validatePageLink; import static org.thingsboard.server.dao.service.Validator.validatePageLink;
@ -93,6 +97,11 @@ public class BaseRpcService implements RpcService {
return rpcDao.findAllByDeviceId(tenantId, deviceId, pageLink); return rpcDao.findAllByDeviceId(tenantId, deviceId, pageLink);
} }
@Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Optional.of(findById(tenantId, new RpcId(entityId.getId())));
}
private PaginatedRemover<TenantId, Rpc> tenantRpcRemover = private PaginatedRemover<TenantId, Rpc> tenantRpcRemover =
new PaginatedRemover<>() { new PaginatedRemover<>() {
@Override @Override

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

@ -29,10 +29,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.common.data.BaseData; import org.thingsboard.server.common.data.BaseData;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.HasId;
import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.RuleChainId;
import org.thingsboard.server.common.data.id.RuleNodeId; import org.thingsboard.server.common.data.id.RuleNodeId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
@ -761,11 +761,10 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
if (EntityType.RULE_NODE.equals(entityId.getEntityType())) { return EntityType.RULE_NODE.equals(entityId.getEntityType()) ?
return findRuleNodeByIdAsync(tenantId, new RuleNodeId(entityId.getId())); Optional.of(findRuleNodeById(tenantId, new RuleNodeId(entityId.getId()))) :
} Optional.of(findRuleChainById(tenantId, new RuleChainId(entityId.getId())));
return findRuleChainByIdAsync(tenantId, new RuleChainId(entityId.getId()));
} }
private List<EntityRelation> getRuleChainToNodeRelations(TenantId tenantId, RuleChainId ruleChainId) { private List<EntityRelation> getRuleChainToNodeRelations(TenantId tenantId, RuleChainId ruleChainId) {

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

@ -15,17 +15,15 @@
*/ */
package org.thingsboard.server.dao.tenant; package org.thingsboard.server.dao.tenant;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.hibernate.exception.ConstraintViolationException; import org.hibernate.exception.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.event.TransactionalEventListener; import org.springframework.transaction.event.TransactionalEventListener;
import org.thingsboard.server.common.data.EntityInfo; import org.thingsboard.server.common.data.EntityInfo;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.TenantProfile;
import org.thingsboard.server.common.data.id.EntityId; 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.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;
@ -40,6 +38,7 @@ import org.thingsboard.server.dao.service.Validator;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
@ -209,8 +208,8 @@ public class TenantProfileServiceImpl extends AbstractCachedEntityService<Tenant
} }
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Futures.immediateFuture(findTenantProfileById(tenantId, new TenantProfileId(entityId.getId()))); return Optional.of(findTenantProfileById(tenantId, new TenantProfileId(entityId.getId())));
} }
private final PaginatedRemover<String, TenantProfile> tenantProfilesRemover = private final PaginatedRemover<String, TenantProfile> tenantProfilesRemover =

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

@ -23,11 +23,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.event.TransactionalEventListener; import org.springframework.transaction.event.TransactionalEventListener;
import org.thingsboard.server.cache.TbTransactionalCache; import org.thingsboard.server.cache.TbTransactionalCache;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.TenantInfo; import org.thingsboard.server.common.data.TenantInfo;
import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.TenantProfile;
import org.thingsboard.server.common.data.id.EntityId; 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.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;
@ -53,6 +53,7 @@ import org.thingsboard.server.dao.user.UserService;
import org.thingsboard.server.dao.widget.WidgetsBundleService; import org.thingsboard.server.dao.widget.WidgetsBundleService;
import java.util.List; import java.util.List;
import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
@ -260,7 +261,7 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
}; };
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findTenantByIdAsync(tenantId, new TenantId(entityId.getId())); return Optional.of(findTenantById(new TenantId(entityId.getId())));
} }
} }

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

@ -27,6 +27,7 @@ import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.TenantProfile;
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.HasId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.kv.BasicTsKvEntry; import org.thingsboard.server.common.data.kv.BasicTsKvEntry;
import org.thingsboard.server.common.data.kv.LongDataEntry; import org.thingsboard.server.common.data.kv.LongDataEntry;
@ -42,6 +43,7 @@ import org.thingsboard.server.dao.timeseries.TimeseriesService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
@ -161,4 +163,8 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A
return apiUsageStateDao.findById(tenantId, id.getId()); return apiUsageStateDao.findById(tenantId, id.getId());
} }
@Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Optional.of(findApiUsageStateById(tenantId, new ApiUsageStateId(entityId.getId())));
}
} }

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

@ -28,11 +28,11 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.EntityId; 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.TenantId;
import org.thingsboard.server.common.data.id.UserCredentialsId; import org.thingsboard.server.common.data.id.UserCredentialsId;
import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.id.UserId;
@ -41,13 +41,14 @@ 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.common.data.security.event.UserCredentialsInvalidationEvent; import org.thingsboard.server.common.data.security.event.UserCredentialsInvalidationEvent;
import org.thingsboard.server.dao.entity.AbstractEntityService; import org.thingsboard.server.dao.entity.AbstractEntityService;
import org.thingsboard.server.dao.entity.SimpleEntityService; import org.thingsboard.server.dao.entity.TbEntityService;
import org.thingsboard.server.dao.exception.IncorrectParameterException; import org.thingsboard.server.dao.exception.IncorrectParameterException;
import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.service.DataValidator;
import org.thingsboard.server.dao.service.PaginatedRemover; import org.thingsboard.server.dao.service.PaginatedRemover;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
import static org.thingsboard.server.dao.service.Validator.validatePageLink; import static org.thingsboard.server.dao.service.Validator.validatePageLink;
@ -401,14 +402,14 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
}; };
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return findUserByIdAsync(tenantId, new UserId(entityId.getId())); return Optional.of(findUserById(tenantId, new UserId(entityId.getId())));
} }
@Override @Override
public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) { public CustomerId getCustomerId(TenantId tenantId, EntityId entityId) {
User user = findUserById(tenantId, new UserId(entityId.getId())); User user = findUserById(tenantId, new UserId(entityId.getId()));
return user != null ? user.getCustomerId() : SimpleEntityService.NULL_CUSTOMER_ID; return user != null ? user.getCustomerId() : TbEntityService.NULL_CUSTOMER_ID;
} }
} }

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

@ -328,8 +328,8 @@ public abstract class AbstractBufferedRateExecutor<T extends AsyncTask, F extend
if (printTenantNames) { if (printTenantNames) {
String name = tenantNamesCache.computeIfAbsent(tenantId, tId -> { String name = tenantNamesCache.computeIfAbsent(tenantId, tId -> {
try { try {
ListenableFuture<Optional<String>> nameOpt = entityService.fetchEntityNameAsync(TenantId.SYS_TENANT_ID, tenantId); Optional<String> entityNameOpt = entityService.fetchEntityName(TenantId.SYS_TENANT_ID, tenantId);
return nameOpt.get().orElse("N/A"); 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 "N/A";

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

@ -18,6 +18,8 @@ package org.thingsboard.server.dao.widget;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
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.TenantId;
import org.thingsboard.server.common.data.id.WidgetTypeId; import org.thingsboard.server.common.data.id.WidgetTypeId;
import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.common.data.widget.WidgetType;
@ -27,6 +29,7 @@ import org.thingsboard.server.dao.service.DataValidator;
import org.thingsboard.server.dao.service.Validator; import org.thingsboard.server.dao.service.Validator;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service("WidgetTypeDaoService") @Service("WidgetTypeDaoService")
@Slf4j @Slf4j
@ -112,4 +115,9 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
} }
} }
@Override
public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
findWidgetTypeById(tenantId, new WidgetTypeId(entityId.getId()));
return Optional.of(findWidgetTypeById(tenantId, new WidgetTypeId(entityId.getId())));
}
} }

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

@ -15,13 +15,11 @@
*/ */
package org.thingsboard.server.dao.widget; package org.thingsboard.server.dao.widget;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.id.EntityId; 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.TenantId;
import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.id.WidgetsBundleId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
@ -35,6 +33,7 @@ import org.thingsboard.server.dao.service.Validator;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service("WidgetsBundleDaoService") @Service("WidgetsBundleDaoService")
@Slf4j @Slf4j
@ -156,8 +155,8 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
} }
@Override @Override
public ListenableFuture<? extends HasName> fetchHasNameEntityAsync(TenantId tenantId, EntityId entityId) { public Optional<HasId<?>> fetchEntity(TenantId tenantId, EntityId entityId) {
return Futures.immediateFuture(findWidgetsBundleById(tenantId, new WidgetsBundleId(entityId.getId()))); return Optional.of(findWidgetsBundleById(tenantId, new WidgetsBundleId(entityId.getId())));
} }
private PaginatedRemover<TenantId, WidgetsBundle> tenantWidgetsBundleRemover = private PaginatedRemover<TenantId, WidgetsBundle> tenantWidgetsBundleRemover =

Loading…
Cancel
Save