From 4b9642fc11d0675e000866a3e51e35356ef372a9 Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Thu, 25 Jun 2020 17:32:34 +0300 Subject: [PATCH] Moved getEdgeEventTypeByEntityType to EdgeUtils --- .../server/controller/BaseController.java | 13 ++-- .../service/queue/TbCoreConsumerStats.java | 2 +- .../server/dao/edge/EdgeEventService.java | 2 - .../server/common/data/EdgeUtils.java | 61 ++++++------------- .../server/dao/edge/BaseEdgeEventService.java | 23 ------- .../rule/engine/edge/TbMsgPushToEdgeNode.java | 3 +- 6 files changed, 24 insertions(+), 80 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/BaseController.java b/application/src/main/java/org/thingsboard/server/controller/BaseController.java index 2a8b32b7de..e435ad6bbb 100644 --- a/application/src/main/java/org/thingsboard/server/controller/BaseController.java +++ b/application/src/main/java/org/thingsboard/server/controller/BaseController.java @@ -26,12 +26,12 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.ExceptionHandler; -import org.thingsboard.server.common.data.BaseData; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.DashboardInfo; import org.thingsboard.server.common.data.DataConstants; import org.thingsboard.server.common.data.Device; +import org.thingsboard.server.common.data.EdgeUtils; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.HasName; @@ -39,14 +39,14 @@ import org.thingsboard.server.common.data.HasTenantId; import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.alarm.Alarm; -import org.thingsboard.server.common.data.edge.EdgeEventType; -import org.thingsboard.server.common.data.id.AlarmId; import org.thingsboard.server.common.data.alarm.AlarmInfo; import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.Edge; +import org.thingsboard.server.common.data.edge.EdgeEventType; import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; import org.thingsboard.server.common.data.exception.ThingsboardException; +import org.thingsboard.server.common.data.id.AlarmId; import org.thingsboard.server.common.data.id.AssetId; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DashboardId; @@ -85,7 +85,6 @@ import org.thingsboard.server.dao.dashboard.DashboardService; import org.thingsboard.server.dao.device.ClaimDevicesService; import org.thingsboard.server.dao.device.DeviceCredentialsService; import org.thingsboard.server.dao.device.DeviceService; -import org.thingsboard.server.dao.edge.EdgeEventService; import org.thingsboard.server.dao.edge.EdgeService; import org.thingsboard.server.dao.entityview.EntityViewService; import org.thingsboard.server.dao.exception.DataValidationException; @@ -113,7 +112,6 @@ import org.thingsboard.server.service.state.DeviceStateService; import org.thingsboard.server.service.telemetry.TelemetrySubscriptionService; import javax.mail.MessagingException; -import javax.management.relation.Relation; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Optional; @@ -209,9 +207,6 @@ public abstract class BaseController { @Autowired protected EdgeNotificationService edgeNotificationService; - @Autowired - protected EdgeEventService edgeEventService; - @Value("${server.log_controller_error_stack_trace}") @Getter private boolean logControllerErrorStackTrace; @@ -735,7 +730,7 @@ public abstract class BaseController { } protected void sendNotificationMsgToEdgeService(TenantId tenantId, EntityId entityId, ActionType edgeEventAction) { - EdgeEventType edgeEventType = edgeEventService.getEdgeEventTypeByEntityType(entityId.getEntityType()); + EdgeEventType edgeEventType = EdgeUtils.getEdgeEventTypeByEntityType(entityId.getEntityType()); if (edgeEventType != null) { sendNotificationMsgToEdgeService(tenantId, null, entityId, null, edgeEventType, edgeEventAction); } diff --git a/application/src/main/java/org/thingsboard/server/service/queue/TbCoreConsumerStats.java b/application/src/main/java/org/thingsboard/server/service/queue/TbCoreConsumerStats.java index 7e5abd9da8..f8407057ba 100644 --- a/application/src/main/java/org/thingsboard/server/service/queue/TbCoreConsumerStats.java +++ b/application/src/main/java/org/thingsboard/server/service/queue/TbCoreConsumerStats.java @@ -33,9 +33,9 @@ public class TbCoreConsumerStats { private final AtomicInteger claimDeviceCounter = new AtomicInteger(0); private final AtomicInteger deviceStateCounter = new AtomicInteger(0); - private final AtomicInteger edgeNotificationMsgCounter = new AtomicInteger(0); private final AtomicInteger subscriptionMsgCounter = new AtomicInteger(0); private final AtomicInteger toCoreNotificationsCounter = new AtomicInteger(0); + private final AtomicInteger edgeNotificationMsgCounter = new AtomicInteger(0); public void log(TransportProtos.TransportToDeviceActorMsg msg) { totalCounter.incrementAndGet(); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeEventService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeEventService.java index 6c3e189d41..0d65c134f2 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeEventService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeEventService.java @@ -26,8 +26,6 @@ import org.thingsboard.server.common.data.page.TimePageLink; public interface EdgeEventService { - EdgeEventType getEdgeEventTypeByEntityType(EntityType entityType); - ListenableFuture saveAsync(EdgeEvent edgeEvent); TimePageData findEdgeEvents(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/EdgeUtils.java b/common/data/src/main/java/org/thingsboard/server/common/data/EdgeUtils.java index 31449a7801..784763f99e 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/EdgeUtils.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/EdgeUtils.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.common.data; +import org.thingsboard.server.common.data.edge.EdgeEventType; import org.thingsboard.server.common.data.id.EdgeId; import java.util.Set; @@ -24,50 +25,22 @@ public final class EdgeUtils { private EdgeUtils() { } - public static boolean isAssignedToEdge(Set assignedEdges, EdgeId edgeId) { - return assignedEdges != null && assignedEdges.contains(new ShortEdgeInfo(edgeId, null, null)); - } - - public static ShortEdgeInfo getAssignedEdgeInfo(Set assignedEdges, EdgeId edgeId) { - if (assignedEdges != null) { - for (ShortEdgeInfo edgeInfo : assignedEdges) { - if (edgeInfo.getEdgeId().equals(edgeId)) { - return edgeInfo; - } - } - } - return null; - } - - public static boolean addAssignedEdge(Set assignedEdges, ShortEdgeInfo edgeInfo) { - if (assignedEdges != null && assignedEdges.contains(edgeInfo)) { - return false; - } else { - if (assignedEdges != null) { - assignedEdges.add(edgeInfo); - return true; - } else { - return false; - } - } - } - - public static boolean updateAssignedEdge(Set assignedEdges, ShortEdgeInfo edgeInfo) { - if (assignedEdges != null && assignedEdges.contains(edgeInfo)) { - assignedEdges.remove(edgeInfo); - assignedEdges.add(edgeInfo); - return true; - } else { - return false; - } - } - - public static boolean removeAssignedEdge(Set assignedEdges, ShortEdgeInfo edgeInfo) { - if (assignedEdges != null && assignedEdges.contains(edgeInfo)) { - assignedEdges.remove(edgeInfo); - return true; - } else { - return false; + public static EdgeEventType getEdgeEventTypeByEntityType(EntityType entityType) { + switch (entityType) { + case DEVICE: + return EdgeEventType.DEVICE; + case ASSET: + return EdgeEventType.ASSET; + case ENTITY_VIEW: + return EdgeEventType.ENTITY_VIEW; + case DASHBOARD: + return EdgeEventType.DASHBOARD; + case USER: + return EdgeEventType.USER; + case ALARM: + return EdgeEventType.ALARM; + default: + return null; } } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/BaseEdgeEventService.java b/dao/src/main/java/org/thingsboard/server/dao/edge/BaseEdgeEventService.java index fb8f3a03a4..75bc3046c4 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/edge/BaseEdgeEventService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/edge/BaseEdgeEventService.java @@ -20,9 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; 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.edge.EdgeEvent; -import org.thingsboard.server.common.data.edge.EdgeEventType; import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.TimePageData; @@ -39,27 +37,6 @@ public class BaseEdgeEventService implements EdgeEventService { @Autowired public EdgeEventDao edgeEventDao; - @Override - public EdgeEventType getEdgeEventTypeByEntityType(EntityType entityType) { - switch (entityType) { - case DEVICE: - return EdgeEventType.DEVICE; - case ASSET: - return EdgeEventType.ASSET; - case ENTITY_VIEW: - return EdgeEventType.ENTITY_VIEW; - case DASHBOARD: - return EdgeEventType.DASHBOARD; - case USER: - return EdgeEventType.USER; - case ALARM: - return EdgeEventType.ALARM; - default: - log.warn("Failed to push notification to edge service. Unsupported entity type [{}]", entityType); - return null; - } - } - @Override public ListenableFuture saveAsync(EdgeEvent edgeEvent) { edgeEventValidator.validate(edgeEvent, EdgeEvent::getTenantId); diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java index 7b96bb45f6..bda074eee9 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java @@ -29,6 +29,7 @@ import org.thingsboard.rule.engine.api.TbNodeConfiguration; import org.thingsboard.rule.engine.api.TbNodeException; import org.thingsboard.rule.engine.api.util.TbNodeUtils; import org.thingsboard.server.common.data.DataConstants; +import org.thingsboard.server.common.data.EdgeUtils; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.EdgeEvent; @@ -81,7 +82,7 @@ public class TbMsgPushToEdgeNode implements TbNode { Futures.addCallback(getEdgeIdFuture, new FutureCallback() { @Override public void onSuccess(@Nullable EdgeId edgeId) { - EdgeEventType edgeEventTypeByEntityType = ctx.getEdgeEventService().getEdgeEventTypeByEntityType(msg.getOriginator().getEntityType()); + EdgeEventType edgeEventTypeByEntityType = EdgeUtils.getEdgeEventTypeByEntityType(msg.getOriginator().getEntityType()); if (edgeEventTypeByEntityType == null) { log.debug("Edge event type is null. Entity Type {}", msg.getOriginator().getEntityType()); ctx.tellFailure(msg, new RuntimeException("Edge event type is null. Entity Type '" + msg.getOriginator().getEntityType() + "'"));