Browse Source

Add EntityType reference to EdgeEventType to match types for edge

pull/9062/head
Andrii Landiak 3 years ago
parent
commit
d56f6484b1
  1. 2
      application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java
  2. 2
      application/src/main/java/org/thingsboard/server/service/edge/rpc/sync/DefaultEdgeRequestsService.java
  3. 3
      application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java
  4. 11
      common/data/src/main/java/org/thingsboard/server/common/data/EdgeUtils.java
  5. 60
      common/data/src/main/java/org/thingsboard/server/common/data/EntityType.java
  6. 56
      common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEventType.java
  7. 3
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/edge/TbMsgPushToEdgeNode.java

2
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) { if (alarm == null) {
return Futures.immediateFuture(null); return Futures.immediateFuture(null);
} }
EdgeEventType type = EdgeUtils.getEdgeEventTypeByEntityType(alarm.getOriginator().getEntityType()); EdgeEventType type = EdgeEventType.getEdgeEventTypeByEntityType(alarm.getOriginator().getEntityType());
if (type == null) { if (type == null) {
return Futures.immediateFuture(null); return Futures.immediateFuture(null);
} }

2
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( EntityId entityId = EntityIdFactory.getByTypeAndUuid(
EntityType.valueOf(attributesRequestMsg.getEntityType()), EntityType.valueOf(attributesRequestMsg.getEntityType()),
new UUID(attributesRequestMsg.getEntityIdMSB(), attributesRequestMsg.getEntityIdLSB())); new UUID(attributesRequestMsg.getEntityIdMSB(), attributesRequestMsg.getEntityIdLSB()));
final EdgeEventType entityType = EdgeUtils.getEdgeEventTypeByEntityType(entityId.getEntityType()); final EdgeEventType entityType = EdgeEventType.getEdgeEventTypeByEntityType(entityId.getEntityType());
if (entityType == null) { if (entityType == null) {
log.warn("[{}] Type doesn't supported {}", tenantId, entityId.getEntityType()); log.warn("[{}] Type doesn't supported {}", tenantId, entityId.getEntityType());
return Futures.immediateFuture(null); return Futures.immediateFuture(null);

3
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.ApiUsageState;
import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.DeviceProfile; 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.EntityType;
import org.thingsboard.server.common.data.HasName; import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.HasRuleEngineProfile; import org.thingsboard.server.common.data.HasRuleEngineProfile;
@ -481,7 +480,7 @@ public class DefaultTbClusterService implements TbClusterService {
} }
if (type == null) { if (type == null) {
if (entityId != null) { if (entityId != null) {
type = EdgeUtils.getEdgeEventTypeByEntityType(entityId.getEntityType()); type = EdgeEventType.getEdgeEventTypeByEntityType(entityId.getEntityType());
} else { } else {
log.trace("[{}] entity id and type are null. Ignoring this notification", tenantId); log.trace("[{}] entity id and type are null. Ignoring this notification", tenantId);
return; return;

11
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 static final int STACK_TRACE_LIMIT = 10;
private EdgeUtils() { private EdgeUtils() {}
}
public static EdgeEventType getEdgeEventTypeByEntityType(EntityType entityType) {
EdgeEventType edgeEventType = entityType.getEdgeEventType();
if (edgeEventType == null) {
log.warn("Unsupported entity type [{}]", entityType);
}
return edgeEventType;
}
public static int nextPositiveInt() { public static int nextPositiveInt() {
return ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE); return ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE);

60
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 lombok.Getter;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.thingsboard.server.common.data.edge.EdgeEventType;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
@ -27,38 +26,38 @@ import java.util.stream.Collectors;
* @author Andrew Shvayka * @author Andrew Shvayka
*/ */
public enum EntityType { public enum EntityType {
TENANT(EdgeEventType.TENANT), TENANT,
CUSTOMER(EdgeEventType.CUSTOMER), CUSTOMER,
USER(EdgeEventType.USER), USER,
DASHBOARD(EdgeEventType.DASHBOARD), DASHBOARD,
ASSET(EdgeEventType.ASSET), ASSET,
DEVICE(EdgeEventType.DEVICE), DEVICE,
ALARM(EdgeEventType.ALARM), ALARM,
RULE_CHAIN(EdgeEventType.RULE_CHAIN), RULE_CHAIN,
RULE_NODE(null), RULE_NODE,
ENTITY_VIEW(EdgeEventType.ENTITY_VIEW) { ENTITY_VIEW {
// backward compatibility for TbOriginatorTypeSwitchNode to return correct rule node connection. // backward compatibility for TbOriginatorTypeSwitchNode to return correct rule node connection.
@Override @Override
public String getNormalName() { public String getNormalName() {
return "Entity View"; return "Entity View";
} }
}, },
WIDGETS_BUNDLE(EdgeEventType.WIDGETS_BUNDLE), WIDGETS_BUNDLE,
WIDGET_TYPE(EdgeEventType.WIDGET_TYPE), WIDGET_TYPE,
TENANT_PROFILE(EdgeEventType.TENANT_PROFILE), TENANT_PROFILE,
DEVICE_PROFILE(EdgeEventType.DEVICE_PROFILE), DEVICE_PROFILE,
ASSET_PROFILE(EdgeEventType.ASSET_PROFILE), ASSET_PROFILE,
API_USAGE_STATE(null), API_USAGE_STATE,
TB_RESOURCE(null), TB_RESOURCE,
OTA_PACKAGE(EdgeEventType.OTA_PACKAGE), OTA_PACKAGE,
EDGE(EdgeEventType.EDGE), EDGE,
RPC(null), RPC,
QUEUE(EdgeEventType.QUEUE), QUEUE,
NOTIFICATION_TARGET(null), NOTIFICATION_TARGET,
NOTIFICATION_TEMPLATE(null), NOTIFICATION_TEMPLATE,
NOTIFICATION_REQUEST(null), NOTIFICATION_REQUEST,
NOTIFICATION(null), NOTIFICATION,
NOTIFICATION_RULE(null); NOTIFICATION_RULE;
public static final List<String> NORMAL_NAMES = EnumSet.allOf(EntityType.class).stream() public static final List<String> NORMAL_NAMES = EnumSet.allOf(EntityType.class).stream()
.map(EntityType::getNormalName).collect(Collectors.toUnmodifiableList()); .map(EntityType::getNormalName).collect(Collectors.toUnmodifiableList());
@ -67,11 +66,4 @@ public enum EntityType {
private final String normalName = StringUtils.capitalize(StringUtils.removeStart(name(), "TB_") private final String normalName = StringUtils.capitalize(StringUtils.removeStart(name(), "TB_")
.toLowerCase().replaceAll("_", " ")); .toLowerCase().replaceAll("_", " "));
@Getter
private final EdgeEventType edgeEventType;
EntityType(EdgeEventType edgeEventType) {
this.edgeEventType = edgeEventType;
}
} }

56
common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEventType.java

@ -16,33 +16,47 @@
package org.thingsboard.server.common.data.edge; package org.thingsboard.server.common.data.edge;
import lombok.Getter; import lombok.Getter;
import org.thingsboard.server.common.data.EntityType;
import java.util.Arrays;
@Getter @Getter
public enum EdgeEventType { public enum EdgeEventType {
DASHBOARD(false), DASHBOARD(false, EntityType.DASHBOARD),
ASSET(false), ASSET(false, EntityType.ASSET),
DEVICE(false), DEVICE(false, EntityType.DEVICE),
DEVICE_PROFILE(true), DEVICE_PROFILE(true, EntityType.DEVICE_PROFILE),
ASSET_PROFILE(true), ASSET_PROFILE(true, EntityType.ASSET_PROFILE),
ENTITY_VIEW(false), ENTITY_VIEW(false, EntityType.ENTITY_VIEW),
ALARM(false), ALARM(false, EntityType.ALARM),
RULE_CHAIN(false), RULE_CHAIN(false, EntityType.RULE_CHAIN),
RULE_CHAIN_METADATA(false), RULE_CHAIN_METADATA(false, null),
EDGE(false), EDGE(false, EntityType.EDGE),
USER(true), USER(true, EntityType.USER),
CUSTOMER(true), CUSTOMER(true, EntityType.CUSTOMER),
RELATION(true), RELATION(true, null),
TENANT(true), TENANT(true, EntityType.TENANT),
TENANT_PROFILE(true), TENANT_PROFILE(true, EntityType.TENANT_PROFILE),
WIDGETS_BUNDLE(true), WIDGETS_BUNDLE(true, EntityType.WIDGETS_BUNDLE),
WIDGET_TYPE(true), WIDGET_TYPE(true, EntityType.WIDGET_TYPE),
ADMIN_SETTINGS(true), ADMIN_SETTINGS(true, null),
OTA_PACKAGE(true), OTA_PACKAGE(true, EntityType.OTA_PACKAGE),
QUEUE(true); QUEUE(true, EntityType.QUEUE);
private final boolean allEdgesRelated; private final boolean allEdgesRelated;
EdgeEventType(boolean allEdgesRelated) { private final EntityType entityType;
EdgeEventType(boolean allEdgesRelated, EntityType entityType) {
this.allEdgesRelated = allEdgesRelated; 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);
} }
} }

3
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.RuleNode;
import org.thingsboard.rule.engine.api.TbContext; import org.thingsboard.rule.engine.api.TbContext;
import org.thingsboard.server.common.data.DataConstants; 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.EntityType;
import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEvent;
import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventActionType;
@ -91,7 +90,7 @@ public class TbMsgPushToEdgeNode extends AbstractTbMsgPushNode<TbMsgPushToEdgeNo
@Override @Override
EdgeEventType getEventTypeByEntityType(EntityType entityType) { EdgeEventType getEventTypeByEntityType(EntityType entityType) {
return EdgeUtils.getEdgeEventTypeByEntityType(entityType); return EdgeEventType.getEdgeEventTypeByEntityType(entityType);
} }
@Override @Override

Loading…
Cancel
Save