From 2b6357502e39c80e121a77dcd50a8808a2903855 Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Fri, 8 Sep 2023 12:31:36 +0300 Subject: [PATCH 1/2] Set widget type alias and bundle alias to be compatible with older edge versions --- .../rpc/constructor/WidgetTypeMsgConstructor.java | 7 +++++++ .../thingsboard/server/edge/WidgetEdgeTest.java | 3 +++ common/edge-api/src/main/proto/edge.proto | 14 +++++++------- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java index e3c8d54683..af574b4b75 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java @@ -35,6 +35,13 @@ public class WidgetTypeMsgConstructor { .setIdLSB(widgetTypeDetails.getId().getId().getLeastSignificantBits()); if (widgetTypeDetails.getFqn() != null) { builder.setFqn(widgetTypeDetails.getFqn()); + if (widgetTypeDetails.getFqn().contains(".")) { + String[] aliases = widgetTypeDetails.getFqn().split("\\.", 2); + if (aliases.length == 2) { + builder.setBundleAlias(aliases[0]); + builder.setAlias(aliases[1]); + } + } } if (widgetTypeDetails.getName() != null) { builder.setName(widgetTypeDetails.getName()); diff --git a/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java index 63b6114072..e958741cd2 100644 --- a/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java @@ -58,6 +58,7 @@ public class WidgetEdgeTest extends AbstractEdgeTest { descriptor.put("key", "value"); widgetType.setDescriptor(descriptor); widgetType.setDeprecated(true); + widgetType.setFqn("bundle_alias.type_alias"); WidgetType savedWidgetType = doPost("/api/widgetType", widgetType, WidgetType.class); Assert.assertTrue(edgeImitator.waitForMessages()); latestMessage = edgeImitator.getLatestMessage(); @@ -69,6 +70,8 @@ public class WidgetEdgeTest extends AbstractEdgeTest { Assert.assertEquals(savedWidgetType.getFqn(), widgetTypeUpdateMsg.getFqn()); Assert.assertEquals(savedWidgetType.getName(), widgetTypeUpdateMsg.getName()); Assert.assertTrue(widgetTypeUpdateMsg.getDeprecated()); + Assert.assertEquals("bundle_alias", widgetTypeUpdateMsg.getBundleAlias()); + Assert.assertEquals("type_alias", widgetTypeUpdateMsg.getAlias()); Assert.assertEquals(JacksonUtil.toJsonNode(widgetTypeUpdateMsg.getDescriptorJson()), savedWidgetType.getDescriptor()); // update widget bundle diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index 3e8310222b..6d1cc8298f 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -85,7 +85,7 @@ message ConnectResponseMsg { } message SyncRequestMsg { - bool syncRequired = 1; // deprecated + bool syncRequired = 1 [deprecated = true]; optional bool fullSync = 2; } @@ -113,7 +113,7 @@ enum UpdateMsgType { ENTITY_DELETED_RPC_MESSAGE = 2; ALARM_ACK_RPC_MESSAGE = 3; ALARM_CLEAR_RPC_MESSAGE = 4; - ENTITY_MERGE_RPC_MESSAGE = 5; // deprecated + ENTITY_MERGE_RPC_MESSAGE = 5 [deprecated = true]; } message EntityDataProto { @@ -204,7 +204,7 @@ message DeviceUpdateMsg { string type = 9; optional string label = 10; optional string additionalInfo = 11; - optional string conflictName = 12; // deprecated + optional string conflictName = 12 [deprecated = true]; optional int64 firmwareIdMSB = 13; optional int64 firmwareIdLSB = 14; optional bytes deviceDataBytes = 15; @@ -365,8 +365,8 @@ message WidgetTypeUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - optional string bundleAlias = 4; // deprecated - optional string alias = 5; // deprecated + optional string bundleAlias = 4 [deprecated = true]; + optional string alias = 5 [deprecated = true]; optional string name = 6; optional string descriptorJson = 7; bool isSystem = 8; @@ -447,8 +447,8 @@ message DeviceCredentialsRequestMsg { int64 deviceIdLSB = 2; } -// deprecated message DeviceProfileDevicesRequestMsg { + option deprecated = true; int64 deviceProfileIdMSB = 1; int64 deviceProfileIdLSB = 2; } @@ -562,7 +562,7 @@ message UplinkMsg { repeated UserCredentialsRequestMsg userCredentialsRequestMsg = 10; repeated DeviceCredentialsRequestMsg deviceCredentialsRequestMsg = 11; repeated DeviceRpcCallMsg deviceRpcCallMsg = 12; - repeated DeviceProfileDevicesRequestMsg deviceProfileDevicesRequestMsg = 13; // deprecated + repeated DeviceProfileDevicesRequestMsg deviceProfileDevicesRequestMsg = 13 [deprecated = true]; repeated WidgetBundleTypesRequestMsg widgetBundleTypesRequestMsg = 14; repeated EntityViewsRequestMsg entityViewsRequestMsg = 15; repeated AssetUpdateMsg assetUpdateMsg = 16; From 13e13a864934fda8e9551a1339b0b70672cebed8 Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Fri, 8 Sep 2023 16:20:53 +0300 Subject: [PATCH 2/2] Added missing locale edge-event.type-tenant --- ui-ngx/src/assets/locale/locale.constant-en_US.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index a51f40b8ff..e2e6fc6b7b 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2003,6 +2003,7 @@ "type-rule-chain-metadata": "Rule Chain Metadata", "type-edge": "Edge", "type-user": "User", + "type-tenant": "Tenant", "type-customer": "Customer", "type-relation": "Relation", "type-widgets-bundle": "Widgets Bundle",