diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java index 0b86352c02..4dc24ba78a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java @@ -73,7 +73,7 @@ public class AlarmEdgeProcessor extends BaseAlarmProcessor { if (alarm == null) { return Futures.immediateFuture(null); } - EdgeEventType type = EdgeUtils.getEdgeEventTypeByEntityType(alarm.getOriginator().getEntityType()); + EdgeEventType type = EdgeEventType.getEdgeEventTypeByEntityType(alarm.getOriginator().getEntityType()); if (type == null) { return Futures.immediateFuture(null); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/sync/DefaultEdgeRequestsService.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/sync/DefaultEdgeRequestsService.java index 700e0f3861..6ec253dd9c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/sync/DefaultEdgeRequestsService.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/sync/DefaultEdgeRequestsService.java @@ -130,7 +130,7 @@ public class DefaultEdgeRequestsService implements EdgeRequestsService { EntityId entityId = EntityIdFactory.getByTypeAndUuid( EntityType.valueOf(attributesRequestMsg.getEntityType()), new UUID(attributesRequestMsg.getEntityIdMSB(), attributesRequestMsg.getEntityIdLSB())); - final EdgeEventType entityType = EdgeUtils.getEdgeEventTypeByEntityType(entityId.getEntityType()); + final EdgeEventType entityType = EdgeEventType.getEdgeEventTypeByEntityType(entityId.getEntityType()); if (entityType == null) { log.warn("[{}] Type doesn't supported {}", tenantId, entityId.getEntityType()); return Futures.immediateFuture(null); diff --git a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java index 53ef38d96a..99cee14e1e 100644 --- a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java +++ b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java @@ -29,7 +29,6 @@ import org.thingsboard.server.cluster.TbClusterService; import org.thingsboard.server.common.data.ApiUsageState; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.DeviceProfile; -import org.thingsboard.server.common.data.EdgeUtils; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.HasName; import org.thingsboard.server.common.data.HasRuleEngineProfile; @@ -481,7 +480,7 @@ public class DefaultTbClusterService implements TbClusterService { } if (type == null) { if (entityId != null) { - type = EdgeUtils.getEdgeEventTypeByEntityType(entityId.getEntityType()); + type = EdgeEventType.getEdgeEventTypeByEntityType(entityId.getEntityType()); } else { log.trace("[{}] entity id and type are null. Ignoring this notification", tenantId); return; 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 bf43769970..05786d26b3 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 @@ -32,16 +32,7 @@ public final class EdgeUtils { private static final int STACK_TRACE_LIMIT = 10; - private EdgeUtils() { - } - - public static EdgeEventType getEdgeEventTypeByEntityType(EntityType entityType) { - EdgeEventType edgeEventType = entityType.getEdgeEventType(); - if (edgeEventType == null) { - log.warn("Unsupported entity type [{}]", entityType); - } - return edgeEventType; - } + private EdgeUtils() {} public static int nextPositiveInt() { return ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java b/common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java index 54288af620..8ca6585718 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java @@ -17,7 +17,6 @@ package org.thingsboard.server.common.data; import lombok.Getter; import org.apache.commons.lang3.StringUtils; -import org.thingsboard.server.common.data.edge.EdgeEventType; import java.util.EnumSet; import java.util.List; @@ -27,38 +26,38 @@ import java.util.stream.Collectors; * @author Andrew Shvayka */ public enum EntityType { - TENANT(EdgeEventType.TENANT), - CUSTOMER(EdgeEventType.CUSTOMER), - USER(EdgeEventType.USER), - DASHBOARD(EdgeEventType.DASHBOARD), - ASSET(EdgeEventType.ASSET), - DEVICE(EdgeEventType.DEVICE), - ALARM(EdgeEventType.ALARM), - RULE_CHAIN(EdgeEventType.RULE_CHAIN), - RULE_NODE(null), - ENTITY_VIEW(EdgeEventType.ENTITY_VIEW) { + TENANT, + CUSTOMER, + USER, + DASHBOARD, + ASSET, + DEVICE, + ALARM, + RULE_CHAIN, + RULE_NODE, + ENTITY_VIEW { // backward compatibility for TbOriginatorTypeSwitchNode to return correct rule node connection. @Override public String getNormalName() { return "Entity View"; } }, - WIDGETS_BUNDLE(EdgeEventType.WIDGETS_BUNDLE), - WIDGET_TYPE(EdgeEventType.WIDGET_TYPE), - TENANT_PROFILE(EdgeEventType.TENANT_PROFILE), - DEVICE_PROFILE(EdgeEventType.DEVICE_PROFILE), - ASSET_PROFILE(EdgeEventType.ASSET_PROFILE), - API_USAGE_STATE(null), - TB_RESOURCE(null), - OTA_PACKAGE(EdgeEventType.OTA_PACKAGE), - EDGE(EdgeEventType.EDGE), - RPC(null), - QUEUE(EdgeEventType.QUEUE), - NOTIFICATION_TARGET(null), - NOTIFICATION_TEMPLATE(null), - NOTIFICATION_REQUEST(null), - NOTIFICATION(null), - NOTIFICATION_RULE(null); + WIDGETS_BUNDLE, + WIDGET_TYPE, + TENANT_PROFILE, + DEVICE_PROFILE, + ASSET_PROFILE, + API_USAGE_STATE, + TB_RESOURCE, + OTA_PACKAGE, + EDGE, + RPC, + QUEUE, + NOTIFICATION_TARGET, + NOTIFICATION_TEMPLATE, + NOTIFICATION_REQUEST, + NOTIFICATION, + NOTIFICATION_RULE; public static final List NORMAL_NAMES = EnumSet.allOf(EntityType.class).stream() .map(EntityType::getNormalName).collect(Collectors.toUnmodifiableList()); @@ -67,11 +66,4 @@ public enum EntityType { private final String normalName = StringUtils.capitalize(StringUtils.removeStart(name(), "TB_") .toLowerCase().replaceAll("_", " ")); - @Getter - private final EdgeEventType edgeEventType; - - EntityType(EdgeEventType edgeEventType) { - this.edgeEventType = edgeEventType; - } - } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEventType.java b/common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEventType.java index 617776652a..dfbf27970b 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEventType.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEventType.java @@ -16,33 +16,47 @@ package org.thingsboard.server.common.data.edge; import lombok.Getter; +import org.thingsboard.server.common.data.EntityType; + +import java.util.Arrays; @Getter public enum EdgeEventType { - DASHBOARD(false), - ASSET(false), - DEVICE(false), - DEVICE_PROFILE(true), - ASSET_PROFILE(true), - ENTITY_VIEW(false), - ALARM(false), - RULE_CHAIN(false), - RULE_CHAIN_METADATA(false), - EDGE(false), - USER(true), - CUSTOMER(true), - RELATION(true), - TENANT(true), - TENANT_PROFILE(true), - WIDGETS_BUNDLE(true), - WIDGET_TYPE(true), - ADMIN_SETTINGS(true), - OTA_PACKAGE(true), - QUEUE(true); + DASHBOARD(false, EntityType.DASHBOARD), + ASSET(false, EntityType.ASSET), + DEVICE(false, EntityType.DEVICE), + DEVICE_PROFILE(true, EntityType.DEVICE_PROFILE), + ASSET_PROFILE(true, EntityType.ASSET_PROFILE), + ENTITY_VIEW(false, EntityType.ENTITY_VIEW), + ALARM(false, EntityType.ALARM), + RULE_CHAIN(false, EntityType.RULE_CHAIN), + RULE_CHAIN_METADATA(false, null), + EDGE(false, EntityType.EDGE), + USER(true, EntityType.USER), + CUSTOMER(true, EntityType.CUSTOMER), + RELATION(true, null), + TENANT(true, EntityType.TENANT), + TENANT_PROFILE(true, EntityType.TENANT_PROFILE), + WIDGETS_BUNDLE(true, EntityType.WIDGETS_BUNDLE), + WIDGET_TYPE(true, EntityType.WIDGET_TYPE), + ADMIN_SETTINGS(true, null), + OTA_PACKAGE(true, EntityType.OTA_PACKAGE), + QUEUE(true, EntityType.QUEUE); private final boolean allEdgesRelated; - EdgeEventType(boolean allEdgesRelated) { + private final EntityType entityType; + + + EdgeEventType(boolean allEdgesRelated, EntityType entityType) { this.allEdgesRelated = allEdgesRelated; + this.entityType = entityType; + } + + public static EdgeEventType getEdgeEventTypeByEntityType(EntityType entityType) { + return Arrays.stream(values()) + .filter(edgeEventType -> entityType.equals(edgeEventType.getEntityType())) + .findFirst() + .orElse(null); } } 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 a09ecb677e..ae64b57721 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 @@ -24,7 +24,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.thingsboard.rule.engine.api.RuleNode; import org.thingsboard.rule.engine.api.TbContext; 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.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEventActionType; @@ -91,7 +90,7 @@ public class TbMsgPushToEdgeNode extends AbstractTbMsgPushNode