From 652a8c9e8969014ba648f579b614874b172812bb Mon Sep 17 00:00:00 2001 From: ShvaykaD Date: Thu, 22 Dec 2022 13:02:39 +0200 Subject: [PATCH] added getEntityType method in EntityDaoService --- .../server/dao/entity/EntityDaoService.java | 3 ++ .../server/dao/resource/ResourceService.java | 1 + .../server/dao/rpc/RpcService.java | 1 + dao/pom.xml | 4 --- .../server/dao/alarm/BaseAlarmService.java | 6 ++++ .../dao/asset/AssetProfileServiceImpl.java | 6 ++++ .../server/dao/asset/BaseAssetService.java | 5 +++ .../dao/customer/CustomerServiceImpl.java | 6 ++++ .../dao/dashboard/DashboardServiceImpl.java | 6 ++++ .../dao/device/DeviceProfileServiceImpl.java | 6 ++++ .../server/dao/device/DeviceServiceImpl.java | 5 +++ .../server/dao/edge/EdgeServiceImpl.java | 5 +++ .../entity/DefaultEntityServiceRegistry.java | 31 +++++++------------ .../dao/entityview/EntityViewServiceImpl.java | 5 +++ .../server/dao/ota/BaseOtaPackageService.java | 6 ++++ .../server/dao/queue/BaseQueueService.java | 6 ++++ .../dao/resource/BaseResourceService.java | 6 ++++ .../server/dao/rpc/BaseRpcService.java | 6 ++++ .../server/dao/rule/BaseRuleChainService.java | 5 +++ .../dao/tenant/TenantProfileServiceImpl.java | 6 ++++ .../server/dao/tenant/TenantServiceImpl.java | 7 +++++ .../usagerecord/ApiUsageStateServiceImpl.java | 6 ++++ .../server/dao/user/UserServiceImpl.java | 6 ++++ .../dao/widget/WidgetTypeServiceImpl.java | 6 ++++ .../dao/widget/WidgetsBundleServiceImpl.java | 6 ++++ pom.xml | 6 ---- 26 files changed, 132 insertions(+), 30 deletions(-) diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityDaoService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityDaoService.java index ce181e6d5a..f8a7c4a5b9 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityDaoService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/entity/EntityDaoService.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.dao.entity; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.HasId; import org.thingsboard.server.common.data.id.TenantId; @@ -25,4 +26,6 @@ public interface EntityDaoService { Optional> findEntity(TenantId tenantId, EntityId entityId); + EntityType getEntityType(); + } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index fcb8ecebab..04b4044ca0 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -28,6 +28,7 @@ import org.thingsboard.server.dao.entity.EntityDaoService; import java.util.List; public interface ResourceService extends EntityDaoService { + TbResource saveResource(TbResource resource); TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceId); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java index 727a1aadb8..319247e84e 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/rpc/RpcService.java @@ -26,6 +26,7 @@ import org.thingsboard.server.common.data.rpc.RpcStatus; import org.thingsboard.server.dao.entity.EntityDaoService; public interface RpcService extends EntityDaoService { + Rpc save(Rpc rpc); void deleteRpc(TenantId tenantId, RpcId id); diff --git a/dao/pom.xml b/dao/pom.xml index 7ccd82eb80..8de92c3640 100644 --- a/dao/pom.xml +++ b/dao/pom.xml @@ -108,10 +108,6 @@ org.apache.commons commons-lang3 - - org.apache.commons - commons-text - commons-collections commons-collections diff --git a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java index 30be664bc3..a041953036 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java @@ -27,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.thingsboard.common.util.ThingsBoardThreadFactory; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.common.data.alarm.AlarmInfo; import org.thingsboard.server.common.data.alarm.AlarmQuery; @@ -409,4 +410,9 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ return Optional.ofNullable(findAlarmById(tenantId, new AlarmId(entityId.getId()))); } + @Override + public EntityType getEntityType() { + return EntityType.ALARM; + } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java index b7bd6afd75..98e7bbc488 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.event.TransactionalEventListener; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.AssetProfile; @@ -272,6 +273,11 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService tenantAssetProfilesRemover = new PaginatedRemover<>() { diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java b/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java index 4bc91f1d47..e8db9e5601 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java @@ -437,4 +437,9 @@ public class BaseAssetService extends AbstractCachedEntityService { private Customer customer; diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java index ed8c30af06..9dad6a22d9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileServiceImpl.java @@ -28,6 +28,7 @@ import org.thingsboard.server.common.data.DeviceProfileInfo; import org.thingsboard.server.common.data.DeviceProfileProvisionType; import org.thingsboard.server.common.data.DeviceProfileType; import org.thingsboard.server.common.data.DeviceTransportType; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileConfiguration; import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileTransportConfiguration; @@ -294,6 +295,11 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService tenantDeviceProfilesRemover = new PaginatedRemover<>() { diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java index 56ffea98be..e5ae9de626 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceServiceImpl.java @@ -713,4 +713,9 @@ public class DeviceServiceImpl extends AbstractCachedEntityService entityDaoServicesMap; - private final ApplicationContext applicationContext; + private final Map entityDaoServicesMap; public DefaultEntityServiceRegistry(ApplicationContext applicationContext) { this.applicationContext = applicationContext; + this.entityDaoServicesMap = new HashMap<>(); } @PostConstruct public void init() { - entityDaoServicesMap = applicationContext.getBeansOfType(EntityDaoService.class); - } - - @PreDestroy - public void destroy() { - if (entityDaoServicesMap != null) { - entityDaoServicesMap.clear(); - } + applicationContext.getBeansOfType(EntityDaoService.class).values().forEach(entityDaoService -> { + EntityType entityType = entityDaoService.getEntityType(); + entityDaoServicesMap.put(entityType, entityDaoService); + if (EntityType.RULE_CHAIN.equals(entityType)) { + entityDaoServicesMap.put(EntityType.RULE_NODE, entityDaoService); + } + }); } @Override public EntityDaoService getServiceByEntityType(EntityType entityType) { - String beanName = EntityType.RULE_NODE.equals(entityType) ? getBeanName(EntityType.RULE_CHAIN) : getBeanName(entityType); - return entityDaoServicesMap.get(beanName); - } - - private String getBeanName(EntityType entityType) { - return CaseUtils.toCamelCase(entityType.name(), true, '_') + SERVICE_SUFFIX; + return entityDaoServicesMap.get(entityType); } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java index ef72b01ff8..a510c9d50d 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/entityview/EntityViewServiceImpl.java @@ -416,4 +416,9 @@ public class EntityViewServiceImpl extends AbstractCachedEntityService tenantQueuesRemover = new PaginatedRemover<>() { diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index d144c18ab7..5988970ad5 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -20,6 +20,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.hibernate.exception.ConstraintViolationException; import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; @@ -141,6 +142,11 @@ public class BaseResourceService implements ResourceService { return Optional.ofNullable(findResourceInfoById(tenantId, new TbResourceId(entityId.getId()))); } + @Override + public EntityType getEntityType() { + return EntityType.TB_RESOURCE; + } + @Override public long sumDataSizeByTenantId(TenantId tenantId) { return resourceDao.sumDataSizeByTenantId(tenantId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java b/dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java index 24e9843849..27c4b37145 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/rpc/BaseRpcService.java @@ -19,6 +19,7 @@ import com.google.common.util.concurrent.ListenableFuture; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.HasId; @@ -102,6 +103,11 @@ public class BaseRpcService implements RpcService { return Optional.ofNullable(findById(tenantId, new RpcId(entityId.getId()))); } + @Override + public EntityType getEntityType() { + return EntityType.RPC; + } + private PaginatedRemover tenantRpcRemover = new PaginatedRemover<>() { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java index 8ee3f4d0a9..e5fa0c28da 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java @@ -768,6 +768,11 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC return Optional.ofNullable(hasId); } + @Override + public EntityType getEntityType() { + return EntityType.RULE_CHAIN; + } + private List getRuleChainToNodeRelations(TenantId tenantId, RuleChainId ruleChainId) { return relationService.findByFrom(tenantId, ruleChainId, RelationTypeGroup.RULE_CHAIN); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java index f6e9e29ed0..078bf77626 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantProfileServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.event.TransactionalEventListener; import org.thingsboard.server.common.data.EntityInfo; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.HasId; @@ -212,6 +213,11 @@ public class TenantProfileServiceImpl extends AbstractCachedEntityService tenantProfilesRemover = new PaginatedRemover<>() { diff --git a/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java index 595673fb79..106ac695d8 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.event.TransactionalEventListener; import org.thingsboard.server.cache.TbTransactionalCache; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.TenantInfo; import org.thingsboard.server.common.data.TenantProfile; @@ -264,4 +265,10 @@ public class TenantServiceImpl extends AbstractCachedEntityService> findEntity(TenantId tenantId, EntityId entityId) { return Optional.ofNullable(findTenantById(new TenantId(entityId.getId()))); } + + @Override + public EntityType getEntityType() { + return EntityType.TENANT; + } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java index d956a007a8..b8c55d876b 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java @@ -167,4 +167,10 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A public Optional> findEntity(TenantId tenantId, EntityId entityId) { return Optional.ofNullable(findApiUsageStateById(tenantId, new ApiUsageStateId(entityId.getId()))); } + + @Override + public EntityType getEntityType() { + return EntityType.API_USAGE_STATE; + } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java index 12348cb74b..912a10b44c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java @@ -28,6 +28,7 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.id.CustomerId; @@ -405,4 +406,9 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic return Optional.ofNullable(findUserById(tenantId, new UserId(entityId.getId()))); } + @Override + public EntityType getEntityType() { + return EntityType.USER; + } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java index 921344bd43..a26fc49c78 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java @@ -18,6 +18,7 @@ package org.thingsboard.server.dao.widget; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.HasId; import org.thingsboard.server.common.data.id.TenantId; @@ -120,4 +121,9 @@ public class WidgetTypeServiceImpl implements WidgetTypeService { return Optional.ofNullable(findWidgetTypeById(tenantId, new WidgetTypeId(entityId.getId()))); } + @Override + public EntityType getEntityType() { + return EntityType.WIDGET_TYPE; + } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java index 719f250dca..e32366e3a3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java @@ -18,6 +18,7 @@ package org.thingsboard.server.dao.widget; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.HasId; import org.thingsboard.server.common.data.id.TenantId; @@ -159,6 +160,11 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService { return Optional.ofNullable(findWidgetsBundleById(tenantId, new WidgetsBundleId(entityId.getId()))); } + @Override + public EntityType getEntityType() { + return EntityType.WIDGETS_BUNDLE; + } + private PaginatedRemover tenantWidgetsBundleRemover = new PaginatedRemover() { diff --git a/pom.xml b/pom.xml index 941f356111..132bb5b6bc 100755 --- a/pom.xml +++ b/pom.xml @@ -61,7 +61,6 @@ 2.11.0 1.2 1.4 - 1.9 4.5.13 4.4.14 2.8.1 @@ -1364,11 +1363,6 @@ commons-csv ${commons-csv.version} - - org.apache.commons - commons-text - ${commons-text.version} - org.apache.httpcomponents httpclient