Search in sources :

Example 16 with TbMsgMetaData

use of org.thingsboard.server.common.msg.TbMsgMetaData in project thingsboard by thingsboard.

the class TbSqsNode method processException.

private TbMsg processException(TbContext ctx, TbMsg origMsg, Throwable t) {
    TbMsgMetaData metaData = origMsg.getMetaData().copy();
    metaData.putValue(ERROR, t.getClass() + ": " + t.getMessage());
    return ctx.transformMsg(origMsg, origMsg.getType(), origMsg.getOriginator(), metaData, origMsg.getData());
}
Also used : TbMsgMetaData(org.thingsboard.server.common.msg.TbMsgMetaData)

Example 17 with TbMsgMetaData

use of org.thingsboard.server.common.msg.TbMsgMetaData in project thingsboard by thingsboard.

the class TbNodeUtilsTest method testSimpleReplacement.

@Test
public void testSimpleReplacement() {
    String pattern = "ABC ${metadata_key} $[data_key]";
    TbMsgMetaData md = new TbMsgMetaData();
    md.putValue("metadata_key", "metadata_value");
    ObjectNode node = JacksonUtil.newObjectNode();
    node.put("data_key", "data_value");
    TbMsg msg = TbMsg.newMsg("CUSTOM", TenantId.SYS_TENANT_ID, md, JacksonUtil.toString(node));
    String result = TbNodeUtils.processPattern(pattern, msg);
    Assert.assertEquals("ABC metadata_value data_value", result);
}
Also used : ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) TbMsgMetaData(org.thingsboard.server.common.msg.TbMsgMetaData) TbMsg(org.thingsboard.server.common.msg.TbMsg) Test(org.junit.Test)

Example 18 with TbMsgMetaData

use of org.thingsboard.server.common.msg.TbMsgMetaData in project thingsboard by thingsboard.

the class TbNodeUtilsTest method testComplexObjectReplacement.

@Test
public void testComplexObjectReplacement() {
    String pattern = "ABC ${key} $[key1.key2.key3]";
    TbMsgMetaData md = new TbMsgMetaData();
    md.putValue("key", "metadata_value");
    ObjectNode key2Node = JacksonUtil.newObjectNode();
    key2Node.put("key3", "value3");
    ObjectNode key1Node = JacksonUtil.newObjectNode();
    key1Node.set("key2", key2Node);
    ObjectNode node = JacksonUtil.newObjectNode();
    node.set("key1", key1Node);
    TbMsg msg = TbMsg.newMsg("CUSTOM", TenantId.SYS_TENANT_ID, md, JacksonUtil.toString(node));
    String result = TbNodeUtils.processPattern(pattern, msg);
    Assert.assertEquals("ABC metadata_value value3", result);
}
Also used : ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) TbMsgMetaData(org.thingsboard.server.common.msg.TbMsgMetaData) TbMsg(org.thingsboard.server.common.msg.TbMsg) Test(org.junit.Test)

Example 19 with TbMsgMetaData

use of org.thingsboard.server.common.msg.TbMsgMetaData in project thingsboard by thingsboard.

the class TbNodeUtilsTest method testNoReplacement.

@Test
public void testNoReplacement() {
    String pattern = "ABC ${metadata_key} $[data_key]";
    TbMsgMetaData md = new TbMsgMetaData();
    md.putValue("key", "metadata_value");
    ObjectNode node = JacksonUtil.newObjectNode();
    node.put("key", "data_value");
    TbMsg msg = TbMsg.newMsg("CUSTOM", TenantId.SYS_TENANT_ID, md, JacksonUtil.toString(node));
    String result = TbNodeUtils.processPattern(pattern, msg);
    Assert.assertEquals(pattern, result);
}
Also used : ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) TbMsgMetaData(org.thingsboard.server.common.msg.TbMsgMetaData) TbMsg(org.thingsboard.server.common.msg.TbMsg) Test(org.junit.Test)

Example 20 with TbMsgMetaData

use of org.thingsboard.server.common.msg.TbMsgMetaData in project thingsboard by thingsboard.

the class TbMsgCountNode method onMsg.

@Override
public void onMsg(TbContext ctx, TbMsg msg) {
    if (msg.getType().equals(TB_MSG_COUNT_NODE_MSG) && msg.getId().equals(nextTickId)) {
        JsonObject telemetryJson = new JsonObject();
        telemetryJson.addProperty(this.telemetryPrefix + "_" + ctx.getServiceId(), messagesProcessed.longValue());
        messagesProcessed = new AtomicLong(0);
        TbMsgMetaData metaData = new TbMsgMetaData();
        metaData.putValue("delta", Long.toString(System.currentTimeMillis() - lastScheduledTs + delay));
        TbMsg tbMsg = TbMsg.newMsg(msg.getQueueName(), SessionMsgType.POST_TELEMETRY_REQUEST.name(), ctx.getTenantId(), msg.getCustomerId(), metaData, gson.toJson(telemetryJson));
        ctx.enqueueForTellNext(tbMsg, SUCCESS);
        scheduleTickMsg(ctx, tbMsg);
    } else {
        messagesProcessed.incrementAndGet();
        ctx.ack(msg);
    }
}
Also used : AtomicLong(java.util.concurrent.atomic.AtomicLong) JsonObject(com.google.gson.JsonObject) TbMsgMetaData(org.thingsboard.server.common.msg.TbMsgMetaData) TbMsg(org.thingsboard.server.common.msg.TbMsg)

Aggregations

TbMsgMetaData (org.thingsboard.server.common.msg.TbMsgMetaData)89 TbMsg (org.thingsboard.server.common.msg.TbMsg)56 Test (org.junit.Test)49 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)26 Device (org.thingsboard.server.common.data.Device)17 DeviceProfile (org.thingsboard.server.common.data.DeviceProfile)17 List (java.util.List)16 DeviceProfileData (org.thingsboard.server.common.data.device.profile.DeviceProfileData)16 DeviceId (org.thingsboard.server.common.data.id.DeviceId)15 EntityId (org.thingsboard.server.common.data.id.EntityId)15 AlarmCondition (org.thingsboard.server.common.data.device.profile.AlarmCondition)14 AlarmConditionFilter (org.thingsboard.server.common.data.device.profile.AlarmConditionFilter)14 AlarmConditionFilterKey (org.thingsboard.server.common.data.device.profile.AlarmConditionFilterKey)14 AlarmRule (org.thingsboard.server.common.data.device.profile.AlarmRule)14 DeviceProfileAlarm (org.thingsboard.server.common.data.device.profile.DeviceProfileAlarm)14 AttributeKvEntry (org.thingsboard.server.common.data.kv.AttributeKvEntry)14 NumericFilterPredicate (org.thingsboard.server.common.data.query.NumericFilterPredicate)14 JsonNode (com.fasterxml.jackson.databind.JsonNode)13 DynamicValue (org.thingsboard.server.common.data.query.DynamicValue)13 AttributeKvCompositeKey (org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey)13