Browse Source

Improved update of checkpoint rule node configuration

pull/6858/head
Volodymyr Babak 4 years ago
parent
commit
0b01d73ba7
  1. 18
      application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java

18
application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java

@ -16,12 +16,12 @@
package org.thingsboard.server.service.edge.rpc.constructor.rule; package org.thingsboard.server.service.edge.rpc.constructor.rule;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.rule.engine.flow.TbCheckpointNode; import org.thingsboard.rule.engine.flow.TbCheckpointNode;
import org.thingsboard.rule.engine.flow.TbCheckpointNodeConfiguration;
import org.thingsboard.server.common.data.id.QueueId; import org.thingsboard.server.common.data.id.QueueId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.queue.Queue; import org.thingsboard.server.common.data.queue.Queue;
@ -144,15 +144,19 @@ public abstract class AbstractRuleChainMetadataConstructor implements RuleChainM
.build(); .build();
} }
protected List<RuleNode> updateCheckpointNodesConfiguration(TenantId tenantId, List<RuleNode> nodes) throws JsonProcessingException { protected List<RuleNode> updateCheckpointNodesConfiguration(TenantId tenantId, List<RuleNode> nodes) {
List<RuleNode> result = new ArrayList<>(); List<RuleNode> result = new ArrayList<>();
for (RuleNode node : nodes) { for (RuleNode node : nodes) {
if (CHECKPOINT_NODE.equals(node.getType())) { if (CHECKPOINT_NODE.equals(node.getType())) {
TbCheckpointNodeConfiguration configuration = ObjectNode configuration = (ObjectNode) node.getConfiguration();
JacksonUtil.treeToValue(node.getConfiguration(), TbCheckpointNodeConfiguration.class); JsonNode queueIdNode = configuration.remove("queueId");
Queue queueById = queueService.findQueueById(tenantId, new QueueId(UUID.fromString(configuration.getQueueId()))); if (queueIdNode != null) {
if (queueById != null) { String queueId = queueIdNode.asText();
node.setConfiguration(JacksonUtil.OBJECT_MAPPER.readTree("{\"queueName\":\"" + queueById.getName() + "\"}")); Queue queueById = queueService.findQueueById(tenantId, new QueueId(UUID.fromString(queueId)));
if (queueById != null) {
configuration.put("queueName", queueById.getName());
node.setConfiguration(configuration);
}
} }
} }
result.add(node); result.add(node);

Loading…
Cancel
Save