From eb7c52974c6ea12fcb6b219c1b63c0f0ac94f4cd Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Thu, 30 Jun 2022 18:07:39 +0300 Subject: [PATCH] Refactoring to contain list of rulenodes for PE --- .../rule/AbstractRuleChainMetadataConstructor.java | 7 ++++--- .../constructor/rule/RuleChainMetadataConstructorV330.java | 2 +- .../constructor/rule/RuleChainMetadataConstructorV333.java | 2 +- .../edge/rpc/constructor/RuleChainMsgConstructorTest.java | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java index a69cd7972a..a938d42c3b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java @@ -45,7 +45,8 @@ import java.util.UUID; @AllArgsConstructor public abstract class AbstractRuleChainMetadataConstructor implements RuleChainMetadataConstructor { - public static final String CHECKPOINT_NODE = TbCheckpointNode.class.getName(); + public static final List nodeTypes = List.of(TbCheckpointNode.class.getName()); + private final QueueService queueService; @Override @@ -144,10 +145,10 @@ public abstract class AbstractRuleChainMetadataConstructor implements RuleChainM .build(); } - protected List updateCheckpointNodesConfiguration(TenantId tenantId, List nodes) { + protected List updateQueueIdToQueueNameNodeConfiguration(TenantId tenantId, List nodes) { List result = new ArrayList<>(); for (RuleNode node : nodes) { - if (CHECKPOINT_NODE.equals(node.getType())) { + if (nodeTypes.contains(node.getType())) { ObjectNode configuration = (ObjectNode) node.getConfiguration(); JsonNode queueIdNode = configuration.remove("queueId"); if (queueIdNode != null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java index 030a29d986..4c29164f5a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java @@ -52,7 +52,7 @@ public class RuleChainMetadataConstructorV330 extends AbstractRuleChainMetadataC RuleChainMetadataUpdateMsg.Builder builder, RuleChainMetaData ruleChainMetaData) throws JsonProcessingException { List supportedNodes = filterNodes(ruleChainMetaData.getNodes()); - supportedNodes = updateCheckpointNodesConfiguration(tenantId, supportedNodes); + supportedNodes = updateQueueIdToQueueNameNodeConfiguration(tenantId, supportedNodes); NavigableSet removedNodeIndexes = getRemovedNodeIndexes(ruleChainMetaData.getNodes(), ruleChainMetaData.getConnections()); List connections = filterConnections(ruleChainMetaData.getNodes(), ruleChainMetaData.getConnections(), removedNodeIndexes); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV333.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV333.java index 327f88a986..3fb346e701 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV333.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV333.java @@ -37,7 +37,7 @@ public class RuleChainMetadataConstructorV333 extends AbstractRuleChainMetadataC protected void constructRuleChainMetadataUpdatedMsg(TenantId tenantId, RuleChainMetadataUpdateMsg.Builder builder, RuleChainMetaData ruleChainMetaData) throws JsonProcessingException { - List nodes = updateCheckpointNodesConfiguration(tenantId, ruleChainMetaData.getNodes()); + List nodes = updateQueueIdToQueueNameNodeConfiguration(tenantId, ruleChainMetaData.getNodes()); builder.addAllNodes(constructNodes(nodes)) .addAllConnections(constructConnections(ruleChainMetaData.getConnections())) .addAllRuleChainConnections(constructRuleChainConnections(ruleChainMetaData.getRuleChainConnections(), new TreeSet<>())); diff --git a/application/src/test/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructorTest.java b/application/src/test/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructorTest.java index c89df400ab..42b8c628cc 100644 --- a/application/src/test/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructorTest.java +++ b/application/src/test/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructorTest.java @@ -217,7 +217,7 @@ public class RuleChainMsgConstructorTest { private void assertCheckpointRuleNodeConfiguration(List nodesList, String expectedConfiguration) { Optional checkpointRuleNodeOpt = nodesList.stream() - .filter(rn -> RuleChainMetadataConstructorV333.CHECKPOINT_NODE.equals(rn.getType())) + .filter(rn -> "org.thingsboard.rule.engine.flow.TbCheckpointNode".equals(rn.getType())) .findFirst(); Assert.assertTrue(checkpointRuleNodeOpt.isPresent()); RuleNodeProto checkpointRuleNode = checkpointRuleNodeOpt.get();