Mino refactoring: add json support for resources, fix test and edgeVersion for test
This commit is contained in:
		
							parent
							
								
									ed285338d2
								
							
						
					
					
						commit
						6fa3a125c2
					
				@ -647,7 +647,7 @@ public final class EdgeGrpcSession implements Closeable {
 | 
				
			|||||||
            case OTA_PACKAGE:
 | 
					            case OTA_PACKAGE:
 | 
				
			||||||
                return ctx.getOtaPackageEdgeProcessor().convertOtaPackageEventToDownlink(edgeEvent, this.edgeVersion);
 | 
					                return ctx.getOtaPackageEdgeProcessor().convertOtaPackageEventToDownlink(edgeEvent, this.edgeVersion);
 | 
				
			||||||
            case TB_RESOURCE:
 | 
					            case TB_RESOURCE:
 | 
				
			||||||
                return ctx.getResourceEdgeProcessor().convertResourceEventToDownlink(edgeEvent);
 | 
					                return ctx.getResourceEdgeProcessor().convertResourceEventToDownlink(edgeEvent, this.edgeVersion);
 | 
				
			||||||
            case QUEUE:
 | 
					            case QUEUE:
 | 
				
			||||||
                return ctx.getQueueEdgeProcessor().convertQueueEventToDownlink(edgeEvent, this.edgeVersion);
 | 
					                return ctx.getQueueEdgeProcessor().convertQueueEventToDownlink(edgeEvent, this.edgeVersion);
 | 
				
			||||||
            case TENANT:
 | 
					            case TENANT:
 | 
				
			||||||
 | 
				
			|||||||
@ -16,18 +16,30 @@
 | 
				
			|||||||
package org.thingsboard.server.service.edge.rpc.constructor;
 | 
					package org.thingsboard.server.service.edge.rpc.constructor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					import org.thingsboard.common.util.JacksonUtil;
 | 
				
			||||||
import org.thingsboard.server.common.data.TbResource;
 | 
					import org.thingsboard.server.common.data.TbResource;
 | 
				
			||||||
import org.thingsboard.server.common.data.id.TbResourceId;
 | 
					import org.thingsboard.server.common.data.id.TbResourceId;
 | 
				
			||||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
					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.ResourceUpdateMsg;
 | 
				
			||||||
import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
 | 
					import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
 | 
				
			||||||
import org.thingsboard.server.queue.util.TbCoreComponent;
 | 
					import org.thingsboard.server.queue.util.TbCoreComponent;
 | 
				
			||||||
 | 
					import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component
 | 
					@Component
 | 
				
			||||||
@TbCoreComponent
 | 
					@TbCoreComponent
 | 
				
			||||||
public class ResourceMsgConstructor {
 | 
					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()
 | 
					        ResourceUpdateMsg.Builder builder = ResourceUpdateMsg.newBuilder()
 | 
				
			||||||
                .setMsgType(msgType)
 | 
					                .setMsgType(msgType)
 | 
				
			||||||
                .setIdMSB(tbResource.getId().getId().getMostSignificantBits())
 | 
					                .setIdMSB(tbResource.getId().getId().getMostSignificantBits())
 | 
				
			||||||
 | 
				
			|||||||
@ -70,16 +70,6 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor {
 | 
				
			|||||||
                case ENTITY_UPDATED_RPC_MESSAGE:
 | 
					                case ENTITY_UPDATED_RPC_MESSAGE:
 | 
				
			||||||
                    alarm.setId(alarmId);
 | 
					                    alarm.setId(alarmId);
 | 
				
			||||||
                    alarm.setOriginator(originatorId);
 | 
					                    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())) {
 | 
					                    if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(alarmUpdateMsg.getMsgType())) {
 | 
				
			||||||
                        alarmService.createAlarm(AlarmCreateOrUpdateActiveRequest.fromAlarm(alarm, null, alarmId));
 | 
					                        alarmService.createAlarm(AlarmCreateOrUpdateActiveRequest.fromAlarm(alarm, null, alarmId));
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
 | 
				
			|||||||
@ -29,6 +29,7 @@ import org.thingsboard.server.common.data.id.TbResourceId;
 | 
				
			|||||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
					import org.thingsboard.server.common.data.id.TenantId;
 | 
				
			||||||
import org.thingsboard.server.dao.exception.DataValidationException;
 | 
					import org.thingsboard.server.dao.exception.DataValidationException;
 | 
				
			||||||
import org.thingsboard.server.gen.edge.v1.DownlinkMsg;
 | 
					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.ResourceUpdateMsg;
 | 
				
			||||||
import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
 | 
					import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
 | 
				
			||||||
import org.thingsboard.server.queue.util.TbCoreComponent;
 | 
					import org.thingsboard.server.queue.util.TbCoreComponent;
 | 
				
			||||||
@ -70,7 +71,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor {
 | 
				
			|||||||
        return Futures.immediateFuture(null);
 | 
					        return Futures.immediateFuture(null);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public DownlinkMsg convertResourceEventToDownlink(EdgeEvent edgeEvent) {
 | 
					    public DownlinkMsg convertResourceEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) {
 | 
				
			||||||
        TbResourceId tbResourceId = new TbResourceId(edgeEvent.getEntityId());
 | 
					        TbResourceId tbResourceId = new TbResourceId(edgeEvent.getEntityId());
 | 
				
			||||||
        DownlinkMsg downlinkMsg = null;
 | 
					        DownlinkMsg downlinkMsg = null;
 | 
				
			||||||
        switch (edgeEvent.getAction()) {
 | 
					        switch (edgeEvent.getAction()) {
 | 
				
			||||||
@ -80,7 +81,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor {
 | 
				
			|||||||
                if (tbResource != null) {
 | 
					                if (tbResource != null) {
 | 
				
			||||||
                    UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction());
 | 
					                    UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction());
 | 
				
			||||||
                    ResourceUpdateMsg resourceUpdateMsg =
 | 
					                    ResourceUpdateMsg resourceUpdateMsg =
 | 
				
			||||||
                            resourceMsgConstructor.constructResourceUpdatedMsg(msgType, tbResource);
 | 
					                            resourceMsgConstructor.constructResourceUpdatedMsg(msgType, tbResource, edgeVersion);
 | 
				
			||||||
                    downlinkMsg = DownlinkMsg.newBuilder()
 | 
					                    downlinkMsg = DownlinkMsg.newBuilder()
 | 
				
			||||||
                            .setDownlinkMsgId(EdgeUtils.nextPositiveInt())
 | 
					                            .setDownlinkMsgId(EdgeUtils.nextPositiveInt())
 | 
				
			||||||
                            .addResourceUpdateMsg(resourceUpdateMsg)
 | 
					                            .addResourceUpdateMsg(resourceUpdateMsg)
 | 
				
			||||||
 | 
				
			|||||||
@ -314,7 +314,7 @@ public abstract class BaseTelemetryProcessor extends BaseEdgeProcessor {
 | 
				
			|||||||
                                                                  EntityType entityType,
 | 
					                                                                  EntityType entityType,
 | 
				
			||||||
                                                                  UUID entityUUID,
 | 
					                                                                  UUID entityUUID,
 | 
				
			||||||
                                                                  EdgeEventActionType actionType,
 | 
					                                                                  EdgeEventActionType actionType,
 | 
				
			||||||
                                                                  JsonNode body) throws JsonProcessingException {
 | 
					                                                                  JsonNode body) {
 | 
				
			||||||
        EntityId entityId;
 | 
					        EntityId entityId;
 | 
				
			||||||
        switch (entityType) {
 | 
					        switch (entityType) {
 | 
				
			||||||
            case DEVICE:
 | 
					            case DEVICE:
 | 
				
			||||||
 | 
				
			|||||||
@ -111,7 +111,7 @@ public class EdgeGrpcClient implements EdgeRpcClient {
 | 
				
			|||||||
                .setConnectRequestMsg(ConnectRequestMsg.newBuilder()
 | 
					                .setConnectRequestMsg(ConnectRequestMsg.newBuilder()
 | 
				
			||||||
                        .setEdgeRoutingKey(edgeKey)
 | 
					                        .setEdgeRoutingKey(edgeKey)
 | 
				
			||||||
                        .setEdgeSecret(edgeSecret)
 | 
					                        .setEdgeSecret(edgeSecret)
 | 
				
			||||||
                        .setEdgeVersion(EdgeVersion.V_3_6_1)
 | 
					                        .setEdgeVersion(EdgeVersion.V_3_6_2)
 | 
				
			||||||
                        .setMaxInboundMessageSize(maxInboundMessageSize)
 | 
					                        .setMaxInboundMessageSize(maxInboundMessageSize)
 | 
				
			||||||
                        .build())
 | 
					                        .build())
 | 
				
			||||||
                .build());
 | 
					                .build());
 | 
				
			||||||
 | 
				
			|||||||
@ -452,13 +452,14 @@ message ResourceUpdateMsg {
 | 
				
			|||||||
  UpdateMsgType msgType = 1;
 | 
					  UpdateMsgType msgType = 1;
 | 
				
			||||||
  int64 idMSB = 2;
 | 
					  int64 idMSB = 2;
 | 
				
			||||||
  int64 idLSB = 3;
 | 
					  int64 idLSB = 3;
 | 
				
			||||||
  string title = 4;
 | 
					  string title = 4 [deprecated = true];
 | 
				
			||||||
  string resourceType = 5;
 | 
					  string resourceType = 5 [deprecated = true];
 | 
				
			||||||
  string resourceKey = 6;
 | 
					  string resourceKey = 6 [deprecated = true];
 | 
				
			||||||
  string fileName = 7;
 | 
					  string fileName = 7 [deprecated = true];
 | 
				
			||||||
  optional string data = 8;
 | 
					  optional string data = 8 [deprecated = true];
 | 
				
			||||||
  optional string etag = 9;
 | 
					  optional string etag = 9 [deprecated = true];
 | 
				
			||||||
  bool isSystem = 10;
 | 
					  bool isSystem = 10 [deprecated = true];
 | 
				
			||||||
 | 
					  string entity = 11;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
message RuleChainMetadataRequestMsg {
 | 
					message RuleChainMetadataRequestMsg {
 | 
				
			||||||
 | 
				
			|||||||
@ -55,4 +55,4 @@ public class JacksonUtilTest {
 | 
				
			|||||||
        Assert.assertEquals(asset.getName(), result.getName());
 | 
					        Assert.assertEquals(asset.getName(), result.getName());
 | 
				
			||||||
        Assert.assertEquals(asset.getType(), result.getType());
 | 
					        Assert.assertEquals(asset.getType(), result.getType());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user