Mino refactoring: add json support for resources, fix test and edgeVersion for test

This commit is contained in:
Andrii Landiak 2023-11-13 13:28:54 +02:00
parent ed285338d2
commit 6fa3a125c2
8 changed files with 28 additions and 24 deletions

View File

@ -647,7 +647,7 @@ public final class EdgeGrpcSession implements Closeable {
case OTA_PACKAGE:
return ctx.getOtaPackageEdgeProcessor().convertOtaPackageEventToDownlink(edgeEvent, this.edgeVersion);
case TB_RESOURCE:
return ctx.getResourceEdgeProcessor().convertResourceEventToDownlink(edgeEvent);
return ctx.getResourceEdgeProcessor().convertResourceEventToDownlink(edgeEvent, this.edgeVersion);
case QUEUE:
return ctx.getQueueEdgeProcessor().convertQueueEventToDownlink(edgeEvent, this.edgeVersion);
case TENANT:

View File

@ -16,18 +16,30 @@
package org.thingsboard.server.service.edge.rpc.constructor;
import org.springframework.stereotype.Component;
import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.common.data.TbResource;
import org.thingsboard.server.common.data.id.TbResourceId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.gen.edge.v1.EdgeVersion;
import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg;
import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
import org.thingsboard.server.queue.util.TbCoreComponent;
import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils;
@Component
@TbCoreComponent
public class ResourceMsgConstructor {
public ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource) {
public ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource, EdgeVersion edgeVersion) {
if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) {
return constructDeprecatedResourceUpdateMsg(msgType, tbResource);
}
return ResourceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tbResource))
.setIdMSB(tbResource.getId().getId().getMostSignificantBits())
.setIdLSB(tbResource.getId().getId().getLeastSignificantBits()).build();
}
private ResourceUpdateMsg constructDeprecatedResourceUpdateMsg(UpdateMsgType msgType, TbResource tbResource) {
ResourceUpdateMsg.Builder builder = ResourceUpdateMsg.newBuilder()
.setMsgType(msgType)
.setIdMSB(tbResource.getId().getId().getMostSignificantBits())

View File

@ -70,16 +70,6 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor {
case ENTITY_UPDATED_RPC_MESSAGE:
alarm.setId(alarmId);
alarm.setOriginator(originatorId);
alarm.setSeverity(AlarmSeverity.valueOf(alarmUpdateMsg.getSeverity()));
alarm.setStartTs(alarmUpdateMsg.getStartTs());
var alarmStatus = AlarmStatus.valueOf(alarmUpdateMsg.getStatus());
alarm.setClearTs(alarmUpdateMsg.getClearTs());
alarm.setPropagate(alarmUpdateMsg.getPropagate());
alarm.setCleared(alarmStatus.isCleared());
alarm.setAcknowledged(alarmStatus.isAck());
alarm.setAckTs(alarmUpdateMsg.getAckTs());
alarm.setEndTs(alarmUpdateMsg.getEndTs());
alarm.setDetails(JacksonUtil.toJsonNode(alarmUpdateMsg.getDetails()));
if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(alarmUpdateMsg.getMsgType())) {
alarmService.createAlarm(AlarmCreateOrUpdateActiveRequest.fromAlarm(alarm, null, alarmId));
} else {

View File

@ -29,6 +29,7 @@ import org.thingsboard.server.common.data.id.TbResourceId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.gen.edge.v1.DownlinkMsg;
import org.thingsboard.server.gen.edge.v1.EdgeVersion;
import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg;
import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
import org.thingsboard.server.queue.util.TbCoreComponent;
@ -70,7 +71,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor {
return Futures.immediateFuture(null);
}
public DownlinkMsg convertResourceEventToDownlink(EdgeEvent edgeEvent) {
public DownlinkMsg convertResourceEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) {
TbResourceId tbResourceId = new TbResourceId(edgeEvent.getEntityId());
DownlinkMsg downlinkMsg = null;
switch (edgeEvent.getAction()) {
@ -80,7 +81,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor {
if (tbResource != null) {
UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction());
ResourceUpdateMsg resourceUpdateMsg =
resourceMsgConstructor.constructResourceUpdatedMsg(msgType, tbResource);
resourceMsgConstructor.constructResourceUpdatedMsg(msgType, tbResource, edgeVersion);
downlinkMsg = DownlinkMsg.newBuilder()
.setDownlinkMsgId(EdgeUtils.nextPositiveInt())
.addResourceUpdateMsg(resourceUpdateMsg)

View File

@ -314,7 +314,7 @@ public abstract class BaseTelemetryProcessor extends BaseEdgeProcessor {
EntityType entityType,
UUID entityUUID,
EdgeEventActionType actionType,
JsonNode body) throws JsonProcessingException {
JsonNode body) {
EntityId entityId;
switch (entityType) {
case DEVICE:

View File

@ -111,7 +111,7 @@ public class EdgeGrpcClient implements EdgeRpcClient {
.setConnectRequestMsg(ConnectRequestMsg.newBuilder()
.setEdgeRoutingKey(edgeKey)
.setEdgeSecret(edgeSecret)
.setEdgeVersion(EdgeVersion.V_3_6_1)
.setEdgeVersion(EdgeVersion.V_3_6_2)
.setMaxInboundMessageSize(maxInboundMessageSize)
.build())
.build());

View File

@ -452,13 +452,14 @@ message ResourceUpdateMsg {
UpdateMsgType msgType = 1;
int64 idMSB = 2;
int64 idLSB = 3;
string title = 4;
string resourceType = 5;
string resourceKey = 6;
string fileName = 7;
optional string data = 8;
optional string etag = 9;
bool isSystem = 10;
string title = 4 [deprecated = true];
string resourceType = 5 [deprecated = true];
string resourceKey = 6 [deprecated = true];
string fileName = 7 [deprecated = true];
optional string data = 8 [deprecated = true];
optional string etag = 9 [deprecated = true];
bool isSystem = 10 [deprecated = true];
string entity = 11;
}
message RuleChainMetadataRequestMsg {

View File

@ -55,4 +55,4 @@ public class JacksonUtilTest {
Assert.assertEquals(asset.getName(), result.getName());
Assert.assertEquals(asset.getType(), result.getType());
}
}
}