Browse Source

Merge pull request #10332 from zzzeebra/feature/validator-optimization

[3.7] Validator performance optimization
pull/10512/head
Andrew Shvayka 3 years ago
committed by GitHub
parent
commit
7480035556
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 8
      application/src/main/java/org/thingsboard/server/controller/BaseController.java
  2. 4
      application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java
  3. 2
      common/data/src/main/java/org/thingsboard/server/common/data/id/UUIDBased.java
  4. 4
      dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java
  5. 14
      dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java
  6. 24
      dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java
  7. 80
      dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java
  8. 6
      dao/src/main/java/org/thingsboard/server/dao/attributes/AttributeUtils.java
  9. 8
      dao/src/main/java/org/thingsboard/server/dao/attributes/BaseAttributesService.java
  10. 4
      dao/src/main/java/org/thingsboard/server/dao/attributes/CachedAttributesService.java
  11. 14
      dao/src/main/java/org/thingsboard/server/dao/audit/AuditLogServiceImpl.java
  12. 14
      dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java
  13. 32
      dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java
  14. 2
      dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java
  15. 4
      dao/src/main/java/org/thingsboard/server/dao/device/DeviceCredentialsServiceImpl.java
  16. 26
      dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java
  17. 68
      dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java
  18. 64
      dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java
  19. 8
      dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java
  20. 68
      dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java
  21. 6
      dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2ConfigTemplateServiceImpl.java
  22. 6
      dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2ServiceImpl.java
  23. 14
      dao/src/main/java/org/thingsboard/server/dao/ota/BaseOtaPackageService.java
  24. 8
      dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueStatsService.java
  25. 2
      dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java
  26. 2
      dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java
  27. 20
      dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java
  28. 18
      dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java
  29. 12
      dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java
  30. 96
      dao/src/main/java/org/thingsboard/server/dao/service/Validator.java
  31. 6
      dao/src/main/java/org/thingsboard/server/dao/settings/AdminSettingsServiceImpl.java
  32. 9
      dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java
  33. 8
      dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java
  34. 16
      dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java
  35. 42
      dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java
  36. 8
      dao/src/main/java/org/thingsboard/server/dao/user/UserSettingsServiceImpl.java
  37. 40
      dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java
  38. 18
      dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java
  39. 130
      dao/src/test/java/org/thingsboard/server/dao/service/ValidatorTest.java

8
application/src/main/java/org/thingsboard/server/controller/BaseController.java

@ -506,7 +506,7 @@ public abstract class BaseController {
TenantProfile checkTenantProfileId(TenantProfileId tenantProfileId, Operation operation) throws ThingsboardException {
try {
validateId(tenantProfileId, "Incorrect tenantProfileId " + tenantProfileId);
validateId(tenantProfileId, id -> "Incorrect tenantProfileId " + id);
TenantProfile tenantProfile = tenantProfileService.findTenantProfileById(getTenantId(), tenantProfileId);
checkNotNull(tenantProfile, "Tenant profile with id [" + tenantProfileId + "] is not found");
accessControlService.checkPermission(getCurrentUser(), Resource.TENANT_PROFILE, operation);
@ -541,7 +541,7 @@ public abstract class BaseController {
if (entityId == null) {
throw new ThingsboardException("Parameter entityId can't be empty!", ThingsboardErrorCode.BAD_REQUEST_PARAMS);
}
validateId(entityId.getId(), "Incorrect entityId " + entityId);
validateId(entityId.getId(), id -> "Incorrect entityId " + id);
switch (entityId.getEntityType()) {
case ALARM:
checkAlarmId(new AlarmId(entityId.getId()), operation);
@ -668,7 +668,7 @@ public abstract class BaseController {
AlarmComment checkAlarmCommentId(AlarmCommentId alarmCommentId, AlarmId alarmId) throws ThingsboardException {
try {
validateId(alarmCommentId, "Incorrect alarmCommentId " + alarmCommentId);
validateId(alarmCommentId, id -> "Incorrect alarmCommentId " + id);
AlarmComment alarmComment = alarmCommentService.findAlarmCommentByIdAsync(getCurrentUser().getTenantId(), alarmCommentId).get();
checkNotNull(alarmComment, "Alarm comment with id [" + alarmCommentId + "] is not found");
if (!alarmId.equals(alarmComment.getAlarmId())) {
@ -736,7 +736,7 @@ public abstract class BaseController {
}
protected RuleNode checkRuleNode(RuleNodeId ruleNodeId, Operation operation) throws ThingsboardException {
validateId(ruleNodeId, "Incorrect ruleNodeId " + ruleNodeId);
validateId(ruleNodeId, id -> "Incorrect ruleNodeId " + id);
RuleNode ruleNode = ruleChainService.findRuleNodeById(getTenantId(), ruleNodeId);
checkNotNull(ruleNode, "Rule node with id [" + ruleNodeId + "] is not found");
checkRuleChain(ruleNode.getRuleChainId(), operation);

4
application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java

@ -95,7 +95,7 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements
@Override
public List<LwM2mObject> findLwM2mObject(TenantId tenantId, String sortOrder, String sortProperty, String[] objectIds) {
log.trace("Executing findByTenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
List<TbResource> resources = resourceService.findTenantResourcesByResourceTypeAndObjectIds(tenantId, ResourceType.LWM2M_MODEL,
objectIds);
return resources.stream()
@ -107,7 +107,7 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements
@Override
public List<LwM2mObject> findLwM2mObjectPage(TenantId tenantId, String sortProperty, String sortOrder, PageLink pageLink) {
log.trace("Executing findByTenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
PageData<TbResource> resourcePageData = resourceService.findTenantResourcesByResourceTypeAndPageLink(tenantId, ResourceType.LWM2M_MODEL, pageLink);
return resourcePageData.getData().stream()
.flatMap(s -> Stream.ofNullable(toLwM2mObject(s, false)))

2
common/data/src/main/java/org/thingsboard/server/common/data/id/UUIDBased.java

@ -68,7 +68,7 @@ public abstract class UUIDBased implements HasUUID, Serializable {
@Override
public String toString() {
return id.toString();
return String.valueOf(id);
}
}

4
dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java

@ -82,14 +82,14 @@ public class BaseAlarmCommentService extends AbstractEntityService implements Al
@Override
public ListenableFuture<AlarmComment> findAlarmCommentByIdAsync(TenantId tenantId, AlarmCommentId alarmCommentId) {
log.trace("Executing findAlarmCommentByIdAsync by alarmCommentId [{}]", alarmCommentId);
validateId(alarmCommentId, "Incorrect alarmCommentId " + alarmCommentId);
validateId(alarmCommentId, id -> "Incorrect alarmCommentId " + id);
return alarmCommentDao.findAlarmCommentByIdAsync(tenantId, alarmCommentId.getId());
}
@Override
public AlarmComment findAlarmCommentById(TenantId tenantId, AlarmCommentId alarmCommentId) {
log.trace("Executing findAlarmCommentByIdAsync by alarmCommentId [{}]", alarmCommentId);
validateId(alarmCommentId, "Incorrect alarmCommentId " + alarmCommentId);
validateId(alarmCommentId, id -> "Incorrect alarmCommentId " + id);
return alarmCommentDao.findById(tenantId, alarmCommentId.getId());
}

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

@ -169,7 +169,7 @@ public class BaseAlarmService extends AbstractCachedEntityService<TenantId, Page
@Override
public PageData<AlarmData> findAlarmDataByQueryForEntities(TenantId tenantId,
AlarmDataQuery query, Collection<EntityId> orderedEntityIds) {
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateEntityDataPageLink(query.getPageLink());
return alarmDao.findAlarmDataByQueryForEntities(tenantId, query, orderedEntityIds);
}
@ -261,21 +261,21 @@ public class BaseAlarmService extends AbstractCachedEntityService<TenantId, Page
@Override
public Alarm findAlarmById(TenantId tenantId, AlarmId alarmId) {
log.trace("Executing findAlarmById [{}]", alarmId);
validateId(alarmId, "Incorrect alarmId " + alarmId);
validateId(alarmId, id -> "Incorrect alarmId " + id);
return alarmDao.findAlarmById(tenantId, alarmId.getId());
}
@Override
public ListenableFuture<Alarm> findAlarmByIdAsync(TenantId tenantId, AlarmId alarmId) {
log.trace("Executing findAlarmByIdAsync [{}]", alarmId);
validateId(alarmId, "Incorrect alarmId " + alarmId);
validateId(alarmId, id -> "Incorrect alarmId " + id);
return alarmDao.findAlarmByIdAsync(tenantId, alarmId.getId());
}
@Override
public AlarmInfo findAlarmInfoById(TenantId tenantId, AlarmId alarmId) {
log.trace("Executing findAlarmInfoByIdAsync [{}]", alarmId);
validateId(alarmId, "Incorrect alarmId " + alarmId);
validateId(alarmId, id -> "Incorrect alarmId " + id);
return alarmDao.findAlarmInfoById(tenantId, alarmId.getId());
}
@ -302,7 +302,7 @@ public class BaseAlarmService extends AbstractCachedEntityService<TenantId, Page
@Override
public PageData<AlarmId> findAlarmIdsByAssigneeId(TenantId tenantId, UserId userId, PageLink pageLink) {
log.trace("[{}] Executing findAlarmIdsByAssigneeId [{}]", tenantId, userId);
validateId(userId, "Incorrect userId " + userId);
validateId(userId, id -> "Incorrect userId " + id);
return alarmDao.findAlarmIdsByAssigneeId(tenantId, userId.getId(), pageLink);
}
@ -336,14 +336,14 @@ public class BaseAlarmService extends AbstractCachedEntityService<TenantId, Page
@Override
public long countAlarmsByQuery(TenantId tenantId, CustomerId customerId, AlarmCountQuery query) {
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return alarmDao.countAlarmsByQuery(tenantId, customerId, query);
}
@Override
public PageData<EntitySubtype> findAlarmTypesByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findAlarmTypesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
if (DEFAULT_ALARM_TYPES_PAGE_LINK.equals(pageLink)) {
return cache.getAndPutInTransaction(tenantId, () ->
alarmDao.findTenantAlarmTypes(tenantId.getId(), pageLink), false);

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

@ -103,7 +103,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public AssetProfile findAssetProfileById(TenantId tenantId, AssetProfileId assetProfileId, boolean putInCache) {
log.trace("Executing findAssetProfileById [{}]", assetProfileId);
Validator.validateId(assetProfileId, INCORRECT_ASSET_PROFILE_ID + assetProfileId);
Validator.validateId(assetProfileId, id -> INCORRECT_ASSET_PROFILE_ID + id);
return cache.getOrFetchFromDB(AssetProfileCacheKey.fromId(assetProfileId),
() -> assetProfileDao.findById(tenantId, assetProfileId.getId()), true, putInCache);
}
@ -116,7 +116,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public AssetProfile findAssetProfileByName(TenantId tenantId, String profileName, boolean putInCache) {
log.trace("Executing findAssetProfileByName [{}][{}]", tenantId, profileName);
Validator.validateString(profileName, INCORRECT_ASSET_PROFILE_NAME + profileName);
Validator.validateString(profileName, s -> INCORRECT_ASSET_PROFILE_NAME + s);
return cache.getOrFetchFromDB(AssetProfileCacheKey.fromName(tenantId, profileName),
() -> assetProfileDao.findByName(tenantId, profileName), false, putInCache);
}
@ -124,7 +124,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public AssetProfileInfo findAssetProfileInfoById(TenantId tenantId, AssetProfileId assetProfileId) {
log.trace("Executing findAssetProfileInfoById [{}]", assetProfileId);
Validator.validateId(assetProfileId, INCORRECT_ASSET_PROFILE_ID + assetProfileId);
Validator.validateId(assetProfileId, id -> INCORRECT_ASSET_PROFILE_ID + id);
return toAssetProfileInfo(findAssetProfileById(tenantId, assetProfileId));
}
@ -179,7 +179,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Transactional
public void deleteAssetProfile(TenantId tenantId, AssetProfileId assetProfileId) {
log.trace("Executing deleteAssetProfile [{}]", assetProfileId);
Validator.validateId(assetProfileId, INCORRECT_ASSET_PROFILE_ID + assetProfileId);
Validator.validateId(assetProfileId, id -> INCORRECT_ASSET_PROFILE_ID + id);
AssetProfile assetProfile = assetProfileDao.findById(tenantId, assetProfileId.getId());
if (assetProfile != null && assetProfile.isDefault()) {
throw new DataValidationException("Deletion of Default Asset Profile is prohibited!");
@ -208,7 +208,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public PageData<AssetProfile> findAssetProfiles(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findAssetProfiles tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return assetProfileDao.findAssetProfiles(tenantId, pageLink);
}
@ -216,7 +216,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public PageData<AssetProfileInfo> findAssetProfileInfos(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findAssetProfileInfos tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return assetProfileDao.findAssetProfileInfos(tenantId, pageLink);
}
@ -246,7 +246,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
}
private AssetProfile doCreateDefaultAssetProfile(TenantId tenantId, String profileName, boolean defaultProfile, boolean publishSaveEvent) {
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
AssetProfile assetProfile = new AssetProfile();
assetProfile.setTenantId(tenantId);
assetProfile.setDefault(defaultProfile);
@ -258,7 +258,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public AssetProfile findDefaultAssetProfile(TenantId tenantId) {
log.trace("Executing findDefaultAssetProfile tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return cache.getAndPutInTransaction(AssetProfileCacheKey.defaultProfile(tenantId),
() -> assetProfileDao.findDefaultAssetProfile(tenantId), true);
}
@ -266,14 +266,14 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public AssetProfileInfo findDefaultAssetProfileInfo(TenantId tenantId) {
log.trace("Executing findDefaultAssetProfileInfo tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return toAssetProfileInfo(findDefaultAssetProfile(tenantId));
}
@Override
public boolean setDefaultAssetProfile(TenantId tenantId, AssetProfileId assetProfileId) {
log.trace("Executing setDefaultAssetProfile [{}]", assetProfileId);
Validator.validateId(assetProfileId, INCORRECT_ASSET_PROFILE_ID + assetProfileId);
Validator.validateId(assetProfileId, id -> INCORRECT_ASSET_PROFILE_ID + id);
AssetProfile assetProfile = assetProfileDao.findById(tenantId, assetProfileId.getId());
if (!assetProfile.isDefault()) {
assetProfile.setDefault(true);
@ -299,7 +299,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public void deleteAssetProfilesByTenantId(TenantId tenantId) {
log.trace("Executing deleteAssetProfilesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantAssetProfilesRemover.removeEntities(tenantId, tenantId);
}
@ -322,7 +322,7 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService<AssetPr
@Override
public List<EntityInfo> findAssetProfileNamesByTenantId(TenantId tenantId, boolean activeOnly) {
log.trace("Executing findAssetProfileNamesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return assetProfileDao.findTenantAssetProfileNames(tenantId.getId(), activeOnly)
.stream().sorted(Comparator.comparing(EntityInfo::getName))
.collect(Collectors.toList());

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

@ -102,28 +102,28 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public AssetInfo findAssetInfoById(TenantId tenantId, AssetId assetId) {
log.trace("Executing findAssetInfoById [{}]", assetId);
validateId(assetId, INCORRECT_ASSET_ID + assetId);
validateId(assetId, id -> INCORRECT_ASSET_ID + id);
return assetDao.findAssetInfoById(tenantId, assetId.getId());
}
@Override
public Asset findAssetById(TenantId tenantId, AssetId assetId) {
log.trace("Executing findAssetById [{}]", assetId);
validateId(assetId, INCORRECT_ASSET_ID + assetId);
validateId(assetId, id -> INCORRECT_ASSET_ID + id);
return assetDao.findById(tenantId, assetId.getId());
}
@Override
public ListenableFuture<Asset> findAssetByIdAsync(TenantId tenantId, AssetId assetId) {
log.trace("Executing findAssetById [{}]", assetId);
validateId(assetId, INCORRECT_ASSET_ID + assetId);
validateId(assetId, id -> INCORRECT_ASSET_ID + id);
return assetDao.findByIdAsync(tenantId, assetId.getId());
}
@Override
public Asset findAssetByTenantIdAndName(TenantId tenantId, String name) {
log.trace("Executing findAssetByTenantIdAndName [{}][{}]", tenantId, name);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return cache.getAndPutInTransaction(new AssetCacheKey(tenantId, name),
() -> assetDao.findAssetsByTenantIdAndName(tenantId.getId(), name)
.orElse(null), true);
@ -198,7 +198,7 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
@Transactional
public void deleteAsset(TenantId tenantId, AssetId assetId) {
validateId(assetId, INCORRECT_ASSET_ID + assetId);
validateId(assetId, id -> INCORRECT_ASSET_ID + id);
if (entityViewService.existsByTenantIdAndEntityId(tenantId, assetId)) {
throw new DataValidationException("Can't delete asset that has entity views!");
}
@ -222,7 +222,7 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<Asset> findAssetsByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findAssetsByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return assetDao.findAssetsByTenantId(tenantId.getId(), pageLink);
}
@ -230,7 +230,7 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<AssetInfo> findAssetInfosByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findAssetInfosByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return assetDao.findAssetInfosByTenantId(tenantId.getId(), pageLink);
}
@ -238,8 +238,8 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<Asset> findAssetsByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink) {
log.trace("Executing findAssetsByTenantIdAndType, tenantId [{}], type [{}], pageLink [{}]", tenantId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return assetDao.findAssetsByTenantIdAndType(tenantId.getId(), type, pageLink);
}
@ -247,8 +247,8 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<AssetInfo> findAssetInfosByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink) {
log.trace("Executing findAssetInfosByTenantIdAndType, tenantId [{}], type [{}], pageLink [{}]", tenantId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return assetDao.findAssetInfosByTenantIdAndType(tenantId.getId(), type, pageLink);
}
@ -256,8 +256,8 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<AssetInfo> findAssetInfosByTenantIdAndAssetProfileId(TenantId tenantId, AssetProfileId assetProfileId, PageLink pageLink) {
log.trace("Executing findAssetInfosByTenantIdAndAssetProfileId, tenantId [{}], assetProfileId [{}], pageLink [{}]", tenantId, assetProfileId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(assetProfileId, INCORRECT_ASSET_PROFILE_ID + assetProfileId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(assetProfileId, id -> INCORRECT_ASSET_PROFILE_ID + id);
validatePageLink(pageLink);
return assetDao.findAssetInfosByTenantIdAndAssetProfileId(tenantId.getId(), assetProfileId.getId(), pageLink);
}
@ -265,23 +265,23 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public ListenableFuture<List<Asset>> findAssetsByTenantIdAndIdsAsync(TenantId tenantId, List<AssetId> assetIds) {
log.trace("Executing findAssetsByTenantIdAndIdsAsync, tenantId [{}], assetIds [{}]", tenantId, assetIds);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateIds(assetIds, "Incorrect assetIds " + assetIds);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateIds(assetIds, ids -> "Incorrect assetIds " + ids);
return assetDao.findAssetsByTenantIdAndIdsAsync(tenantId.getId(), toUUIDs(assetIds));
}
@Override
public void deleteAssetsByTenantId(TenantId tenantId) {
log.trace("Executing deleteAssetsByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantAssetsRemover.removeEntities(tenantId, tenantId);
}
@Override
public PageData<Asset> findAssetsByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findAssetsByTenantIdAndCustomerId, tenantId [{}], customerId [{}], pageLink [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
return assetDao.findAssetsByTenantIdAndCustomerId(tenantId.getId(), customerId.getId(), pageLink);
}
@ -289,8 +289,8 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<AssetInfo> findAssetInfosByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findAssetInfosByTenantIdAndCustomerId, tenantId [{}], customerId [{}], pageLink [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
return assetDao.findAssetInfosByTenantIdAndCustomerId(tenantId.getId(), customerId.getId(), pageLink);
}
@ -298,9 +298,9 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<Asset> findAssetsByTenantIdAndCustomerIdAndType(TenantId tenantId, CustomerId customerId, String type, PageLink pageLink) {
log.trace("Executing findAssetsByTenantIdAndCustomerIdAndType, tenantId [{}], customerId [{}], type [{}], pageLink [{}]", tenantId, customerId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return assetDao.findAssetsByTenantIdAndCustomerIdAndType(tenantId.getId(), customerId.getId(), type, pageLink);
}
@ -308,9 +308,9 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<AssetInfo> findAssetInfosByTenantIdAndCustomerIdAndType(TenantId tenantId, CustomerId customerId, String type, PageLink pageLink) {
log.trace("Executing findAssetInfosByTenantIdAndCustomerIdAndType, tenantId [{}], customerId [{}], type [{}], pageLink [{}]", tenantId, customerId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return assetDao.findAssetInfosByTenantIdAndCustomerIdAndType(tenantId.getId(), customerId.getId(), type, pageLink);
}
@ -318,9 +318,9 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<AssetInfo> findAssetInfosByTenantIdAndCustomerIdAndAssetProfileId(TenantId tenantId, CustomerId customerId, AssetProfileId assetProfileId, PageLink pageLink) {
log.trace("Executing findAssetInfosByTenantIdAndCustomerIdAndAssetProfileId, tenantId [{}], customerId [{}], assetProfileId [{}], pageLink [{}]", tenantId, customerId, assetProfileId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(assetProfileId, INCORRECT_ASSET_PROFILE_ID + assetProfileId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateId(assetProfileId, id -> INCORRECT_ASSET_PROFILE_ID + id);
validatePageLink(pageLink);
return assetDao.findAssetInfosByTenantIdAndCustomerIdAndAssetProfileId(tenantId.getId(), customerId.getId(), assetProfileId.getId(), pageLink);
}
@ -328,17 +328,17 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public ListenableFuture<List<Asset>> findAssetsByTenantIdCustomerIdAndIdsAsync(TenantId tenantId, CustomerId customerId, List<AssetId> assetIds) {
log.trace("Executing findAssetsByTenantIdAndCustomerIdAndIdsAsync, tenantId [{}], customerId [{}], assetIds [{}]", tenantId, customerId, assetIds);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateIds(assetIds, "Incorrect assetIds " + assetIds);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateIds(assetIds, ids -> "Incorrect assetIds " + ids);
return assetDao.findAssetsByTenantIdAndCustomerIdAndIdsAsync(tenantId.getId(), customerId.getId(), toUUIDs(assetIds));
}
@Override
public void unassignCustomerAssets(TenantId tenantId, CustomerId customerId) {
log.trace("Executing unassignCustomerAssets, tenantId [{}], customerId [{}]", tenantId, customerId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
customerAssetsUnasigner.removeEntities(tenantId, customerId);
}
@ -370,7 +370,7 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public ListenableFuture<List<EntitySubtype>> findAssetTypesByTenantId(TenantId tenantId) {
log.trace("Executing findAssetTypesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return assetDao.findTenantAssetTypesAsync(tenantId.getId());
}
@ -419,8 +419,8 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<Asset> findAssetsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink) {
log.trace("Executing findAssetsByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
validatePageLink(pageLink);
return assetDao.findAssetsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
}
@ -428,9 +428,9 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
@Override
public PageData<Asset> findAssetsByTenantIdAndEdgeIdAndType(TenantId tenantId, EdgeId edgeId, String type, PageLink pageLink) {
log.trace("Executing findAssetsByTenantIdAndEdgeIdAndType, tenantId [{}], edgeId [{}], type [{}] pageLink [{}]", tenantId, edgeId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return assetDao.findAssetsByTenantIdAndEdgeIdAndType(tenantId.getId(), edgeId.getId(), type, pageLink);
}

6
dao/src/main/java/org/thingsboard/server/dao/attributes/AttributeUtils.java

@ -28,12 +28,12 @@ public class AttributeUtils {
@Deprecated(since = "3.7.0")
public static void validate(EntityId id, String scope) {
Validator.validateId(id.getId(), "Incorrect id " + id);
Validator.validateString(scope, "Incorrect scope " + scope);
Validator.validateId(id.getId(), uuid -> "Incorrect id " + uuid);
Validator.validateString(scope, sc -> "Incorrect scope " + sc);
}
public static void validate(EntityId id, AttributeScope scope) {
Validator.validateId(id.getId(), "Incorrect id " + id);
Validator.validateId(id.getId(), uuid -> "Incorrect id " + uuid);
Validator.checkNotNull(scope, "Incorrect scope " + scope);
}

8
dao/src/main/java/org/thingsboard/server/dao/attributes/BaseAttributesService.java

@ -58,28 +58,28 @@ public class BaseAttributesService implements AttributesService {
@Override
public ListenableFuture<Optional<AttributeKvEntry>> find(TenantId tenantId, EntityId entityId, String scope, String attributeKey) {
validate(entityId, scope);
Validator.validateString(attributeKey, "Incorrect attribute key " + attributeKey);
Validator.validateString(attributeKey, k -> "Incorrect attribute key " + k);
return Futures.immediateFuture(attributesDao.find(tenantId, entityId, AttributeScope.valueOf(scope), attributeKey));
}
@Override
public ListenableFuture<Optional<AttributeKvEntry>> find(TenantId tenantId, EntityId entityId, AttributeScope scope, String attributeKey) {
validate(entityId, scope);
Validator.validateString(attributeKey, "Incorrect attribute key " + attributeKey);
Validator.validateString(attributeKey, k -> "Incorrect attribute key " + k);
return Futures.immediateFuture(attributesDao.find(tenantId, entityId, scope, attributeKey));
}
@Override
public ListenableFuture<List<AttributeKvEntry>> find(TenantId tenantId, EntityId entityId, String scope, Collection<String> attributeKeys) {
validate(entityId, scope);
attributeKeys.forEach(attributeKey -> Validator.validateString(attributeKey, "Incorrect attribute key " + attributeKey));
attributeKeys.forEach(attributeKey -> Validator.validateString(attributeKey, k -> "Incorrect attribute key " + k));
return Futures.immediateFuture(attributesDao.find(tenantId, entityId, AttributeScope.valueOf(scope), attributeKeys));
}
@Override
public ListenableFuture<List<AttributeKvEntry>> find(TenantId tenantId, EntityId entityId, AttributeScope scope, Collection<String> attributeKeys) {
validate(entityId, scope);
attributeKeys.forEach(attributeKey -> Validator.validateString(attributeKey, "Incorrect attribute key " + attributeKey));
attributeKeys.forEach(attributeKey -> Validator.validateString(attributeKey, k -> "Incorrect attribute key " + k));
return Futures.immediateFuture(attributesDao.find(tenantId, entityId, scope, attributeKeys));
}

4
dao/src/main/java/org/thingsboard/server/dao/attributes/CachedAttributesService.java

@ -117,7 +117,7 @@ public class CachedAttributesService implements AttributesService {
@Override
public ListenableFuture<Optional<AttributeKvEntry>> find(TenantId tenantId, EntityId entityId, AttributeScope scope, String attributeKey) {
validate(entityId, scope);
Validator.validateString(attributeKey, "Incorrect attribute key " + attributeKey);
Validator.validateString(attributeKey, k -> "Incorrect attribute key " + k);
return cacheExecutor.submit(() -> {
AttributeCacheKey attributeCacheKey = new AttributeCacheKey(scope, entityId, attributeKey);
@ -152,7 +152,7 @@ public class CachedAttributesService implements AttributesService {
public ListenableFuture<List<AttributeKvEntry>> find(TenantId tenantId, EntityId entityId, AttributeScope scope, final Collection<String> attributeKeysNonUnique) {
validate(entityId, scope);
final var attributeKeys = new LinkedHashSet<>(attributeKeysNonUnique); // deduplicate the attributes
attributeKeys.forEach(attributeKey -> Validator.validateString(attributeKey, "Incorrect attribute key " + attributeKey));
attributeKeys.forEach(attributeKey -> Validator.validateString(attributeKey, k ->"Incorrect attribute key " + k));
//CacheExecutor for Redis or DirectExecutor for local Caffeine
return Futures.transformAsync(cacheExecutor.submit(() -> findCachedAttributes(entityId, scope, attributeKeys)),

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

@ -85,31 +85,31 @@ public class AuditLogServiceImpl implements AuditLogService {
@Override
public PageData<AuditLog> findAuditLogsByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, List<ActionType> actionTypes, TimePageLink pageLink) {
log.trace("Executing findAuditLogsByTenantIdAndCustomerId [{}], [{}], [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, "Incorrect customerId " + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> "Incorrect customerId " + id);
return auditLogDao.findAuditLogsByTenantIdAndCustomerId(tenantId.getId(), customerId, actionTypes, pageLink);
}
@Override
public PageData<AuditLog> findAuditLogsByTenantIdAndUserId(TenantId tenantId, UserId userId, List<ActionType> actionTypes, TimePageLink pageLink) {
log.trace("Executing findAuditLogsByTenantIdAndUserId [{}], [{}], [{}]", tenantId, userId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(userId, "Incorrect userId" + userId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(userId, id -> "Incorrect userId" + id);
return auditLogDao.findAuditLogsByTenantIdAndUserId(tenantId.getId(), userId, actionTypes, pageLink);
}
@Override
public PageData<AuditLog> findAuditLogsByTenantIdAndEntityId(TenantId tenantId, EntityId entityId, List<ActionType> actionTypes, TimePageLink pageLink) {
log.trace("Executing findAuditLogsByTenantIdAndEntityId [{}], [{}], [{}]", tenantId, entityId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateEntityId(entityId, INCORRECT_TENANT_ID + entityId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateEntityId(entityId, id -> "Incorrect entityId" + id);
return auditLogDao.findAuditLogsByTenantIdAndEntityId(tenantId.getId(), entityId, actionTypes, pageLink);
}
@Override
public PageData<AuditLog> findAuditLogsByTenantId(TenantId tenantId, List<ActionType> actionTypes, TimePageLink pageLink) {
log.trace("Executing findAuditLogs [{}]", pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return auditLogDao.findAuditLogsByTenantId(tenantId.getId(), actionTypes, pageLink);
}

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

@ -84,21 +84,21 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom
@Override
public Customer findCustomerById(TenantId tenantId, CustomerId customerId) {
log.trace("Executing findCustomerById [{}]", customerId);
Validator.validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
Validator.validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
return customerDao.findById(tenantId, customerId.getId());
}
@Override
public Optional<Customer> findCustomerByTenantIdAndTitle(TenantId tenantId, String title) {
log.trace("Executing findCustomerByTenantIdAndTitle [{}] [{}]", tenantId, title);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return customerDao.findCustomersByTenantIdAndTitle(tenantId.getId(), title);
}
@Override
public ListenableFuture<Customer> findCustomerByIdAsync(TenantId tenantId, CustomerId customerId) {
log.trace("Executing findCustomerByIdAsync [{}]", customerId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
return customerDao.findByIdAsync(tenantId, customerId.getId());
}
@ -126,7 +126,7 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom
@Transactional
public void deleteCustomer(TenantId tenantId, CustomerId customerId) {
log.trace("Executing deleteCustomer [{}]", customerId);
Validator.validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
Validator.validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
Customer customer = findCustomerById(tenantId, customerId);
if (customer == null) {
throw new IncorrectParameterException("Unable to delete non-existent customer.");
@ -147,7 +147,7 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom
@Override
public Customer findOrCreatePublicCustomer(TenantId tenantId) {
log.trace("Executing findOrCreatePublicCustomer, tenantId [{}]", tenantId);
Validator.validateId(tenantId, INCORRECT_CUSTOMER_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_CUSTOMER_ID + id);
Optional<Customer> publicCustomerOpt = customerDao.findCustomersByTenantIdAndTitle(tenantId.getId(), PUBLIC_CUSTOMER_TITLE);
if (publicCustomerOpt.isPresent()) {
return publicCustomerOpt.get();
@ -169,7 +169,7 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom
@Override
public PageData<Customer> findCustomersByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findCustomersByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
Validator.validateId(tenantId, "Incorrect tenantId " + tenantId);
Validator.validateId(tenantId, id -> "Incorrect tenantId " + id);
Validator.validatePageLink(pageLink);
return customerDao.findCustomersByTenantId(tenantId.getId(), pageLink);
}
@ -177,7 +177,7 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom
@Override
public void deleteCustomersByTenantId(TenantId tenantId) {
log.trace("Executing deleteCustomersByTenantId, tenantId [{}]", tenantId);
Validator.validateId(tenantId, "Incorrect tenantId " + tenantId);
Validator.validateId(tenantId, id -> "Incorrect tenantId " + id);
customersByTenantRemover.removeEntities(tenantId, tenantId);
}

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

@ -110,21 +110,21 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public Dashboard findDashboardById(TenantId tenantId, DashboardId dashboardId) {
log.trace("Executing findDashboardById [{}]", dashboardId);
Validator.validateId(dashboardId, INCORRECT_DASHBOARD_ID + dashboardId);
Validator.validateId(dashboardId, id -> INCORRECT_DASHBOARD_ID + id);
return dashboardDao.findById(tenantId, dashboardId.getId());
}
@Override
public ListenableFuture<Dashboard> findDashboardByIdAsync(TenantId tenantId, DashboardId dashboardId) {
log.trace("Executing findDashboardByIdAsync [{}]", dashboardId);
validateId(dashboardId, INCORRECT_DASHBOARD_ID + dashboardId);
validateId(dashboardId, id -> INCORRECT_DASHBOARD_ID + id);
return dashboardDao.findByIdAsync(tenantId, dashboardId.getId());
}
@Override
public DashboardInfo findDashboardInfoById(TenantId tenantId, DashboardId dashboardId) {
log.trace("Executing findDashboardInfoById [{}]", dashboardId);
Validator.validateId(dashboardId, INCORRECT_DASHBOARD_ID + dashboardId);
Validator.validateId(dashboardId, id -> INCORRECT_DASHBOARD_ID + id);
return dashboardInfoDao.findById(tenantId, dashboardId.getId());
}
@ -137,7 +137,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public ListenableFuture<DashboardInfo> findDashboardInfoByIdAsync(TenantId tenantId, DashboardId dashboardId) {
log.trace("Executing findDashboardInfoByIdAsync [{}]", dashboardId);
validateId(dashboardId, INCORRECT_DASHBOARD_ID + dashboardId);
validateId(dashboardId, id -> INCORRECT_DASHBOARD_ID + id);
return dashboardInfoDao.findByIdAsync(tenantId, dashboardId.getId());
}
@ -229,7 +229,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Transactional
public void deleteDashboard(TenantId tenantId, DashboardId dashboardId) {
log.trace("Executing deleteDashboard [{}]", dashboardId);
Validator.validateId(dashboardId, INCORRECT_DASHBOARD_ID + dashboardId);
Validator.validateId(dashboardId, id -> INCORRECT_DASHBOARD_ID + id);
deleteEntityRelations(tenantId, dashboardId);
try {
dashboardDao.removeById(tenantId, dashboardId.getId());
@ -249,7 +249,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public PageData<DashboardInfo> findDashboardsByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findDashboardsByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return dashboardInfoDao.findDashboardsByTenantId(tenantId.getId(), pageLink);
}
@ -257,7 +257,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public PageData<DashboardInfo> findMobileDashboardsByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findMobileDashboardsByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return dashboardInfoDao.findMobileDashboardsByTenantId(tenantId.getId(), pageLink);
}
@ -265,15 +265,15 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public void deleteDashboardsByTenantId(TenantId tenantId) {
log.trace("Executing deleteDashboardsByTenantId, tenantId [{}]", tenantId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantDashboardsRemover.removeEntities(tenantId, tenantId);
}
@Override
public PageData<DashboardInfo> findDashboardsByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findDashboardsByTenantIdAndCustomerId, tenantId [{}], customerId [{}], pageLink [{}]", tenantId, customerId, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(customerId, "Incorrect customerId " + customerId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(customerId, id -> "Incorrect customerId " + id);
Validator.validatePageLink(pageLink);
return dashboardInfoDao.findDashboardsByTenantIdAndCustomerId(tenantId.getId(), customerId.getId(), pageLink);
}
@ -281,8 +281,8 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public PageData<DashboardInfo> findMobileDashboardsByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findMobileDashboardsByTenantIdAndCustomerId, tenantId [{}], customerId [{}], pageLink [{}]", tenantId, customerId, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(customerId, "Incorrect customerId " + customerId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(customerId, id -> "Incorrect customerId " + id);
Validator.validatePageLink(pageLink);
return dashboardInfoDao.findMobileDashboardsByTenantIdAndCustomerId(tenantId.getId(), customerId.getId(), pageLink);
}
@ -290,7 +290,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public void unassignCustomerDashboards(TenantId tenantId, CustomerId customerId) {
log.trace("Executing unassignCustomerDashboards, customerId [{}]", customerId);
Validator.validateId(customerId, "Incorrect customerId " + customerId);
Validator.validateId(customerId, id -> "Incorrect customerId " + id);
Customer customer = customerDao.findById(tenantId, customerId.getId());
if (customer == null) {
throw new DataValidationException("Can't unassign dashboards from non-existent customer!");
@ -301,7 +301,7 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public void updateCustomerDashboards(TenantId tenantId, CustomerId customerId) {
log.trace("Executing updateCustomerDashboards, customerId [{}]", customerId);
Validator.validateId(customerId, "Incorrect customerId " + customerId);
Validator.validateId(customerId, id -> "Incorrect customerId " + id);
Customer customer = customerDao.findById(tenantId, customerId.getId());
if (customer == null) {
throw new DataValidationException("Can't update dashboards for non-existent customer!");
@ -351,8 +351,8 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb
@Override
public PageData<DashboardInfo> findDashboardsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink) {
log.trace("Executing findDashboardsByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
Validator.validatePageLink(pageLink);
return dashboardInfoDao.findDashboardsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
}

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

@ -88,7 +88,7 @@ public class DeviceConnectivityServiceImpl implements DeviceConnectivityService
public JsonNode findDevicePublishTelemetryCommands(String baseUrl, Device device) throws URISyntaxException {
DeviceId deviceId = device.getId();
log.trace("Executing findDevicePublishTelemetryCommands [{}]", deviceId);
validateId(deviceId, INCORRECT_DEVICE_ID + deviceId);
validateId(deviceId, id -> INCORRECT_DEVICE_ID + id);
DeviceCredentials creds = deviceCredentialsService.findDeviceCredentialsByDeviceId(device.getTenantId(), deviceId);
DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(device.getTenantId(), device.getDeviceProfileId());

4
dao/src/main/java/org/thingsboard/server/dao/device/DeviceCredentialsServiceImpl.java

@ -72,14 +72,14 @@ public class DeviceCredentialsServiceImpl extends AbstractCachedEntityService<St
@Override
public DeviceCredentials findDeviceCredentialsByDeviceId(TenantId tenantId, DeviceId deviceId) {
log.trace("Executing findDeviceCredentialsByDeviceId [{}]", deviceId);
validateId(deviceId, "Incorrect deviceId " + deviceId);
validateId(deviceId, id -> "Incorrect deviceId " + id);
return deviceCredentialsDao.findByDeviceId(tenantId, deviceId.getId());
}
@Override
public DeviceCredentials findDeviceCredentialsByCredentialsId(String credentialsId) {
log.trace("Executing findDeviceCredentialsByCredentialsId [{}]", credentialsId);
validateString(credentialsId, "Incorrect credentialsId " + credentialsId);
validateString(credentialsId, id -> "Incorrect credentialsId " + id);
return cache.getAndPutInTransaction(credentialsId,
() -> deviceCredentialsDao.findByCredentialsId(TenantId.SYS_TENANT_ID, credentialsId),
true); // caching null values is essential for permanently invalid requests

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

@ -126,7 +126,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public DeviceProfile findDeviceProfileById(TenantId tenantId, DeviceProfileId deviceProfileId, boolean putInCache) {
log.trace("Executing findDeviceProfileById [{}]", deviceProfileId);
validateId(deviceProfileId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId);
validateId(deviceProfileId, id -> INCORRECT_DEVICE_PROFILE_ID + id);
return cache.getOrFetchFromDB(DeviceProfileCacheKey.fromId(deviceProfileId),
() -> deviceProfileDao.findById(tenantId, deviceProfileId.getId()), true, putInCache);
}
@ -139,7 +139,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public DeviceProfile findDeviceProfileByName(TenantId tenantId, String profileName, boolean putInCache) {
log.trace("Executing findDeviceProfileByName [{}][{}]", tenantId, profileName);
validateString(profileName, INCORRECT_DEVICE_PROFILE_NAME + profileName);
validateString(profileName, pn -> INCORRECT_DEVICE_PROFILE_NAME + pn);
return cache.getOrFetchFromDB(DeviceProfileCacheKey.fromName(tenantId, profileName),
() -> deviceProfileDao.findByName(tenantId, profileName), true, putInCache);
}
@ -147,7 +147,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public DeviceProfile findDeviceProfileByProvisionDeviceKey(String provisionDeviceKey) {
log.trace("Executing findDeviceProfileByProvisionDeviceKey provisionKey [{}]", provisionDeviceKey);
validateString(provisionDeviceKey, INCORRECT_PROVISION_DEVICE_KEY + provisionDeviceKey);
validateString(provisionDeviceKey, dk -> INCORRECT_PROVISION_DEVICE_KEY + dk);
return cache.getAndPutInTransaction(DeviceProfileCacheKey.fromProvisionDeviceKey(provisionDeviceKey),
() -> deviceProfileDao.findByProvisionDeviceKey(provisionDeviceKey), false);
}
@ -155,7 +155,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public DeviceProfileInfo findDeviceProfileInfoById(TenantId tenantId, DeviceProfileId deviceProfileId) {
log.trace("Executing findDeviceProfileById [{}]", deviceProfileId);
validateId(deviceProfileId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId);
validateId(deviceProfileId, id -> INCORRECT_DEVICE_PROFILE_ID + id);
return toDeviceProfileInfo(findDeviceProfileById(tenantId, deviceProfileId));
}
@ -222,7 +222,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Transactional
public void deleteDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId) {
log.trace("Executing deleteDeviceProfile [{}]", deviceProfileId);
validateId(deviceProfileId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId);
validateId(deviceProfileId, id -> INCORRECT_DEVICE_PROFILE_ID + id);
DeviceProfile deviceProfile = deviceProfileDao.findById(tenantId, deviceProfileId.getId());
if (deviceProfile != null && deviceProfile.isDefault()) {
throw new DataValidationException("Deletion of Default Device Profile is prohibited!");
@ -252,7 +252,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public PageData<DeviceProfile> findDeviceProfiles(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findDeviceProfiles tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return deviceProfileDao.findDeviceProfiles(tenantId, pageLink);
}
@ -260,7 +260,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public PageData<DeviceProfileInfo> findDeviceProfileInfos(TenantId tenantId, PageLink pageLink, String transportType) {
log.trace("Executing findDeviceProfileInfos tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return deviceProfileDao.findDeviceProfileInfos(tenantId, pageLink, transportType);
}
@ -290,7 +290,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
}
private DeviceProfile doCreateDefaultDeviceProfile(TenantId tenantId, String profileName, boolean defaultProfile, boolean publishSaveEvent) {
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
DeviceProfile deviceProfile = new DeviceProfile();
deviceProfile.setTenantId(tenantId);
deviceProfile.setDefault(defaultProfile);
@ -313,7 +313,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public DeviceProfile findDefaultDeviceProfile(TenantId tenantId) {
log.trace("Executing findDefaultDeviceProfile tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return cache.getAndPutInTransaction(DeviceProfileCacheKey.defaultProfile(tenantId),
() -> deviceProfileDao.findDefaultDeviceProfile(tenantId), true);
}
@ -321,14 +321,14 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public DeviceProfileInfo findDefaultDeviceProfileInfo(TenantId tenantId) {
log.trace("Executing findDefaultDeviceProfileInfo tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return toDeviceProfileInfo(findDefaultDeviceProfile(tenantId));
}
@Override
public boolean setDefaultDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId) {
log.trace("Executing setDefaultDeviceProfile [{}]", deviceProfileId);
validateId(deviceProfileId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId);
validateId(deviceProfileId, id -> INCORRECT_DEVICE_PROFILE_ID + id);
DeviceProfile deviceProfile = deviceProfileDao.findById(tenantId, deviceProfileId.getId());
if (!deviceProfile.isDefault()) {
deviceProfile.setDefault(true);
@ -354,7 +354,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public void deleteDeviceProfilesByTenantId(TenantId tenantId) {
log.trace("Executing deleteDeviceProfilesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantDeviceProfilesRemover.removeEntities(tenantId, tenantId);
}
@ -377,7 +377,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override
public List<EntityInfo> findDeviceProfileNamesByTenantId(TenantId tenantId, boolean activeOnly) {
log.trace("Executing findDeviceProfileNamesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return deviceProfileDao.findTenantDeviceProfileNames(tenantId.getId(), activeOnly)
.stream().sorted(Comparator.comparing(EntityInfo::getName))
.collect(Collectors.toList());

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

@ -126,14 +126,14 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public DeviceInfo findDeviceInfoById(TenantId tenantId, DeviceId deviceId) {
log.trace("Executing findDeviceInfoById [{}]", deviceId);
validateId(deviceId, INCORRECT_DEVICE_ID + deviceId);
validateId(deviceId, id -> INCORRECT_DEVICE_ID + id);
return deviceDao.findDeviceInfoById(tenantId, deviceId.getId());
}
@Override
public Device findDeviceById(TenantId tenantId, DeviceId deviceId) {
log.trace("Executing findDeviceById [{}]", deviceId);
validateId(deviceId, INCORRECT_DEVICE_ID + deviceId);
validateId(deviceId, id -> INCORRECT_DEVICE_ID + id);
if (TenantId.SYS_TENANT_ID.equals(tenantId)) {
return cache.getAndPutInTransaction(new DeviceCacheKey(deviceId),
() -> deviceDao.findById(tenantId, deviceId.getId()), true);
@ -146,7 +146,7 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public ListenableFuture<Device> findDeviceByIdAsync(TenantId tenantId, DeviceId deviceId) {
log.trace("Executing findDeviceById [{}]", deviceId);
validateId(deviceId, INCORRECT_DEVICE_ID + deviceId);
validateId(deviceId, id -> INCORRECT_DEVICE_ID + id);
if (TenantId.SYS_TENANT_ID.equals(tenantId)) {
return deviceDao.findByIdAsync(tenantId, deviceId.getId());
} else {
@ -157,7 +157,7 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public Device findDeviceByTenantIdAndName(TenantId tenantId, String name) {
log.trace("Executing findDeviceByTenantIdAndName [{}][{}]", tenantId, name);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return cache.getAndPutInTransaction(new DeviceCacheKey(tenantId, name),
() -> deviceDao.findDeviceByTenantIdAndName(tenantId.getId(), name).orElse(null), true);
}
@ -321,7 +321,7 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Transactional
@Override
public void deleteDevice(final TenantId tenantId, final DeviceId deviceId) {
validateId(deviceId, INCORRECT_DEVICE_ID + deviceId);
validateId(deviceId, id -> INCORRECT_DEVICE_ID + id);
if (entityViewService.existsByTenantIdAndEntityId(tenantId, deviceId)) {
throw new DataValidationException("Can't delete device that has entity views!");
}
@ -347,7 +347,7 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public PageData<Device> findDevicesByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findDevicesByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id ->INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return deviceDao.findDevicesByTenantId(tenantId.getId(), pageLink);
}
@ -359,7 +359,7 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
if (filter == null) {
throw new IncorrectParameterException("Filter is empty!");
}
validateId(filter.getTenantId(), INCORRECT_TENANT_ID + filter.getTenantId());
validateId(filter.getTenantId(), id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return deviceDao.findDeviceInfosByFilter(filter, pageLink);
@ -375,8 +375,8 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public PageData<Device> findDevicesByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink) {
log.trace("Executing findDevicesByTenantIdAndType, tenantId [{}], type [{}], pageLink [{}]", tenantId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return deviceDao.findDevicesByTenantIdAndType(tenantId.getId(), type, pageLink);
}
@ -388,8 +388,8 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
PageLink pageLink) {
log.trace("Executing findDevicesByTenantIdAndTypeAndEmptyOtaPackage, tenantId [{}], deviceProfileId [{}], type [{}], pageLink [{}]",
tenantId, deviceProfileId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(deviceProfileId, id -> INCORRECT_DEVICE_PROFILE_ID + id);
validatePageLink(pageLink);
return deviceDao.findDevicesByTenantIdAndTypeAndEmptyOtaPackage(tenantId.getId(), deviceProfileId.getId(), type, pageLink);
}
@ -397,30 +397,30 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public Long countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType type) {
log.trace("Executing countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage, tenantId [{}], deviceProfileId [{}], type [{}]", tenantId, deviceProfileId, type);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(deviceProfileId, id -> INCORRECT_DEVICE_PROFILE_ID + id);
return deviceDao.countDevicesByTenantIdAndDeviceProfileIdAndEmptyOtaPackage(tenantId.getId(), deviceProfileId.getId(), type);
}
@Override
public ListenableFuture<List<Device>> findDevicesByTenantIdAndIdsAsync(TenantId tenantId, List<DeviceId> deviceIds) {
log.trace("Executing findDevicesByTenantIdAndIdsAsync, tenantId [{}], deviceIds [{}]", tenantId, deviceIds);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateIds(deviceIds, "Incorrect deviceIds " + deviceIds);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateIds(deviceIds, ids -> "Incorrect deviceIds " + ids);
return deviceDao.findDevicesByTenantIdAndIdsAsync(tenantId.getId(), toUUIDs(deviceIds));
}
@Override
public List<Device> findDevicesByIds(List<DeviceId> deviceIds) {
log.trace("Executing findDevicesByIdsAsync, deviceIds [{}]", deviceIds);
validateIds(deviceIds, "Incorrect deviceIds " + deviceIds);
validateIds(deviceIds, ids-> "Incorrect deviceIds " + ids);
return deviceDao.findDevicesByIds(toUUIDs(deviceIds));
}
@Override
public ListenableFuture<List<Device>> findDevicesByIdsAsync(List<DeviceId> deviceIds) {
log.trace("Executing findDevicesByIdsAsync, deviceIds [{}]", deviceIds);
validateIds(deviceIds, "Incorrect deviceIds " + deviceIds);
validateIds(deviceIds, ids-> "Incorrect deviceIds " + ids);
return deviceDao.findDevicesByIdsAsync(toUUIDs(deviceIds));
}
@ -428,15 +428,15 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public void deleteDevicesByTenantId(TenantId tenantId) {
log.trace("Executing deleteDevicesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantDevicesRemover.removeEntities(tenantId, tenantId);
}
@Override
public PageData<Device> findDevicesByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findDevicesByTenantIdAndCustomerId, tenantId [{}], customerId [{}], pageLink [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
return deviceDao.findDevicesByTenantIdAndCustomerId(tenantId.getId(), customerId.getId(), pageLink);
}
@ -444,9 +444,9 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public PageData<Device> findDevicesByTenantIdAndCustomerIdAndType(TenantId tenantId, CustomerId customerId, String type, PageLink pageLink) {
log.trace("Executing findDevicesByTenantIdAndCustomerIdAndType, tenantId [{}], customerId [{}], type [{}], pageLink [{}]", tenantId, customerId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return deviceDao.findDevicesByTenantIdAndCustomerIdAndType(tenantId.getId(), customerId.getId(), type, pageLink);
}
@ -454,9 +454,9 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public ListenableFuture<List<Device>> findDevicesByTenantIdCustomerIdAndIdsAsync(TenantId tenantId, CustomerId customerId, List<DeviceId> deviceIds) {
log.trace("Executing findDevicesByTenantIdCustomerIdAndIdsAsync, tenantId [{}], customerId [{}], deviceIds [{}]", tenantId, customerId, deviceIds);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateIds(deviceIds, "Incorrect deviceIds " + deviceIds);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateIds(deviceIds, ids -> "Incorrect deviceIds " + ids);
return deviceDao.findDevicesByTenantIdCustomerIdAndIdsAsync(tenantId.getId(),
customerId.getId(), toUUIDs(deviceIds));
}
@ -464,8 +464,8 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public void unassignCustomerDevices(TenantId tenantId, CustomerId customerId) {
log.trace("Executing unassignCustomerDevices, tenantId [{}], customerId [{}]", tenantId, customerId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
customerDevicesRemover.removeEntities(tenantId, customerId);
}
@ -491,7 +491,7 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public ListenableFuture<List<EntitySubtype>> findDeviceTypesByTenantId(TenantId tenantId) {
log.trace("Executing findDeviceTypesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return deviceDao.findTenantDeviceTypesAsync(tenantId.getId());
}
@ -627,8 +627,8 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public PageData<Device> findDevicesByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink) {
log.trace("Executing findDevicesByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
validatePageLink(pageLink);
return deviceDao.findDevicesByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
}
@ -636,9 +636,9 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
@Override
public PageData<Device> findDevicesByTenantIdAndEdgeIdAndType(TenantId tenantId, EdgeId edgeId, String type, PageLink pageLink) {
log.trace("Executing findDevicesByTenantIdAndEdgeIdAndType, tenantId [{}], edgeId [{}], type [{}] pageLink [{}]", tenantId, edgeId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return deviceDao.findDevicesByTenantIdAndEdgeIdAndType(tenantId.getId(), edgeId.getId(), type, pageLink);
}

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

@ -138,28 +138,28 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public Edge findEdgeById(TenantId tenantId, EdgeId edgeId) {
log.trace("Executing findEdgeById [{}]", edgeId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
return edgeDao.findById(tenantId, edgeId.getId());
}
@Override
public EdgeInfo findEdgeInfoById(TenantId tenantId, EdgeId edgeId) {
log.trace("Executing findEdgeInfoById [{}]", edgeId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
return edgeDao.findEdgeInfoById(tenantId, edgeId.getId());
}
@Override
public ListenableFuture<Edge> findEdgeByIdAsync(TenantId tenantId, EdgeId edgeId) {
log.trace("Executing findEdgeById [{}]", edgeId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
return edgeDao.findByIdAsync(tenantId, edgeId.getId());
}
@Override
public Edge findEdgeByTenantIdAndName(TenantId tenantId, String name) {
log.trace("Executing findEdgeByTenantIdAndName [{}][{}]", tenantId, name);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return cache.getAndPutInTransaction(new EdgeCacheKey(tenantId, name),
() -> edgeDao.findEdgeByTenantIdAndName(tenantId.getId(), name)
.orElse(null), true);
@ -221,7 +221,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Transactional
public void deleteEdge(TenantId tenantId, EdgeId edgeId) {
log.trace("Executing deleteEdge [{}]", edgeId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
Edge edge = edgeDao.findById(tenantId, edgeId.getId());
@ -236,7 +236,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<Edge> findEdgesByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findEdgesByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return edgeDao.findEdgesByTenantId(tenantId.getId(), pageLink);
}
@ -244,8 +244,8 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<Edge> findEdgesByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink) {
log.trace("Executing findEdgesByTenantIdAndType, tenantId [{}], type [{}], pageLink [{}]", tenantId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return edgeDao.findEdgesByTenantIdAndType(tenantId.getId(), type, pageLink);
}
@ -253,8 +253,8 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<EdgeInfo> findEdgeInfosByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink) {
log.trace("Executing findEdgeInfosByTenantIdAndType, tenantId [{}], type [{}], pageLink [{}]", tenantId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return edgeDao.findEdgeInfosByTenantIdAndType(tenantId.getId(), type, pageLink);
}
@ -262,7 +262,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<EdgeInfo> findEdgeInfosByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findEdgeInfosByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return edgeDao.findEdgeInfosByTenantId(tenantId.getId(), pageLink);
}
@ -270,23 +270,23 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public ListenableFuture<List<Edge>> findEdgesByTenantIdAndIdsAsync(TenantId tenantId, List<EdgeId> edgeIds) {
log.trace("Executing findEdgesByTenantIdAndIdsAsync, tenantId [{}], edgeIds [{}]", tenantId, edgeIds);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateIds(edgeIds, "Incorrect edgeIds " + edgeIds);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateIds(edgeIds, ids -> "Incorrect edgeIds " + ids);
return edgeDao.findEdgesByTenantIdAndIdsAsync(tenantId.getId(), toUUIDs(edgeIds));
}
@Override
public void deleteEdgesByTenantId(TenantId tenantId) {
log.trace("Executing deleteEdgesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantEdgesRemover.removeEntities(tenantId, tenantId);
}
@Override
public PageData<Edge> findEdgesByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findEdgesByTenantIdAndCustomerId, tenantId [{}], customerId [{}], pageLink [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
return edgeDao.findEdgesByTenantIdAndCustomerId(tenantId.getId(), customerId.getId(), pageLink);
}
@ -294,9 +294,9 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<Edge> findEdgesByTenantIdAndCustomerIdAndType(TenantId tenantId, CustomerId customerId, String type, PageLink pageLink) {
log.trace("Executing findEdgesByTenantIdAndCustomerIdAndType, tenantId [{}], customerId [{}], type [{}], pageLink [{}]", tenantId, customerId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return edgeDao.findEdgesByTenantIdAndCustomerIdAndType(tenantId.getId(), customerId.getId(), type, pageLink);
}
@ -304,8 +304,8 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<EdgeInfo> findEdgeInfosByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findEdgeInfosByTenantIdAndCustomerId, tenantId [{}], customerId [{}], pageLink [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
return edgeDao.findEdgeInfosByTenantIdAndCustomerId(tenantId.getId(), customerId.getId(), pageLink);
}
@ -313,9 +313,9 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<EdgeInfo> findEdgeInfosByTenantIdAndCustomerIdAndType(TenantId tenantId, CustomerId customerId, String type, PageLink pageLink) {
log.trace("Executing findEdgeInfosByTenantIdAndCustomerIdAndType, tenantId [{}], customerId [{}], type [{}], pageLink [{}]", tenantId, customerId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return edgeDao.findEdgeInfosByTenantIdAndCustomerIdAndType(tenantId.getId(), customerId.getId(), type, pageLink);
}
@ -323,9 +323,9 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public ListenableFuture<List<Edge>> findEdgesByTenantIdCustomerIdAndIdsAsync(TenantId tenantId, CustomerId customerId, List<EdgeId> edgeIds) {
log.trace("Executing findEdgesByTenantIdCustomerIdAndIdsAsync, tenantId [{}], customerId [{}], edgeIds [{}]", tenantId, customerId, edgeIds);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateIds(edgeIds, "Incorrect edgeIds " + edgeIds);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateIds(edgeIds, ids -> "Incorrect edgeIds " + ids);
return edgeDao.findEdgesByTenantIdCustomerIdAndIdsAsync(tenantId.getId(),
customerId.getId(), toUUIDs(edgeIds));
}
@ -333,8 +333,8 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public void unassignCustomerEdges(TenantId tenantId, CustomerId customerId) {
log.trace("Executing unassignCustomerEdges, tenantId [{}], customerId [{}]", tenantId, customerId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
customerEdgeUnassigner.removeEntities(tenantId, customerId);
}
@ -370,7 +370,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public ListenableFuture<List<EntitySubtype>> findEdgeTypesByTenantId(TenantId tenantId) {
log.trace("Executing findEdgeTypesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
ListenableFuture<List<EntitySubtype>> tenantEdgeTypes = edgeDao.findTenantEdgeTypesAsync(tenantId.getId());
return Futures.transform(tenantEdgeTypes,
edgeTypes -> {
@ -400,7 +400,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<Edge> findEdgesByTenantIdAndEntityId(TenantId tenantId, EntityId entityId, PageLink pageLink) {
log.trace("Executing findEdgesByTenantIdAndEntityId, tenantId [{}], entityId [{}], pageLink [{}]", tenantId, entityId, pageLink);
Validator.validateId(tenantId, "Incorrect tenantId " + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return edgeDao.findEdgesByTenantIdAndEntityId(tenantId.getId(), entityId.getId(), entityId.getEntityType(), pageLink);
}
@ -408,7 +408,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
@Override
public PageData<Edge> findEdgesByTenantProfileId(TenantProfileId tenantProfileId, PageLink pageLink) {
log.trace("Executing findEdgesByTenantProfileId, tenantProfileId [{}], pageLink [{}]", tenantProfileId, pageLink);
Validator.validateId(tenantProfileId, "Incorrect tenantProfileId " + tenantProfileId);
Validator.validateId(tenantProfileId, id -> "Incorrect tenantProfileId " + id);
validatePageLink(pageLink);
return edgeDao.findEdgesByTenantProfileId(tenantProfileId.getId(), pageLink);
}

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

@ -67,8 +67,8 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
@Override
public long countEntitiesByQuery(TenantId tenantId, CustomerId customerId, EntityCountQuery query) {
log.trace("Executing countEntitiesByQuery, tenantId [{}], customerId [{}], query [{}]", tenantId, customerId, query);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateEntityCountQuery(query);
return this.entityQueryDao.countEntitiesByQuery(tenantId, customerId, query);
}
@ -76,8 +76,8 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
@Override
public PageData<EntityData> findEntityDataByQuery(TenantId tenantId, CustomerId customerId, EntityDataQuery query) {
log.trace("Executing findEntityDataByQuery, tenantId [{}], customerId [{}], query [{}]", tenantId, customerId, query);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validateEntityDataQuery(query);
return this.entityQueryDao.findEntityDataByQuery(tenantId, customerId, query);
}

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

@ -145,15 +145,15 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public void unassignCustomerEntityViews(TenantId tenantId, CustomerId customerId) {
log.trace("Executing unassignCustomerEntityViews, tenantId [{}], customerId [{}]", tenantId, customerId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
customerEntityViewsUnAssigner.removeEntities(tenantId, customerId);
}
@Override
public EntityViewInfo findEntityViewInfoById(TenantId tenantId, EntityViewId entityViewId) {
log.trace("Executing findEntityViewInfoById [{}]", entityViewId);
validateId(entityViewId, INCORRECT_ENTITY_VIEW_ID + entityViewId);
validateId(entityViewId, id -> INCORRECT_ENTITY_VIEW_ID + id);
return entityViewDao.findEntityViewInfoById(tenantId, entityViewId.getId());
}
@ -165,7 +165,7 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public EntityView findEntityViewById(TenantId tenantId, EntityViewId entityViewId, boolean putInCache) {
log.trace("Executing findEntityViewById [{}]", entityViewId);
validateId(entityViewId, INCORRECT_ENTITY_VIEW_ID + entityViewId);
validateId(entityViewId, id -> INCORRECT_ENTITY_VIEW_ID + id);
return cache.getOrFetchFromDB(EntityViewCacheKey.byId(entityViewId),
() -> entityViewDao.findById(tenantId, entityViewId.getId())
, EntityViewCacheValue::getEntityView, v -> new EntityViewCacheValue(v, null), true, putInCache);
@ -174,7 +174,7 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public EntityView findEntityViewByTenantIdAndName(TenantId tenantId, String name) {
log.trace("Executing findEntityViewByTenantIdAndName [{}][{}]", tenantId, name);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return cache.getAndPutInTransaction(EntityViewCacheKey.byName(tenantId, name),
() -> entityViewDao.findEntityViewByTenantIdAndName(tenantId.getId(), name).orElse(null)
, EntityViewCacheValue::getEntityView, v -> new EntityViewCacheValue(v, null), true);
@ -184,7 +184,7 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public PageData<EntityView> findEntityViewByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findEntityViewsByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return entityViewDao.findEntityViewsByTenantId(tenantId.getId(), pageLink);
}
@ -192,7 +192,7 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public PageData<EntityViewInfo> findEntityViewInfosByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findEntityViewInfosByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return entityViewDao.findEntityViewInfosByTenantId(tenantId.getId(), pageLink);
}
@ -200,18 +200,18 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public PageData<EntityView> findEntityViewByTenantIdAndType(TenantId tenantId, PageLink pageLink, String type) {
log.trace("Executing findEntityViewByTenantIdAndType, tenantId [{}], pageLink [{}], type [{}]", tenantId, pageLink, type);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
validateString(type, "Incorrect type " + type);
validateString(type, t -> "Incorrect type " + t);
return entityViewDao.findEntityViewsByTenantIdAndType(tenantId.getId(), type, pageLink);
}
@Override
public PageData<EntityViewInfo> findEntityViewInfosByTenantIdAndType(TenantId tenantId, String type, PageLink pageLink) {
log.trace("Executing findEntityViewInfosByTenantIdAndType, tenantId [{}], pageLink [{}], type [{}]", tenantId, pageLink, type);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
validateString(type, "Incorrect type " + type);
validateString(type, t -> "Incorrect type " + t);
return entityViewDao.findEntityViewInfosByTenantIdAndType(tenantId.getId(), type, pageLink);
}
@ -220,8 +220,8 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
PageLink pageLink) {
log.trace("Executing findEntityViewByTenantIdAndCustomerId, tenantId [{}], customerId [{}]," +
" pageLink [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id ->INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
return entityViewDao.findEntityViewsByTenantIdAndCustomerId(tenantId.getId(),
customerId.getId(), pageLink);
@ -231,8 +231,8 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
public PageData<EntityViewInfo> findEntityViewInfosByTenantIdAndCustomerId(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findEntityViewInfosByTenantIdAndCustomerId, tenantId [{}], customerId [{}]," +
" pageLink [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
return entityViewDao.findEntityViewInfosByTenantIdAndCustomerId(tenantId.getId(),
customerId.getId(), pageLink);
@ -242,10 +242,10 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
public PageData<EntityView> findEntityViewsByTenantIdAndCustomerIdAndType(TenantId tenantId, CustomerId customerId, PageLink pageLink, String type) {
log.trace("Executing findEntityViewsByTenantIdAndCustomerIdAndType, tenantId [{}], customerId [{}]," +
" pageLink [{}], type [{}]", tenantId, customerId, pageLink, type);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
validateString(type, "Incorrect type " + type);
validateString(type, t -> "Incorrect type " + t);
return entityViewDao.findEntityViewsByTenantIdAndCustomerIdAndType(tenantId.getId(),
customerId.getId(), type, pageLink);
}
@ -254,10 +254,10 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
public PageData<EntityViewInfo> findEntityViewInfosByTenantIdAndCustomerIdAndType(TenantId tenantId, CustomerId customerId, String type, PageLink pageLink) {
log.trace("Executing findEntityViewInfosByTenantIdAndCustomerIdAndType, tenantId [{}], customerId [{}]," +
" pageLink [{}], type [{}]", tenantId, customerId, pageLink, type);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, INCORRECT_CUSTOMER_ID + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> INCORRECT_CUSTOMER_ID + id);
validatePageLink(pageLink);
validateString(type, "Incorrect type " + type);
validateString(type, t -> "Incorrect type " + t);
return entityViewDao.findEntityViewInfosByTenantIdAndCustomerIdAndType(tenantId.getId(),
customerId.getId(), type, pageLink);
}
@ -291,15 +291,15 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public ListenableFuture<EntityView> findEntityViewByIdAsync(TenantId tenantId, EntityViewId entityViewId) {
log.trace("Executing findEntityViewById [{}]", entityViewId);
validateId(entityViewId, INCORRECT_ENTITY_VIEW_ID + entityViewId);
validateId(entityViewId, id -> INCORRECT_ENTITY_VIEW_ID + id);
return entityViewDao.findByIdAsync(tenantId, entityViewId.getId());
}
@Override
public ListenableFuture<List<EntityView>> findEntityViewsByTenantIdAndEntityIdAsync(TenantId tenantId, EntityId entityId) {
log.trace("Executing findEntityViewsByTenantIdAndEntityIdAsync, tenantId [{}], entityId [{}]", tenantId, entityId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(entityId.getId(), "Incorrect entityId" + entityId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(entityId.getId(), id -> "Incorrect entityId" + id);
return service.submit(() -> cache.getAndPutInTransaction(EntityViewCacheKey.byEntityId(tenantId, entityId),
() -> entityViewDao.findEntityViewsByTenantIdAndEntityId(tenantId.getId(), entityId.getId()),
@ -309,8 +309,8 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public List<EntityView> findEntityViewsByTenantIdAndEntityId(TenantId tenantId, EntityId entityId) {
log.trace("Executing findEntityViewsByTenantIdAndEntityId, tenantId [{}], entityId [{}]", tenantId, entityId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(entityId.getId(), "Incorrect entityId" + entityId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(entityId.getId(), id -> "Incorrect entityId" + id);
return cache.getAndPutInTransaction(EntityViewCacheKey.byEntityId(tenantId, entityId),
() -> entityViewDao.findEntityViewsByTenantIdAndEntityId(tenantId.getId(), entityId.getId()),
@ -326,7 +326,7 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Transactional
public void deleteEntityView(TenantId tenantId, EntityViewId entityViewId) {
log.trace("Executing deleteEntityView [{}]", entityViewId);
validateId(entityViewId, INCORRECT_ENTITY_VIEW_ID + entityViewId);
validateId(entityViewId, id -> INCORRECT_ENTITY_VIEW_ID + id);
deleteEntityRelations(tenantId, entityViewId);
EntityView entityView = entityViewDao.findById(tenantId, entityViewId.getId());
entityViewDao.removeById(tenantId, entityViewId.getId());
@ -337,14 +337,14 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public void deleteEntityViewsByTenantId(TenantId tenantId) {
log.trace("Executing deleteEntityViewsByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantEntityViewRemover.removeEntities(tenantId, tenantId);
}
@Override
public ListenableFuture<List<EntitySubtype>> findEntityViewTypesByTenantId(TenantId tenantId) {
log.trace("Executing findEntityViewTypesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
ListenableFuture<List<EntitySubtype>> tenantEntityViewTypes = entityViewDao.findTenantEntityViewTypesAsync(tenantId.getId());
return Futures.transform(tenantEntityViewTypes,
entityViewTypes -> {
@ -402,8 +402,8 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public PageData<EntityView> findEntityViewsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink) {
log.trace("Executing findEntityViewsByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
validatePageLink(pageLink);
return entityViewDao.findEntityViewsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
}
@ -411,9 +411,9 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService<EntityVie
@Override
public PageData<EntityView> findEntityViewsByTenantIdAndEdgeIdAndType(TenantId tenantId, EdgeId edgeId, String type, PageLink pageLink) {
log.trace("Executing findEntityViewsByTenantIdAndEdgeIdAndType, tenantId [{}], edgeId [{}], type [{}], pageLink [{}]", tenantId, edgeId, type, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
validateString(type, "Incorrect type " + type);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(edgeId, id -> INCORRECT_EDGE_ID + id);
validateString(type, t -> "Incorrect type " + t);
validatePageLink(pageLink);
return entityViewDao.findEntityViewsByTenantIdAndEdgeIdAndType(tenantId.getId(), edgeId.getId(), type, pageLink);
}

6
dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2ConfigTemplateServiceImpl.java

@ -64,14 +64,14 @@ public class OAuth2ConfigTemplateServiceImpl extends AbstractEntityService imple
@Override
public Optional<OAuth2ClientRegistrationTemplate> findClientRegistrationTemplateByProviderId(String providerId) {
log.trace("Executing findClientRegistrationTemplateByProviderId [{}]", providerId);
validateString(providerId, INCORRECT_CLIENT_REGISTRATION_PROVIDER_ID + providerId);
validateString(providerId, id -> INCORRECT_CLIENT_REGISTRATION_PROVIDER_ID + id);
return clientRegistrationTemplateDao.findByProviderId(providerId);
}
@Override
public OAuth2ClientRegistrationTemplate findClientRegistrationTemplateById(OAuth2ClientRegistrationTemplateId templateId) {
log.trace("Executing findClientRegistrationTemplateById [{}]", templateId);
validateId(templateId, INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID + templateId);
validateId(templateId, id -> INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID + id);
return clientRegistrationTemplateDao.findById(TenantId.SYS_TENANT_ID, templateId.getId());
}
@ -84,7 +84,7 @@ public class OAuth2ConfigTemplateServiceImpl extends AbstractEntityService imple
@Override
public void deleteClientRegistrationTemplateById(OAuth2ClientRegistrationTemplateId templateId) {
log.trace("Executing deleteClientRegistrationTemplateById [{}]", templateId);
validateId(templateId, INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID + templateId);
validateId(templateId, id -> INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID + id);
clientRegistrationTemplateDao.removeById(TenantId.SYS_TENANT_ID, templateId.getId());
}
}

6
dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2ServiceImpl.java

@ -86,7 +86,7 @@ public class OAuth2ServiceImpl extends AbstractEntityService implements OAuth2Se
} catch (IllegalArgumentException e){
throw new IncorrectParameterException(INCORRECT_DOMAIN_SCHEME);
}
validateString(domainName, INCORRECT_DOMAIN_NAME + domainName);
validateString(domainName, dn -> INCORRECT_DOMAIN_NAME + dn);
return oauth2RegistrationDao.findEnabledByDomainSchemesDomainNameAndPkgNameAndPlatformType(
Arrays.asList(domainScheme, SchemeType.MIXED), domainName, pkgName, platformType)
.stream()
@ -142,14 +142,14 @@ public class OAuth2ServiceImpl extends AbstractEntityService implements OAuth2Se
@Override
public OAuth2Registration findRegistration(UUID id) {
log.trace("Executing findRegistration [{}]", id);
validateId(id, INCORRECT_CLIENT_REGISTRATION_ID + id);
validateId(id, uuid -> INCORRECT_CLIENT_REGISTRATION_ID + uuid);
return oauth2RegistrationDao.findById(null, id);
}
@Override
public String findAppSecret(UUID id, String pkgName) {
log.trace("Executing findAppSecret [{}][{}]", id, pkgName);
validateId(id, INCORRECT_CLIENT_REGISTRATION_ID + id);
validateId(id, uuid -> INCORRECT_CLIENT_REGISTRATION_ID + uuid);
validateString(pkgName, "Incorrect package name");
return oauth2RegistrationDao.findAppSecret(id, pkgName);
}

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

@ -159,14 +159,14 @@ public class BaseOtaPackageService extends AbstractCachedEntityService<OtaPackag
@Override
public OtaPackage findOtaPackageById(TenantId tenantId, OtaPackageId otaPackageId) {
log.trace("Executing findOtaPackageById [{}]", otaPackageId);
validateId(otaPackageId, INCORRECT_OTA_PACKAGE_ID + otaPackageId);
validateId(otaPackageId, id -> INCORRECT_OTA_PACKAGE_ID + id);
return otaPackageDao.findById(tenantId, otaPackageId.getId());
}
@Override
public OtaPackageInfo findOtaPackageInfoById(TenantId tenantId, OtaPackageId otaPackageId) {
log.trace("Executing findOtaPackageInfoById [{}]", otaPackageId);
validateId(otaPackageId, INCORRECT_OTA_PACKAGE_ID + otaPackageId);
validateId(otaPackageId, id -> INCORRECT_OTA_PACKAGE_ID + id);
return cache.getAndPutInTransaction(new OtaPackageCacheKey(otaPackageId),
() -> otaPackageInfoDao.findById(tenantId, otaPackageId.getId()), true);
}
@ -174,14 +174,14 @@ public class BaseOtaPackageService extends AbstractCachedEntityService<OtaPackag
@Override
public ListenableFuture<OtaPackageInfo> findOtaPackageInfoByIdAsync(TenantId tenantId, OtaPackageId otaPackageId) {
log.trace("Executing findOtaPackageInfoByIdAsync [{}]", otaPackageId);
validateId(otaPackageId, INCORRECT_OTA_PACKAGE_ID + otaPackageId);
validateId(otaPackageId, id -> INCORRECT_OTA_PACKAGE_ID + id);
return otaPackageInfoDao.findByIdAsync(tenantId, otaPackageId.getId());
}
@Override
public PageData<OtaPackageInfo> findTenantOtaPackagesByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findTenantOtaPackagesByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return otaPackageInfoDao.findOtaPackageInfoByTenantId(tenantId, pageLink);
}
@ -189,7 +189,7 @@ public class BaseOtaPackageService extends AbstractCachedEntityService<OtaPackag
@Override
public PageData<OtaPackageInfo> findTenantOtaPackagesByTenantIdAndDeviceProfileIdAndTypeAndHasData(TenantId tenantId, DeviceProfileId deviceProfileId, OtaPackageType otaPackageType, PageLink pageLink) {
log.trace("Executing findTenantOtaPackagesByTenantIdAndHasData, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return otaPackageInfoDao.findOtaPackageInfoByTenantIdAndDeviceProfileIdAndTypeAndHasData(tenantId, deviceProfileId, otaPackageType, pageLink);
}
@ -197,7 +197,7 @@ public class BaseOtaPackageService extends AbstractCachedEntityService<OtaPackag
@Override
public void deleteOtaPackage(TenantId tenantId, OtaPackageId otaPackageId) {
log.trace("Executing deleteOtaPackage [{}]", otaPackageId);
validateId(otaPackageId, INCORRECT_OTA_PACKAGE_ID + otaPackageId);
validateId(otaPackageId, id -> INCORRECT_OTA_PACKAGE_ID + id);
try {
otaPackageDao.removeById(tenantId, otaPackageId.getId());
publishEvictEvent(new OtaPackageCacheEvictEvent(otaPackageId));
@ -226,7 +226,7 @@ public class BaseOtaPackageService extends AbstractCachedEntityService<OtaPackag
@Override
public void deleteOtaPackagesByTenantId(TenantId tenantId) {
log.trace("Executing deleteOtaPackagesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantOtaPackageRemover.removeEntities(tenantId, tenantId);
}

8
dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueStatsService.java

@ -53,28 +53,28 @@ public class BaseQueueStatsService extends AbstractEntityService implements Queu
@Override
public QueueStats findQueueStatsById(TenantId tenantId, QueueStatsId queueStatsId) {
log.trace("Executing findQueueStatsById [{}]", queueStatsId);
validateId(queueStatsId, "Incorrect queueStatsId " + queueStatsId);
validateId(queueStatsId, id -> "Incorrect queueStatsId " + id);
return queueStatsDao.findById(tenantId, queueStatsId.getId());
}
@Override
public QueueStats findByTenantIdAndNameAndServiceId(TenantId tenantId, String queueName, String serviceId) {
log.trace("Executing findByTenantIdAndNameAndServiceId, tenantId: [{}], queueName: [{}], serviceId: [{}]", tenantId, queueName, serviceId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return queueStatsDao.findByTenantIdQueueNameAndServiceId(tenantId, queueName, serviceId);
}
@Override
public List<QueueStats> findByTenantId(TenantId tenantId) {
log.trace("Executing findByTenantId, tenantId: [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return queueStatsDao.findByTenantId(tenantId);
}
@Override
public void deleteByTenantId(TenantId tenantId) {
log.trace("Executing deleteByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
queueStatsDao.deleteByTenantId(tenantId);
}

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

@ -513,7 +513,7 @@ public class BaseRelationService implements RelationService {
@Override
public List<EntityRelation> findRuleNodeToRuleChainRelations(TenantId tenantId, RuleChainType ruleChainType, int limit) {
log.trace("Executing findRuleNodeToRuleChainRelations, tenantId [{}], ruleChainType {} and limit {}", tenantId, ruleChainType, limit);
validateId(tenantId, "Invalid tenant id: " + tenantId);
validateId(tenantId, id -> "Invalid tenant id: " + id);
return relationDao.findRuleNodeToRuleChainRelations(ruleChainType, limit);
}

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

@ -256,7 +256,7 @@ public class BaseImageService extends BaseResourceService implements ImageServic
var tenantId = imageInfo.getTenantId();
var imageId = imageInfo.getId();
log.trace("Executing deleteImage [{}] [{}]", tenantId, imageId);
Validator.validateId(imageId, INCORRECT_RESOURCE_ID + imageId);
Validator.validateId(imageId, id -> INCORRECT_RESOURCE_ID + id);
TbImageDeleteResult.TbImageDeleteResultBuilder result = TbImageDeleteResult.builder();
boolean success = true;
if (!force) {

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

@ -116,14 +116,14 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
@Override
public TbResource findResourceById(TenantId tenantId, TbResourceId resourceId) {
log.trace("Executing findResourceById [{}] [{}]", tenantId, resourceId);
Validator.validateId(resourceId, INCORRECT_RESOURCE_ID + resourceId);
Validator.validateId(resourceId, id -> INCORRECT_RESOURCE_ID + id);
return resourceDao.findById(tenantId, resourceId.getId());
}
@Override
public TbResourceInfo findResourceInfoById(TenantId tenantId, TbResourceId resourceId) {
log.trace("Executing findResourceInfoById [{}] [{}]", tenantId, resourceId);
Validator.validateId(resourceId, INCORRECT_RESOURCE_ID + resourceId);
Validator.validateId(resourceId, id -> INCORRECT_RESOURCE_ID + id);
return cache.getAndPutInTransaction(new ResourceInfoCacheKey(tenantId, resourceId),
() -> resourceInfoDao.findById(tenantId, resourceId.getId()), true);
@ -138,7 +138,7 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
@Override
public ListenableFuture<TbResourceInfo> findResourceInfoByIdAsync(TenantId tenantId, TbResourceId resourceId) {
log.trace("Executing findResourceInfoById [{}] [{}]", tenantId, resourceId);
Validator.validateId(resourceId, INCORRECT_RESOURCE_ID + resourceId);
Validator.validateId(resourceId, id -> INCORRECT_RESOURCE_ID + id);
return resourceInfoDao.findByIdAsync(tenantId, resourceId.getId());
}
@ -150,7 +150,7 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
@Override
public void deleteResource(TenantId tenantId, TbResourceId resourceId, boolean force) {
log.trace("Executing deleteResource [{}] [{}]", tenantId, resourceId);
Validator.validateId(resourceId, INCORRECT_RESOURCE_ID + resourceId);
Validator.validateId(resourceId, id -> INCORRECT_RESOURCE_ID + id);
if (!force) {
resourceValidator.validateDelete(tenantId, resourceId);
}
@ -163,7 +163,7 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
public PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) {
TenantId tenantId = filter.getTenantId();
log.trace("Executing findAllTenantResourcesByTenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return resourceInfoDao.findAllTenantResourcesByTenantId(filter, pageLink);
}
@ -171,35 +171,35 @@ public class BaseResourceService extends AbstractCachedEntityService<ResourceInf
public PageData<TbResourceInfo> findTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) {
TenantId tenantId = filter.getTenantId();
log.trace("Executing findTenantResourcesByTenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return resourceInfoDao.findTenantResourcesByTenantId(filter, pageLink);
}
@Override
public List<TbResource> findTenantResourcesByResourceTypeAndObjectIds(TenantId tenantId, ResourceType resourceType, String[] objectIds) {
log.trace("Executing findTenantResourcesByResourceTypeAndObjectIds [{}][{}][{}]", tenantId, resourceType, objectIds);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return resourceDao.findResourcesByTenantIdAndResourceType(tenantId, resourceType, objectIds, null);
}
@Override
public PageData<TbResource> findAllTenantResources(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findAllTenantResources [{}][{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return resourceDao.findAllByTenantId(tenantId, pageLink);
}
@Override
public PageData<TbResource> findTenantResourcesByResourceTypeAndPageLink(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
log.trace("Executing findTenantResourcesByResourceTypeAndPageLink [{}][{}][{}]", tenantId, resourceType, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return resourceDao.findResourcesByTenantIdAndResourceType(tenantId, resourceType, pageLink);
}
@Override
public void deleteResourcesByTenantId(TenantId tenantId) {
log.trace("Executing deleteResourcesByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantResourcesRemover.removeEntities(tenantId, tenantId);
}

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

@ -54,38 +54,38 @@ public class BaseRpcService implements RpcService {
@Override
public void deleteRpc(TenantId tenantId, RpcId rpcId) {
log.trace("Executing deleteRpc, tenantId [{}], rpcId [{}]", tenantId, rpcId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(rpcId, INCORRECT_RPC_ID + rpcId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(rpcId, id -> INCORRECT_RPC_ID + id);
rpcDao.removeById(tenantId, rpcId.getId());
}
@Override
public void deleteAllRpcByTenantId(TenantId tenantId) {
log.trace("Executing deleteAllRpcByTenantId, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantRpcRemover.removeEntities(tenantId, tenantId);
}
@Override
public Rpc findById(TenantId tenantId, RpcId rpcId) {
log.trace("Executing findById, tenantId [{}], rpcId [{}]", tenantId, rpcId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(rpcId, INCORRECT_RPC_ID + rpcId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(rpcId, id -> INCORRECT_RPC_ID + id);
return rpcDao.findById(tenantId, rpcId.getId());
}
@Override
public ListenableFuture<Rpc> findRpcByIdAsync(TenantId tenantId, RpcId rpcId) {
log.trace("Executing findRpcByIdAsync, tenantId [{}], rpcId: [{}]", tenantId, rpcId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(rpcId, INCORRECT_RPC_ID + rpcId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(rpcId, id -> INCORRECT_RPC_ID + id);
return rpcDao.findByIdAsync(tenantId, rpcId.getId());
}
@Override
public PageData<Rpc> findAllByDeviceIdAndStatus(TenantId tenantId, DeviceId deviceId, RpcStatus rpcStatus, PageLink pageLink) {
log.trace("Executing findAllByDeviceIdAndStatus, tenantId [{}], deviceId [{}], rpcStatus [{}], pageLink [{}]", tenantId, deviceId, rpcStatus, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return rpcDao.findAllByDeviceIdAndStatus(tenantId, deviceId, rpcStatus, pageLink);
}
@ -93,7 +93,7 @@ public class BaseRpcService implements RpcService {
@Override
public PageData<Rpc> findAllByDeviceId(TenantId tenantId, DeviceId deviceId, PageLink pageLink) {
log.trace("Executing findAllByDeviceIdAndStatus, tenantId [{}], deviceId [{}], pageLink [{}]", tenantId, deviceId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return rpcDao.findAllByDeviceId(tenantId, deviceId, pageLink);
}

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

@ -645,8 +645,8 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override
public PageData<RuleChain> findRuleChainsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink) {
log.trace("Executing findRuleChainsByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink);
Validator.validateId(tenantId, "Incorrect tenantId " + tenantId);
Validator.validateId(edgeId, "Incorrect edgeId " + edgeId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(edgeId, id -> "Incorrect edgeId " + id);
Validator.validatePageLink(pageLink);
return ruleChainDao.findRuleChainsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
}
@ -705,14 +705,14 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override
public PageData<RuleChain> findAutoAssignToEdgeRuleChainsByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findAutoAssignToEdgeRuleChainsByTenantId, tenantId [{}], pageLink {}", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return ruleChainDao.findAutoAssignToEdgeRuleChainsByTenantId(tenantId.getId(), pageLink);
}
@Override
public List<RuleNode> findRuleNodesByTenantIdAndType(TenantId tenantId, String type, String search) {
log.trace("Executing findRuleNodes, tenantId [{}], type {}, search {}", tenantId, type, search);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateString(type, "Incorrect type of the rule node");
validateString(search, "Incorrect search text");
return ruleNodeDao.findRuleNodesByTenantIdAndType(tenantId, type, search);
@ -721,7 +721,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override
public List<RuleNode> findRuleNodesByTenantIdAndType(TenantId tenantId, String type) {
log.trace("Executing findRuleNodes, tenantId [{}], type {}", tenantId, type);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateString(type, "Incorrect type of the rule node");
return ruleNodeDao.findRuleNodesByTenantIdAndType(tenantId, type, "");
}
@ -755,7 +755,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
@Override
public List<RuleNode> findAllRuleNodesByIds(List<RuleNodeId> ruleNodeIds) {
log.trace("Executing findAllRuleNodesByIds, ruleNodeIds {}", ruleNodeIds);
validateIds(ruleNodeIds, "Incorrect ruleNodeIds " + ruleNodeIds);
validateIds(ruleNodeIds, ids -> "Incorrect ruleNodeIds " + ids);
assert ruleNodeIds.size() <= 1024;
return ruleNodeDao.findAllRuleNodeByIds(ruleNodeIds);
}

96
dao/src/main/java/org/thingsboard/server/dao/service/Validator.java

@ -38,9 +38,10 @@ public class Validator {
* This method validate <code>EntityId</code> entity id. If entity id is invalid than throw
* <code>IncorrectParameterException</code> exception
*
* @param entityId the entityId
* @param errorMessage the error message for exception
* @param entityId the entityId
* @param errorMessage the error message for exception
*/
@Deprecated
public static void validateEntityId(EntityId entityId, String errorMessage) {
if (entityId == null || entityId.getId() == null) {
throw new IncorrectParameterException(errorMessage);
@ -51,8 +52,8 @@ public class Validator {
* This method validate <code>EntityId</code> entity id. If entity id is invalid than throw
* <code>IncorrectParameterException</code> exception
*
* @param entityId the entityId
* @param errorMessageFunction the error message for exception that apply entityId
* @param entityId the entityId
* @param errorMessageFunction the error message function for exception that applies entityId
*/
public static void validateEntityId(EntityId entityId, Function<EntityId, String> errorMessageFunction) {
if (entityId == null || entityId.getId() == null) {
@ -64,8 +65,8 @@ public class Validator {
* This method validate <code>String</code> string. If string is invalid than throw
* <code>IncorrectParameterException</code> exception
*
* @param val the val
* @param errorMessage the error message for exception
* @param val the val
* @param errorMessage the error message for exception
*/
public static void validateString(String val, String errorMessage) {
if (val == null || val.isEmpty()) {
@ -73,12 +74,12 @@ public class Validator {
}
}
/*
/**
* This method validate <code>String</code> string. If string is invalid than throw
* <code>IncorrectParameterException</code> exception
*
* @param val the value
* @param errorMessageFunction the error message function that apply value
* @param val the value
* @param errorMessageFunction the error message function that applies value
*/
public static void validateString(String val, Function<String, String> errorMessageFunction) {
if (val == null || val.isEmpty()) {
@ -90,8 +91,8 @@ public class Validator {
* This method validate <code>long</code> value. If value isn't positive than throw
* <code>IncorrectParameterException</code> exception
*
* @param val the val
* @param errorMessage the error message for exception
* @param val the val
* @param errorMessage the error message for exception
*/
public static void validatePositiveNumber(long val, String errorMessage) {
if (val <= 0) {
@ -103,36 +104,78 @@ public class Validator {
* This method validate <code>UUID</code> id. If id is null than throw
* <code>IncorrectParameterException</code> exception
*
* @param id the id
* @param errorMessage the error message for exception
* @param id the id
* @param errorMessage the error message for exception
*/
@Deprecated
public static void validateId(UUID id, String errorMessage) {
if (id == null) {
throw new IncorrectParameterException(errorMessage);
}
}
/**
* This method validate <code>UUID</code> id. If id is null than throw
* <code>IncorrectParameterException</code> exception
*
* @param id the id
* @param errorMessageFunction the error message function for exception that applies id
*/
public static void validateId(UUID id, Function<UUID, String> errorMessageFunction) {
if (id == null) {
throw new IncorrectParameterException(errorMessageFunction.apply(id));
}
}
/**
* This method validate <code>UUIDBased</code> id. If id is null than throw
* <code>IncorrectParameterException</code> exception
*
* @param id the id
* @param errorMessage the error message for exception
* @param id the id
* @param errorMessage the error message for exception
*/
@Deprecated
public static void validateId(UUIDBased id, String errorMessage) {
if (id == null || id.getId() == null) {
throw new IncorrectParameterException(errorMessage);
}
}
/**
* This method validate <code>UUIDBased</code> id. If id is null than throw
* <code>IncorrectParameterException</code> exception
*
* @param id the id
* @param errorMessageFunction the error message function for exception that applies id
*/
public static void validateId(UUIDBased id, Function<UUIDBased, String> errorMessageFunction) {
if (id == null || id.getId() == null) {
throw new IncorrectParameterException(errorMessageFunction.apply(id));
}
}
/**
* This method validate <code>UUIDBased</code> id. If id is null than throw
* <code>IncorrectParameterException</code> exception
*
* @param id the id
* @param ids the list of ids
* @param errorMessageFunction the error message function for exception that applies ids
*/
static void validateId(UUIDBased id, List<? extends UUIDBased> ids, Function<List<? extends UUIDBased>, String> errorMessageFunction) {
if (id == null) {
throw new IncorrectParameterException(errorMessageFunction.apply(ids));
}
}
/**
* This method validate list of <code>UUIDBased</code> ids. If at least one of the ids is null than throw
* <code>IncorrectParameterException</code> exception
*
* @param ids the list of ids
* @param errorMessage the error message for exception
* @param ids the list of ids
* @param errorMessage the error message for exception
*/
@Deprecated
public static void validateIds(List<? extends UUIDBased> ids, String errorMessage) {
if (ids == null || ids.isEmpty()) {
throw new IncorrectParameterException(errorMessage);
@ -143,11 +186,28 @@ public class Validator {
}
}
/**
* This method validate list of <code>UUIDBased</code> ids. If at least one of the ids is null than throw
* <code>IncorrectParameterException</code> exception
*
* @param ids the list of ids
* @param errorMessageFunction the error message function for exception that applies ids
*/
public static void validateIds(List<? extends UUIDBased> ids, Function<List<? extends UUIDBased>, String> errorMessageFunction) {
if (ids == null || ids.isEmpty()) {
throw new IncorrectParameterException(errorMessageFunction.apply(ids));
} else {
for (UUIDBased id : ids) {
validateId(id, ids, errorMessageFunction);
}
}
}
/**
* This method validate <code>PageLink</code> page link. If pageLink is invalid than throw
* <code>IncorrectParameterException</code> exception
*
* @param pageLink the page link
* @param pageLink the page link
*/
public static void validatePageLink(PageLink pageLink) {
if (pageLink == null) {

6
dao/src/main/java/org/thingsboard/server/dao/settings/AdminSettingsServiceImpl.java

@ -39,14 +39,14 @@ public class AdminSettingsServiceImpl implements AdminSettingsService {
@Override
public AdminSettings findAdminSettingsById(TenantId tenantId, AdminSettingsId adminSettingsId) {
log.trace("Executing findAdminSettingsById [{}]", adminSettingsId);
Validator.validateId(adminSettingsId, "Incorrect adminSettingsId " + adminSettingsId);
Validator.validateId(adminSettingsId, id -> "Incorrect adminSettingsId " + id);
return adminSettingsDao.findById(tenantId, adminSettingsId.getId());
}
@Override
public AdminSettings findAdminSettingsByKey(TenantId tenantId, String key) {
log.trace("Executing findAdminSettingsByKey [{}]", key);
Validator.validateString(key, "Incorrect key " + key);
Validator.validateString(key, k -> "Incorrect key " + k);
return findAdminSettingsByTenantIdAndKey(TenantId.SYS_TENANT_ID, key);
}
@ -82,7 +82,7 @@ public class AdminSettingsServiceImpl implements AdminSettingsService {
@Override
public boolean deleteAdminSettingsByTenantIdAndKey(TenantId tenantId, String key) {
log.trace("Executing deleteAdminSettings, tenantId [{}], key [{}]", tenantId, key);
Validator.validateString(key, "Incorrect key " + key);
Validator.validateString(key, k -> "Incorrect key " + k);
return adminSettingsDao.removeByTenantIdAndKey(tenantId.getId(), key);
}

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

@ -51,6 +51,7 @@ import static org.thingsboard.server.dao.service.Validator.validateId;
public class TenantProfileServiceImpl extends AbstractCachedEntityService<TenantProfileCacheKey, TenantProfile, TenantProfileEvictEvent> implements TenantProfileService {
private static final String INCORRECT_TENANT_PROFILE_ID = "Incorrect tenantProfileId ";
public static final String INCORRECT_TENANT_ID = "Incorrect tenantId ";
@Autowired
private TenantProfileDao tenantProfileDao;
@ -74,7 +75,7 @@ public class TenantProfileServiceImpl extends AbstractCachedEntityService<Tenant
@Override
public TenantProfile findTenantProfileById(TenantId tenantId, TenantProfileId tenantProfileId) {
log.trace("Executing findTenantProfileById [{}]", tenantProfileId);
Validator.validateId(tenantProfileId, INCORRECT_TENANT_PROFILE_ID + tenantProfileId);
Validator.validateId(tenantProfileId, id -> INCORRECT_TENANT_PROFILE_ID + id);
return cache.getAndPutInTransaction(TenantProfileCacheKey.fromId(tenantProfileId),
() -> tenantProfileDao.findById(tenantId, tenantProfileId.getId()), true);
}
@ -111,7 +112,8 @@ public class TenantProfileServiceImpl extends AbstractCachedEntityService<Tenant
@Override
public void deleteTenantProfile(TenantId tenantId, TenantProfileId tenantProfileId) {
log.trace("Executing deleteTenantProfile [{}]", tenantProfileId);
validateId(tenantId, INCORRECT_TENANT_PROFILE_ID + tenantProfileId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(tenantProfileId, id -> INCORRECT_TENANT_PROFILE_ID + id);
TenantProfile tenantProfile = tenantProfileDao.findById(tenantId, tenantProfileId.getId());
if (tenantProfile != null && tenantProfile.isDefault()) {
throw new DataValidationException("Deletion of Default Tenant Profile is prohibited!");
@ -186,7 +188,8 @@ public class TenantProfileServiceImpl extends AbstractCachedEntityService<Tenant
@Override
public boolean setDefaultTenantProfile(TenantId tenantId, TenantProfileId tenantProfileId) {
log.trace("Executing setDefaultTenantProfile [{}]", tenantProfileId);
validateId(tenantId, INCORRECT_TENANT_PROFILE_ID + tenantProfileId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(tenantProfileId, id -> INCORRECT_TENANT_PROFILE_ID + id);
TenantProfile tenantProfile = tenantProfileDao.findById(tenantId, tenantProfileId.getId());
if (!tenantProfile.isDefault()) {
tenantProfile.setDefault(true);

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

@ -170,7 +170,7 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
@Override
public Tenant findTenantById(TenantId tenantId) {
log.trace("Executing findTenantById [{}]", tenantId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return cache.getAndPutInTransaction(tenantId, () -> tenantDao.findById(tenantId, tenantId.getId()), true);
}
@ -178,14 +178,14 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
@Override
public TenantInfo findTenantInfoById(TenantId tenantId) {
log.trace("Executing findTenantInfoById [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return tenantDao.findTenantInfoById(tenantId, tenantId.getId());
}
@Override
public ListenableFuture<Tenant> findTenantByIdAsync(TenantId callerId, TenantId tenantId) {
log.trace("Executing findTenantByIdAsync [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return tenantDao.findByIdAsync(callerId, tenantId.getId());
}
@ -234,7 +234,7 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
public void deleteTenant(TenantId tenantId) {
log.trace("Executing deleteTenant [{}]", tenantId);
Tenant tenant = findTenantById(tenantId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
entityViewService.deleteEntityViewsByTenantId(tenantId);
widgetsBundleService.deleteWidgetsBundlesByTenantId(tenantId);
widgetTypeService.deleteWidgetTypesByTenantId(tenantId);

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

@ -72,14 +72,14 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A
@Override
public void deleteApiUsageStateByTenantId(TenantId tenantId) {
log.trace("Executing deleteUsageRecordsByTenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
apiUsageStateDao.deleteApiUsageStateByTenantId(tenantId);
}
@Override
public void deleteApiUsageStateByEntityId(EntityId entityId) {
log.trace("Executing deleteApiUsageStateByEntityId [{}]", entityId);
validateId(entityId.getId(), "Invalid entity id");
validateId(entityId.getId(), id -> "Invalid entity id " + id);
apiUsageStateDao.deleteApiUsageStateByEntityId(entityId);
}
@ -87,7 +87,7 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A
public ApiUsageState createDefaultApiUsageState(TenantId tenantId, EntityId entityId) {
entityId = Objects.requireNonNullElse(entityId, tenantId);
log.trace("Executing createDefaultUsageRecord [{}]", entityId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
ApiUsageState apiUsageState = new ApiUsageState();
apiUsageState.setTenantId(tenantId);
apiUsageState.setEntityId(entityId);
@ -142,7 +142,7 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A
@Override
public ApiUsageState update(ApiUsageState apiUsageState) {
log.trace("Executing save [{}]", apiUsageState.getTenantId());
validateId(apiUsageState.getTenantId(), INCORRECT_TENANT_ID + apiUsageState.getTenantId());
validateId(apiUsageState.getTenantId(), id -> INCORRECT_TENANT_ID + id);
validateId(apiUsageState.getId(), "Can't save new usage state. Only update is allowed!");
ApiUsageState savedState = apiUsageStateDao.save(apiUsageState.getTenantId(), apiUsageState);
eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(savedState.getTenantId()).entityId(savedState.getId())
@ -153,21 +153,21 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A
@Override
public ApiUsageState findTenantApiUsageState(TenantId tenantId) {
log.trace("Executing findTenantUsageRecord, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
return apiUsageStateDao.findTenantApiUsageState(tenantId.getId());
}
@Override
public ApiUsageState findApiUsageStateByEntityId(EntityId entityId) {
validateId(entityId.getId(), "Invalid entity id");
validateId(entityId.getId(), id -> "Invalid entity id " + id);
return apiUsageStateDao.findApiUsageStateByEntityId(entityId);
}
@Override
public ApiUsageState findApiUsageStateById(TenantId tenantId, ApiUsageStateId id) {
log.trace("Executing findApiUsageStateById, tenantId [{}], apiUsageStateId [{}]", tenantId, id);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(id, "Incorrect apiUsageStateId " + id);
validateId(tenantId, t -> INCORRECT_TENANT_ID + t);
validateId(id, u -> "Incorrect apiUsageStateId " + u);
return apiUsageStateDao.findById(tenantId, id.getId());
}

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

@ -100,7 +100,7 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
@Override
public User findUserByEmail(TenantId tenantId, String email) {
log.trace("Executing findUserByEmail [{}]", email);
validateString(email, "Incorrect email " + email);
validateString(email, e -> "Incorrect email " + e);
if (userLoginCaseSensitive) {
return userDao.findByEmail(tenantId, email);
} else {
@ -111,22 +111,22 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
@Override
public User findUserByTenantIdAndEmail(TenantId tenantId, String email) {
log.trace("Executing findUserByTenantIdAndEmail [{}][{}]", tenantId, email);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateString(email, "Incorrect email " + email);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateString(email, e -> "Incorrect email " + e);
return userDao.findByTenantIdAndEmail(tenantId, email);
}
@Override
public User findUserById(TenantId tenantId, UserId userId) {
log.trace("Executing findUserById [{}]", userId);
validateId(userId, INCORRECT_USER_ID + userId);
validateId(userId, id -> INCORRECT_USER_ID + id);
return userDao.findById(tenantId, userId.getId());
}
@Override
public ListenableFuture<User> findUserByIdAsync(TenantId tenantId, UserId userId) {
log.trace("Executing findUserByIdAsync [{}]", userId);
validateId(userId, INCORRECT_USER_ID + userId);
validateId(userId, id -> INCORRECT_USER_ID + id);
return userDao.findByIdAsync(tenantId, userId.getId());
}
@ -159,21 +159,21 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
@Override
public UserCredentials findUserCredentialsByUserId(TenantId tenantId, UserId userId) {
log.trace("Executing findUserCredentialsByUserId [{}]", userId);
validateId(userId, INCORRECT_USER_ID + userId);
validateId(userId, id -> INCORRECT_USER_ID + id);
return userCredentialsDao.findByUserId(tenantId, userId.getId());
}
@Override
public UserCredentials findUserCredentialsByActivateToken(TenantId tenantId, String activateToken) {
log.trace("Executing findUserCredentialsByActivateToken [{}]", activateToken);
validateString(activateToken, "Incorrect activateToken " + activateToken);
validateString(activateToken, t -> "Incorrect activateToken " + t);
return userCredentialsDao.findByActivateToken(tenantId, activateToken);
}
@Override
public UserCredentials findUserCredentialsByResetToken(TenantId tenantId, String resetToken) {
log.trace("Executing findUserCredentialsByResetToken [{}]", resetToken);
validateString(resetToken, "Incorrect resetToken " + resetToken);
validateString(resetToken, t -> "Incorrect resetToken " + t);
return userCredentialsDao.findByResetToken(tenantId, resetToken);
}
@ -192,8 +192,8 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
@Override
public UserCredentials activateUserCredentials(TenantId tenantId, String activateToken, String password) {
log.trace("Executing activateUserCredentials activateToken [{}], password [{}]", activateToken, password);
validateString(activateToken, "Incorrect activateToken " + activateToken);
validateString(password, "Incorrect password " + password);
validateString(activateToken, t -> "Incorrect activateToken " + t);
validateString(password, p -> "Incorrect password " + p);
UserCredentials userCredentials = userCredentialsDao.findByActivateToken(tenantId, activateToken);
if (userCredentials == null) {
throw new IncorrectParameterException(String.format("Unable to find user credentials by activateToken [%s]", activateToken));
@ -259,7 +259,7 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
Objects.requireNonNull(user, "User is null");
UserId userId = user.getId();
log.trace("[{}] Executing deleteUser [{}]", tenantId, userId);
validateId(userId, INCORRECT_USER_ID + userId);
validateId(userId, id -> INCORRECT_USER_ID + id);
userCredentialsDao.removeByUserId(tenantId, userId);
userAuthSettingsDao.removeByUserId(userId);
deleteEntityRelations(tenantId, userId);
@ -276,7 +276,7 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
@Override
public PageData<User> findUsersByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findUsersByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return userDao.findByTenantId(tenantId.getId(), pageLink);
}
@ -284,7 +284,7 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
@Override
public PageData<User> findTenantAdmins(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findTenantAdmins, tenantId [{}], pageLink [{}]", tenantId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
return userDao.findTenantAdmins(tenantId.getId(), pageLink);
}
@ -317,15 +317,15 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
@Override
public void deleteTenantAdmins(TenantId tenantId) {
log.trace("Executing deleteTenantAdmins, tenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantAdminsRemover.removeEntities(tenantId, tenantId);
}
@Override
public PageData<User> findCustomerUsers(TenantId tenantId, CustomerId customerId, PageLink pageLink) {
log.trace("Executing findCustomerUsers, tenantId [{}], customerId [{}], pageLink [{}]", tenantId, customerId, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, "Incorrect customerId " + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> "Incorrect customerId " + id);
validatePageLink(pageLink);
return userDao.findCustomerUsers(tenantId.getId(), customerId.getId(), pageLink);
}
@ -333,24 +333,24 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic
@Override
public PageData<User> findUsersByCustomerIds(TenantId tenantId, List<CustomerId> customerIds, PageLink pageLink) {
log.trace("Executing findTenantAndCustomerUsers, tenantId [{}], customerIds [{}], pageLink [{}]", tenantId, customerIds, pageLink);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validatePageLink(pageLink);
customerIds.forEach(customerId -> {validateId(customerId, "Incorrect customerId " + customerId);});
customerIds.forEach(customerId -> validateId(customerId, id -> "Incorrect customerId " + id));
return userDao.findUsersByCustomerIds(tenantId.getId(), customerIds, pageLink);
}
@Override
public void deleteCustomerUsers(TenantId tenantId, CustomerId customerId) {
log.trace("Executing deleteCustomerUsers, customerId [{}]", customerId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
validateId(customerId, "Incorrect customerId " + customerId);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateId(customerId, id -> "Incorrect customerId " + id);
customerUsersRemover.removeEntities(tenantId, customerId);
}
@Override
public void setUserCredentialsEnabled(TenantId tenantId, UserId userId, boolean enabled) {
log.trace("Executing setUserCredentialsEnabled [{}], [{}]", userId, enabled);
validateId(userId, INCORRECT_USER_ID + userId);
validateId(userId, id -> INCORRECT_USER_ID + id);
UserCredentials userCredentials = userCredentialsDao.findByUserId(tenantId, userId.getId());
userCredentials.setEnabled(enabled);
saveUserCredentials(tenantId, userCredentials);

8
dao/src/main/java/org/thingsboard/server/dao/user/UserSettingsServiceImpl.java

@ -48,14 +48,14 @@ public class UserSettingsServiceImpl extends AbstractCachedService<UserSettingsC
@Override
public UserSettings saveUserSettings(TenantId tenantId, UserSettings userSettings) {
log.trace("Executing saveUserSettings for user [{}], [{}]", userSettings.getUserId(), userSettings);
validateId(userSettings.getUserId(), INCORRECT_USER_ID + userSettings.getUserId());
validateId(userSettings.getUserId(), id -> INCORRECT_USER_ID + id);
return doSaveUserSettings(tenantId, userSettings);
}
@Override
public void updateUserSettings(TenantId tenantId, UserId userId, UserSettingsType type, JsonNode settings) {
log.trace("Executing updateUserSettings for user [{}], [{}]", userId, settings);
validateId(userId, INCORRECT_USER_ID + userId);
validateId(userId, id -> INCORRECT_USER_ID + id);
var key = new UserSettingsCompositeKey(userId.getId(), type.name());
UserSettings oldSettings = userSettingsDao.findById(tenantId, key);
@ -71,7 +71,7 @@ public class UserSettingsServiceImpl extends AbstractCachedService<UserSettingsC
@Override
public UserSettings findUserSettings(TenantId tenantId, UserId userId, UserSettingsType type) {
log.trace("Executing findUserSettings for user [{}]", userId);
validateId(userId, INCORRECT_USER_ID + userId);
validateId(userId, id -> INCORRECT_USER_ID + id);
var key = new UserSettingsCompositeKey(userId.getId(), type.name());
return cache.getAndPutInTransaction(key,
@ -81,7 +81,7 @@ public class UserSettingsServiceImpl extends AbstractCachedService<UserSettingsC
@Override
public void deleteUserSettings(TenantId tenantId, UserId userId, UserSettingsType type, List<String> jsonPaths) {
log.trace("Executing deleteUserSettings for user [{}]", userId);
validateId(userId, INCORRECT_USER_ID + userId);
validateId(userId, id -> INCORRECT_USER_ID + id);
var key = new UserSettingsCompositeKey(userId.getId(), type.name());
UserSettings userSettings = userSettingsDao.findById(tenantId, key);
if (userSettings == null) {

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

@ -71,21 +71,21 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
@Override
public WidgetType findWidgetTypeById(TenantId tenantId, WidgetTypeId widgetTypeId) {
log.trace("Executing findWidgetTypeById [{}]", widgetTypeId);
Validator.validateId(widgetTypeId, "Incorrect widgetTypeId " + widgetTypeId);
Validator.validateId(widgetTypeId, id -> "Incorrect widgetTypeId " + id);
return widgetTypeDao.findWidgetTypeById(tenantId, widgetTypeId.getId());
}
@Override
public WidgetTypeDetails findWidgetTypeDetailsById(TenantId tenantId, WidgetTypeId widgetTypeId) {
log.trace("Executing findWidgetTypeDetailsById [{}]", widgetTypeId);
Validator.validateId(widgetTypeId, "Incorrect widgetTypeId " + widgetTypeId);
Validator.validateId(widgetTypeId, id -> "Incorrect widgetTypeId " + id);
return widgetTypeDao.findById(tenantId, widgetTypeId.getId());
}
@Override
public boolean widgetTypeExistsByTenantIdAndWidgetTypeId(TenantId tenantId, WidgetTypeId widgetTypeId) {
log.trace("Executing widgetTypeExistsByTenantIdAndWidgetTypeId, tenantId [{}], widgetTypeId [{}]", tenantId, widgetTypeId);
Validator.validateId(widgetTypeId, "Incorrect widgetTypeId " + widgetTypeId);
Validator.validateId(widgetTypeId, id -> "Incorrect widgetTypeId " + id);
return widgetTypeDao.existsByTenantIdAndId(tenantId, widgetTypeId.getId());
}
@ -110,7 +110,7 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
@Override
public void deleteWidgetType(TenantId tenantId, WidgetTypeId widgetTypeId) {
log.trace("Executing deleteWidgetType [{}]", widgetTypeId);
Validator.validateId(widgetTypeId, "Incorrect widgetTypeId " + widgetTypeId);
Validator.validateId(widgetTypeId, id -> "Incorrect widgetTypeId " + id);
widgetTypeDao.removeById(tenantId, widgetTypeId.getId());
eventPublisher.publishEvent(DeleteEntityEvent.builder().tenantId(tenantId).entityId(widgetTypeId).build());
}
@ -126,7 +126,7 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
public PageData<WidgetTypeInfo> findAllTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List<String> widgetTypes, PageLink pageLink) {
log.trace("Executing findAllTenantWidgetTypesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], deprecatedFilter [{}], widgetTypes [{}], pageLink [{}]",
tenantId, fullSearch, deprecatedFilter, widgetTypes, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return widgetTypeDao.findAllTenantWidgetTypesByTenantId(tenantId.getId(), fullSearch, deprecatedFilter, widgetTypes, pageLink);
}
@ -135,7 +135,7 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
public PageData<WidgetTypeInfo> findTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List<String> widgetTypes, PageLink pageLink) {
log.trace("Executing findTenantWidgetTypesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], deprecatedFilter [{}], widgetTypes [{}], pageLink [{}]",
tenantId, fullSearch, deprecatedFilter, widgetTypes, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return widgetTypeDao.findTenantWidgetTypesByTenantId(tenantId.getId(), fullSearch, deprecatedFilter, widgetTypes, pageLink);
}
@ -143,16 +143,16 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
@Override
public List<WidgetType> findWidgetTypesByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId) {
log.trace("Executing findWidgetTypesByWidgetsBundleId, tenantId [{}], widgetsBundleId [{}]", tenantId, widgetsBundleId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(widgetsBundleId, INCORRECT_WIDGETS_BUNDLE_ID + widgetsBundleId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(widgetsBundleId, id -> INCORRECT_WIDGETS_BUNDLE_ID + id);
return widgetTypeDao.findWidgetTypesByWidgetsBundleId(tenantId.getId(), widgetsBundleId.getId());
}
@Override
public List<WidgetTypeDetails> findWidgetTypesDetailsByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId) {
log.trace("Executing findWidgetTypesDetailsByWidgetsBundleId, tenantId [{}], widgetsBundleId [{}]", tenantId, widgetsBundleId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(widgetsBundleId, INCORRECT_WIDGETS_BUNDLE_ID + widgetsBundleId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(widgetsBundleId, id -> INCORRECT_WIDGETS_BUNDLE_ID + id);
return widgetTypeDao.findWidgetTypesDetailsByWidgetsBundleId(tenantId.getId(), widgetsBundleId.getId());
}
@ -162,8 +162,8 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
DeprecatedFilter deprecatedFilter, List<String> widgetTypes, PageLink pageLink) {
log.trace("Executing findWidgetTypesInfosByWidgetsBundleId, tenantId [{}], widgetsBundleId [{}], fullSearch [{}], deprecatedFilter [{}], widgetTypes [{}], pageLink [{}]",
tenantId, widgetsBundleId, fullSearch, deprecatedFilter, widgetTypes, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(widgetsBundleId, INCORRECT_WIDGETS_BUNDLE_ID + widgetsBundleId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(widgetsBundleId, id -> INCORRECT_WIDGETS_BUNDLE_ID + id);
Validator.validatePageLink(pageLink);
return widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId(tenantId.getId(), widgetsBundleId.getId(), fullSearch, deprecatedFilter, widgetTypes, pageLink);
}
@ -171,27 +171,27 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
@Override
public List<String> findWidgetFqnsByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId) {
log.trace("Executing findWidgetTypesInfosByWidgetsBundleId, tenantId [{}], widgetsBundleId [{}]", tenantId, widgetsBundleId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(widgetsBundleId, INCORRECT_WIDGETS_BUNDLE_ID + widgetsBundleId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(widgetsBundleId, id -> INCORRECT_WIDGETS_BUNDLE_ID + id);
return widgetTypeDao.findWidgetFqnsByWidgetsBundleId(tenantId.getId(), widgetsBundleId.getId());
}
@Override
public WidgetType findWidgetTypeByTenantIdAndFqn(TenantId tenantId, String fqn) {
log.trace("Executing findWidgetTypeByTenantIdAndFqn, tenantId [{}], fqn [{}]", tenantId, fqn);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateString(fqn, "Incorrect fqn " + fqn);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateString(fqn, f -> "Incorrect fqn " + f);
return widgetTypeDao.findByTenantIdAndFqn(tenantId.getId(), fqn);
}
@Override
public void updateWidgetsBundleWidgetTypes(TenantId tenantId, WidgetsBundleId widgetsBundleId, List<WidgetTypeId> widgetTypeIds) {
log.trace("Executing updateWidgetsBundleWidgetTypes, tenantId [{}], widgetsBundleId [{}], widgetTypeIds [{}]", tenantId, widgetsBundleId, widgetTypeIds);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(widgetsBundleId, INCORRECT_WIDGETS_BUNDLE_ID + widgetsBundleId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateId(widgetsBundleId, id -> INCORRECT_WIDGETS_BUNDLE_ID + id);
Validator.checkNotNull(widgetTypeIds, "Incorrect widgetTypeIds " + widgetTypeIds);
if (!widgetTypeIds.isEmpty()) {
validateIds(widgetTypeIds, "Incorrect widgetTypeIds " + widgetTypeIds);
validateIds(widgetTypeIds, ids -> "Incorrect widgetTypeIds " + ids);
}
List<WidgetsBundleWidget> bundleWidgets = new ArrayList<>();
for (int index = 0; index < widgetTypeIds.size(); index++) {
@ -222,7 +222,7 @@ public class WidgetTypeServiceImpl implements WidgetTypeService {
@Override
public void deleteWidgetTypesByTenantId(TenantId tenantId) {
log.trace("Executing deleteWidgetTypesByTenantId, tenantId [{}]", tenantId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantWidgetTypeRemover.removeEntities(tenantId, tenantId);
}

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

@ -66,7 +66,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
@Override
public WidgetsBundle findWidgetsBundleById(TenantId tenantId, WidgetsBundleId widgetsBundleId) {
log.trace("Executing findWidgetsBundleById [{}]", widgetsBundleId);
Validator.validateId(widgetsBundleId, "Incorrect widgetsBundleId " + widgetsBundleId);
Validator.validateId(widgetsBundleId, id -> "Incorrect widgetsBundleId " + id);
return widgetsBundleDao.findById(tenantId, widgetsBundleId.getId());
}
@ -91,7 +91,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
@Override
public void deleteWidgetsBundle(TenantId tenantId, WidgetsBundleId widgetsBundleId) {
log.trace("Executing deleteWidgetsBundle [{}]", widgetsBundleId);
Validator.validateId(widgetsBundleId, "Incorrect widgetsBundleId " + widgetsBundleId);
Validator.validateId(widgetsBundleId, id -> "Incorrect widgetsBundleId " + id);
WidgetsBundle widgetsBundle = findWidgetsBundleById(tenantId, widgetsBundleId);
if (widgetsBundle == null) {
throw new IncorrectParameterException("Unable to delete non-existent widgets bundle.");
@ -103,8 +103,8 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
@Override
public WidgetsBundle findWidgetsBundleByTenantIdAndAlias(TenantId tenantId, String alias) {
log.trace("Executing findWidgetsBundleByTenantIdAndAlias, tenantId [{}], alias [{}]", tenantId, alias);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateString(alias, "Incorrect alias " + alias);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validateString(alias, a -> "Incorrect alias " + a);
return widgetsBundleDao.findWidgetsBundleByTenantIdAndAlias(tenantId.getId(), alias);
}
@ -134,7 +134,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
@Override
public PageData<WidgetsBundle> findTenantWidgetsBundlesByTenantId(TenantId tenantId, PageLink pageLink) {
log.trace("Executing findTenantWidgetsBundlesByTenantId, tenantId [{}], pageLink [{}]", tenantId, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return widgetsBundleDao.findTenantWidgetsBundlesByTenantId(tenantId.getId(), pageLink);
}
@ -142,7 +142,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
@Override
public PageData<WidgetsBundle> findAllTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink) {
log.trace("Executing findAllTenantWidgetsBundlesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], pageLink [{}]", tenantId, fullSearch, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId.getId(), fullSearch, pageLink);
}
@ -150,7 +150,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
@Override
public PageData<WidgetsBundle> findTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink) {
log.trace("Executing findTenantWidgetsBundlesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], pageLink [{}]", tenantId, fullSearch, pageLink);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
Validator.validatePageLink(pageLink);
return widgetsBundleDao.findTenantWidgetsBundlesByTenantId(tenantId.getId(), fullSearch, pageLink);
}
@ -158,7 +158,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
@Override
public List<WidgetsBundle> findAllTenantWidgetsBundlesByTenantId(TenantId tenantId) {
log.trace("Executing findAllTenantWidgetsBundlesByTenantId, tenantId [{}]", tenantId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
List<WidgetsBundle> widgetsBundles = new ArrayList<>();
PageLink pageLink = new PageLink(DEFAULT_WIDGETS_BUNDLE_LIMIT);
PageData<WidgetsBundle> pageData;
@ -175,7 +175,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService {
@Override
public void deleteWidgetsBundlesByTenantId(TenantId tenantId) {
log.trace("Executing deleteWidgetsBundlesByTenantId, tenantId [{}]", tenantId);
Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
Validator.validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
tenantWidgetsBundleRemover.removeEntities(tenantId, tenantId);
}

130
dao/src/test/java/org/thingsboard/server/dao/service/ValidatorTest.java

@ -0,0 +1,130 @@
/**
* Copyright © 2016-2024 The Thingsboard Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.server.dao.service;
import org.junit.jupiter.api.Test;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UUIDBased;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.dao.exception.IncorrectParameterException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
class ValidatorTest {
final DeviceId goodDeviceId = new DeviceId(UUID.fromString("18594c15-9f05-4cda-b58e-70172467c3e5"));
final UserId nullUserId = new UserId(null);
@Test
void validateEntityIdTest() {
Validator.validateEntityId(TenantId.SYS_TENANT_ID, id -> "Incorrect entityId " + id);
Validator.validateEntityId(goodDeviceId, id -> "Incorrect entityId " + id);
assertThatThrownBy(() -> Validator.validateEntityId(null, id -> "Incorrect entityId " + id))
.as("EntityId is null")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect entityId null");
assertThatThrownBy(() -> Validator.validateEntityId(nullUserId, id -> "Incorrect entityId " + id))
.as("EntityId with null UUID")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect entityId null");
}
@Test
void validateStringTest() {
Validator.validateString("Hello", s -> "Incorrect string " + s);
Validator.validateString(" ", s -> "Incorrect string " + s);
Validator.validateString("\n", s -> "Incorrect string " + s);
assertThatThrownBy(() -> Validator.validateString(null, s -> "Incorrect string " + s))
.as("String is null")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect string null");
assertThatThrownBy(() -> Validator.validateString("", s -> "Incorrect string " + s))
.as("String is empty")
.isInstanceOf(IncorrectParameterException.class)
.hasMessage("Incorrect string ");
assertThatThrownBy(() -> Validator.validateString("", s -> "Incorrect string [" + s + "]"))
.as("String is empty []")
.isInstanceOf(IncorrectParameterException.class)
.hasMessage("Incorrect string []");
}
@Test
void validateUUIDIdTest() {
Validator.validateId(UUID.randomUUID(), id -> "Incorrect Id " + id);
assertThatThrownBy(() -> Validator.validateId((UUID) null, id -> "Incorrect Id " + id))
.as("Id is null")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect Id null");
}
@Test
void validateUUIDBasedIdTest() {
Validator.validateId(TenantId.SYS_TENANT_ID, id -> "Incorrect Id " + id);
Validator.validateId(goodDeviceId, id -> "Incorrect Id " + id);
assertThatThrownBy(() -> Validator.validateId((UUIDBased) null, id -> "Incorrect Id " + id))
.as("Id is null")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect Id null");
assertThatThrownBy(() -> Validator.validateId(nullUserId, id -> "Incorrect Id " + id))
.as("Id with null UUIDBased")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect Id null");
}
@Test
void validateIdsTest() {
List<? extends UUIDBased> list = List.of(goodDeviceId);
Validator.validateIds(list, ids -> "Incorrect Id " + ids);
assertThatThrownBy(() -> Validator.validateIds(null, id -> "Incorrect Ids " + id))
.as("Ids are null")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect Ids null");
assertThatThrownBy(() -> Validator.validateIds(Collections.emptyList(), ids -> "Incorrect Ids " + ids))
.as("List is empty")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect Ids []");
List<UUIDBased> badList = new ArrayList<>(2);
badList.add(goodDeviceId);
badList.add(null);
// Incorrect Ids [18594c15-9f05-4cda-b58e-70172467c3e5, null]
assertThatThrownBy(() -> Validator.validateIds(badList, ids -> "Incorrect Ids " + ids))
.as("List contains null")
.isInstanceOf(IncorrectParameterException.class)
.hasMessageContaining("Incorrect Ids ")
.hasMessageContaining(goodDeviceId.getId().toString())
.hasMessageContaining("null");
}
}
Loading…
Cancel
Save