diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java b/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java index 57d2d265ab..6ed5c01f12 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/EntityStateSourcingListener.java @@ -69,22 +69,40 @@ public class EntityStateSourcingListener { boolean isCreated = event.getAdded() != null && event.getAdded(); ComponentLifecycleEvent lifecycleEvent = isCreated ? ComponentLifecycleEvent.CREATED : ComponentLifecycleEvent.UPDATED; - if (isCommonEntityStateUpdated(entityId)) { - tbClusterService.broadcastEntityStateChangeEvent(tenantId, entityId, lifecycleEvent); - } else if (EntityType.TENANT.equals(entityType)) { - onTenantUpdate((Tenant) event.getEntity(), isCreated); - } else if (EntityType.TENANT_PROFILE.equals(entityType)) { - onTenantProfileUpdate((TenantProfile) event.getEntity(), isCreated); - } else if (EntityType.DEVICE.equals(entityType)) { - onDeviceUpdate(event.getEntity(), event.getOldEntity()); - } else if (EntityType.DEVICE_PROFILE.equals(entityType)) { - onDeviceProfileUpdate((DeviceProfile) event.getEntity(), event.getOldEntity(), isCreated); - } else if (EntityType.EDGE.equals(entityType)) { - handleEdgeEvent(tenantId, entityId, event.getEntity(), lifecycleEvent); - } else if (EntityType.TB_RESOURCE.equals(entityType)) { - tbClusterService.onResourceChange((TbResource) event.getEntity(), null); - } else if (EntityType.API_USAGE_STATE.equals(entityType) && !event.getAdded()) { - tbClusterService.onApiStateChange((ApiUsageState) event.getEntity(), null); + switch (entityType) { + case ASSET: + case ASSET_PROFILE: + case ENTITY_VIEW: + tbClusterService.broadcastEntityStateChangeEvent(tenantId, entityId, lifecycleEvent); + break; + case TENANT: + Tenant tenant = (Tenant) event.getEntity(); + onTenantUpdate(tenant, isCreated); + break; + case TENANT_PROFILE: + TenantProfile tenantProfile = (TenantProfile) event.getEntity(); + onTenantProfileUpdate(tenantProfile, isCreated); + break; + case DEVICE: + onDeviceUpdate(event.getEntity(), event.getOldEntity()); + break; + case DEVICE_PROFILE: + DeviceProfile deviceProfile = (DeviceProfile) event.getEntity(); + onDeviceProfileUpdate(deviceProfile, event.getOldEntity(), isCreated); + break; + case EDGE: + handleEdgeEvent(tenantId, entityId, event.getEntity(), lifecycleEvent); + break; + case TB_RESOURCE: + TbResource tbResource = (TbResource) event.getEntity(); + tbClusterService.onResourceChange(tbResource, null); + break; + case API_USAGE_STATE: + ApiUsageState apiUsageState = (ApiUsageState) event.getEntity(); + tbClusterService.onApiStateChange(apiUsageState, null); + break; + default: + break; } } @@ -95,20 +113,38 @@ public class EntityStateSourcingListener { EntityId entityId = event.getEntityId(); EntityType entityType = entityId.getEntityType(); - if (isCommonEntityStateUpdated(entityId) || EntityType.CUSTOMER.equals(entityType)) { - tbClusterService.broadcastEntityStateChangeEvent(tenantId, entityId, ComponentLifecycleEvent.DELETED); - } else if (EntityType.TENANT.equals(event.getEntityId().getEntityType())) { - onTenantDeleted((Tenant) event.getEntity()); - } else if (EntityType.TENANT_PROFILE.equals(entityType)) { - tbClusterService.onTenantProfileDelete((TenantProfile) event.getEntity(), null); - } else if (EntityType.DEVICE.equals(entityType)) { - tbClusterService.onDeviceDeleted((Device) event.getEntity(), null); - } else if (EntityType.DEVICE_PROFILE.equals(entityType)) { - onDeviceProfileDelete(event.getTenantId(), event.getEntityId(), (DeviceProfile) event.getEntity()); - } else if (EntityType.EDGE.equals(entityType)) { - tbClusterService.broadcastEntityStateChangeEvent(event.getTenantId(), event.getEntityId(), ComponentLifecycleEvent.DELETED); - } else if (EntityType.TB_RESOURCE.equals(entityType)) { - tbClusterService.onResourceDeleted((TbResource) event.getEntity(), null); + switch (entityType) { + case ASSET: + case ASSET_PROFILE: + case ENTITY_VIEW: + case CUSTOMER: + tbClusterService.broadcastEntityStateChangeEvent(tenantId, entityId, ComponentLifecycleEvent.DELETED); + break; + case TENANT: + Tenant tenant = (Tenant) event.getEntity(); + onTenantDeleted(tenant); + break; + case TENANT_PROFILE: + TenantProfile tenantProfile = (TenantProfile) event.getEntity(); + tbClusterService.onTenantProfileDelete(tenantProfile, null); + break; + case DEVICE: + Device device = (Device) event.getEntity(); + tbClusterService.onDeviceDeleted(device, null); + break; + case DEVICE_PROFILE: + DeviceProfile deviceProfile = (DeviceProfile) event.getEntity(); + onDeviceProfileDelete(event.getTenantId(), event.getEntityId(), deviceProfile); + break; + case EDGE: + tbClusterService.broadcastEntityStateChangeEvent(event.getTenantId(), event.getEntityId(), ComponentLifecycleEvent.DELETED); + break; + case TB_RESOURCE: + TbResource tbResource = (TbResource) event.getEntity(); + tbClusterService.onResourceDeleted(tbResource, null); + break; + default: + break; } } diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/tenant/profile/DefaultTbTenantProfileService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/tenant/profile/DefaultTbTenantProfileService.java index 18878950d7..3c9a10a4ac 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/tenant/profile/DefaultTbTenantProfileService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/tenant/profile/DefaultTbTenantProfileService.java @@ -21,7 +21,6 @@ import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent; import org.thingsboard.server.dao.tenant.TbTenantProfileCache; import org.thingsboard.server.dao.tenant.TenantProfileService; import org.thingsboard.server.dao.tenant.TenantService; @@ -45,9 +44,6 @@ public class DefaultTbTenantProfileService extends AbstractTbEntityService imple public TenantProfile save(TenantId tenantId, TenantProfile tenantProfile, TenantProfile oldTenantProfile) throws ThingsboardException { TenantProfile savedTenantProfile = checkNotNull(tenantProfileService.saveTenantProfile(tenantId, tenantProfile)); tenantProfileCache.put(savedTenantProfile); - tbClusterService.onTenantProfileChange(savedTenantProfile, null); - tbClusterService.broadcastEntityStateChangeEvent(TenantId.SYS_TENANT_ID, savedTenantProfile.getId(), - tenantProfile.getId() == null ? ComponentLifecycleEvent.CREATED : ComponentLifecycleEvent.UPDATED); List tenantIds = tenantService.findTenantIdsByTenantProfileId(savedTenantProfile.getId()); tbQueueService.updateQueuesByTenants(tenantIds, savedTenantProfile, oldTenantProfile); diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/widgets/type/DefaultWidgetTypeService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/widgets/type/DefaultWidgetTypeService.java index 650f92ac20..c35b6db07a 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/widgets/type/DefaultWidgetTypeService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/widgets/type/DefaultWidgetTypeService.java @@ -52,11 +52,11 @@ public class DefaultWidgetTypeService extends AbstractTbEntityService implements try { WidgetTypeDetails savedWidgetTypeDetails = checkNotNull(widgetTypeService.saveWidgetType(widgetTypeDetails)); autoCommit(user, savedWidgetTypeDetails.getId()); - notificationEntityService.logEntityAction(tenantId, savedWidgetTypeDetails.getId(), savedWidgetTypeDetails, + logEntityActionService.logEntityAction(tenantId, savedWidgetTypeDetails.getId(), savedWidgetTypeDetails, null, actionType, user); return savedWidgetTypeDetails; } catch (Exception e) { - notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.WIDGET_TYPE), widgetTypeDetails, actionType, user, e); + logEntityActionService.logEntityAction(tenantId, emptyId(EntityType.WIDGET_TYPE), widgetTypeDetails, actionType, user, e); throw e; } } @@ -67,9 +67,9 @@ public class DefaultWidgetTypeService extends AbstractTbEntityService implements TenantId tenantId = widgetTypeDetails.getTenantId(); try { widgetTypeService.deleteWidgetType(widgetTypeDetails.getTenantId(), widgetTypeDetails.getId()); - notificationEntityService.logEntityAction(tenantId, widgetTypeDetails.getId(), widgetTypeDetails, null, actionType, user); + logEntityActionService.logEntityAction(tenantId, widgetTypeDetails.getId(), widgetTypeDetails, null, actionType, user); } catch (Exception e) { - notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.WIDGET_TYPE), actionType, user, e, widgetTypeDetails.getId()); + logEntityActionService.logEntityAction(tenantId, emptyId(EntityType.WIDGET_TYPE), actionType, user, e, widgetTypeDetails.getId()); throw e; } } diff --git a/application/src/test/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessorTest.java b/application/src/test/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessorTest.java index 1c4b481302..4725c4e3f7 100644 --- a/application/src/test/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessorTest.java +++ b/application/src/test/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessorTest.java @@ -78,7 +78,7 @@ import org.thingsboard.server.service.edge.rpc.constructor.TenantProfileMsgConst import org.thingsboard.server.service.edge.rpc.constructor.UserMsgConstructor; import org.thingsboard.server.service.edge.rpc.constructor.WidgetTypeMsgConstructor; import org.thingsboard.server.service.edge.rpc.constructor.WidgetsBundleMsgConstructor; -import org.thingsboard.server.service.entitiy.TbNotificationEntityService; +import org.thingsboard.server.service.entitiy.TbLogEntityActionService; import org.thingsboard.server.service.executors.DbCallbackExecutorService; import org.thingsboard.server.service.profile.TbAssetProfileCache; import org.thingsboard.server.service.profile.TbDeviceProfileCache; @@ -94,7 +94,7 @@ public abstract class BaseEdgeProcessorTest { protected TelemetrySubscriptionService tsSubService; @MockBean - protected TbNotificationEntityService notificationEntityService; + protected TbLogEntityActionService logEntityActionService; @MockBean protected RuleChainService ruleChainService;