diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/delay/TbMsgDeDuplicateNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/delay/TbMsgDeDuplicateNode.java
index ca93be30e1..8ec52a7c70 100644
--- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/delay/TbMsgDeDuplicateNode.java
+++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/delay/TbMsgDeDuplicateNode.java
@@ -51,12 +51,12 @@ import java.util.stream.Collectors;
"FIRST - return first message that arrived during de-duplication period.
" +
"LAST - return last message that arrived during de-duplication period.
" +
"ALL - return all messages as a single JSON array message. Where each element represents object with msg and metadata inner properties.
" +
- "By default rule node de-duplicates messages by message originator, however, there is an option to de-duplicate messages independently from the incoming message's originator. " +
- "In case of the de-duplication strategy set to ALL and de-duplicates messages by message originator checkbox set to false, you must configure the Queue Name and Message Type for the output array message. " +
+ "By default rule node De-duplicate messages by message originator, however, there is an option to de-duplicate messages independently from the incoming message's originator. " +
+ "In case of the De-duplicate strategy set to ALL and De-duplicate messages by message originator checkbox set to false, you must configure the Queue Name and Out Message Type for the output array message. " +
"Also in this case the output message originator will be set to the current tenant id.
",
icon = "pause",
uiResources = {"static/rulenode/rulenode-core-config.js"},
- configDirective = ""
+ configDirective = "tbActionNodeMsgDeDuplicateConfig"
)
@Slf4j
public class TbMsgDeDuplicateNode implements TbNode {
diff --git a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/action/TbMsgDeDuplicateNodeTest.java b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/action/TbMsgDeDuplicateNodeTest.java
index 5411dda07b..db56f6958f 100644
--- a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/action/TbMsgDeDuplicateNodeTest.java
+++ b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/action/TbMsgDeDuplicateNodeTest.java
@@ -70,10 +70,9 @@ public class TbMsgDeDuplicateNodeTest {
private TbContext ctx;
- private ExecutorService executorService = Executors.newSingleThreadExecutor(ThingsBoardThreadFactory.forName("de-duplication-node-test"));
+ private final ExecutorService executorService = Executors.newSingleThreadExecutor(ThingsBoardThreadFactory.forName("de-duplication-node-test"));
private TenantId tenantId;
- private RuleNodeId ruleNodeId;
private TbMsgDeDuplicateNode node;
private TbMsgDeDuplicateNodeConfiguration config;
@@ -84,14 +83,13 @@ public class TbMsgDeDuplicateNodeTest {
private int scheduleCount;
@BeforeEach
- @SuppressWarnings("unchecked")
public void init() throws TbNodeException {
ctx = mock(TbContext.class);
awaitTellSelfLatch = new CountDownLatch(1);
awaitAllMsgsProcessedLatch = new CountDownLatch(1);
tenantId = TenantId.fromUUID(UUID.randomUUID());
- ruleNodeId = new RuleNodeId(UUID.randomUUID());
+ RuleNodeId ruleNodeId = new RuleNodeId(UUID.randomUUID());
when(ctx.getSelfId()).thenReturn(ruleNodeId);
when(ctx.getTenantId()).thenReturn(tenantId);
@@ -129,9 +127,7 @@ public class TbMsgDeDuplicateNodeTest {
@AfterEach
public void destroy() {
- if (executorService != null) {
- executorService.shutdown();
- }
+ executorService.shutdown();
node.destroy();
}
@@ -275,6 +271,8 @@ public class TbMsgDeDuplicateNodeTest {
TbMsg outMessage = newMsgCaptor.getAllValues().get(0);
Assertions.assertEquals(getMergedData(inputMsgs), outMessage.getData());
Assertions.assertEquals(tenantId, outMessage.getOriginator());
+ Assertions.assertEquals(config.getQueueName(), outMessage.getQueueName());
+ Assertions.assertEquals(config.getOutMsgType(), outMessage.getType());
}
private List createTbMsgs(DeviceId deviceId) {