From 9165faa341d7557087edee66799f5afafc8a5492 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Wed, 5 Apr 2023 17:23:03 +0300 Subject: [PATCH] Improved Platform Updates Service --- .../trigger/NewPlatformVersionTriggerProcessor.java | 4 +++- .../server/service/update/DefaultUpdateService.java | 10 ++-------- .../thingsboard/server/common/data/UpdateMessage.java | 6 +++++- .../info/NewPlatformVersionNotificationInfo.java | 7 +++---- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/notification/rule/trigger/NewPlatformVersionTriggerProcessor.java b/application/src/main/java/org/thingsboard/server/service/notification/rule/trigger/NewPlatformVersionTriggerProcessor.java index 030409d014..699ef8b312 100644 --- a/application/src/main/java/org/thingsboard/server/service/notification/rule/trigger/NewPlatformVersionTriggerProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/notification/rule/trigger/NewPlatformVersionTriggerProcessor.java @@ -15,8 +15,10 @@ */ package org.thingsboard.server.service.notification.rule.trigger; +import com.fasterxml.jackson.core.type.TypeReference; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.notification.info.NewPlatformVersionNotificationInfo; import org.thingsboard.server.common.data.notification.info.NotificationInfo; @@ -44,7 +46,7 @@ public class NewPlatformVersionTriggerProcessor implements NotificationRuleTrigg @Override public NotificationInfo constructNotificationInfo(NewPlatformVersionTrigger trigger, NewPlatformVersionNotificationRuleTriggerConfig triggerConfig) { return NewPlatformVersionNotificationInfo.builder() - .message("New version available - " + trigger.getMessage().getLatestVersion()) + .message(JacksonUtil.convertValue(trigger.getMessage(), new TypeReference<>() {})) .build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/update/DefaultUpdateService.java b/application/src/main/java/org/thingsboard/server/service/update/DefaultUpdateService.java index 46f3d89a50..bdf4d91f3d 100644 --- a/application/src/main/java/org/thingsboard/server/service/update/DefaultUpdateService.java +++ b/application/src/main/java/org/thingsboard/server/service/update/DefaultUpdateService.java @@ -78,7 +78,7 @@ public class DefaultUpdateService implements UpdateService { @PostConstruct private void init() { version = buildProperties != null ? buildProperties.getVersion() : "unknown"; - updateMessage = new UpdateMessage(false, version, "", ""); + updateMessage = new UpdateMessage(false, version, "", "", "", ""); if (updatesEnabled) { try { platform = System.getProperty("platform", "unknown"); @@ -129,14 +129,8 @@ public class DefaultUpdateService implements UpdateService { request.put(PLATFORM_PARAM, platform); request.put(VERSION_PARAM, version); request.put(INSTANCE_ID_PARAM, instanceId.toString()); - JsonNode response = restClient.postForObject(UPDATE_SERVER_BASE_URL + "/api/thingsboard/updates", request, JsonNode.class); UpdateMessage prevUpdateMessage = updateMessage; - updateMessage = new UpdateMessage( - response.get("updateAvailable").asBoolean(), - version, - "3.5.0", - "https://thingsboard.io/docs/user-guide/install/pe/upgrade-instructions" - ); + updateMessage = restClient.postForObject(UPDATE_SERVER_BASE_URL + "/api/v2/thingsboard/updates", request, UpdateMessage.class); if (updateMessage.isUpdateAvailable() && !updateMessage.equals(prevUpdateMessage)) { notificationRuleProcessingService.process(TenantId.SYS_TENANT_ID, NewPlatformVersionTrigger.builder() .message(updateMessage) diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/UpdateMessage.java b/common/data/src/main/java/org/thingsboard/server/common/data/UpdateMessage.java index aecfcc16b4..7cddc5ecc4 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/UpdateMessage.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/UpdateMessage.java @@ -24,13 +24,17 @@ import lombok.Data; public class UpdateMessage { @ApiModelProperty(position = 1, value = "'True' if new platform update is available.") - private final boolean isUpdateAvailable; + private final boolean updateAvailable; @ApiModelProperty(position = 2, value = "Current ThingsBoard version.") private final String currentVersion; @ApiModelProperty(position = 3, value = "Latest ThingsBoard version.") private final String latestVersion; @ApiModelProperty(position = 4, value = "Upgrade instructions URL.") private final String upgradeInstructionsUrl; + @ApiModelProperty(position = 5, value = "Current ThingsBoard version release notes URL.") + private final String currentVersionReleaseNotesUrl; + @ApiModelProperty(position = 6, value = "Latest ThingsBoard version release notes URL.") + private final String latestVersionReleaseNotesUrl; } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/notification/info/NewPlatformVersionNotificationInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/notification/info/NewPlatformVersionNotificationInfo.java index 0e85d95fd0..2dd9ae7e11 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/notification/info/NewPlatformVersionNotificationInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/notification/info/NewPlatformVersionNotificationInfo.java @@ -19,6 +19,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.thingsboard.server.common.data.UpdateMessage; import java.util.Map; @@ -30,13 +31,11 @@ import static org.thingsboard.server.common.data.util.CollectionsUtil.mapOf; @Builder public class NewPlatformVersionNotificationInfo implements NotificationInfo { - private String message; + private Map message; @Override public Map getTemplateData() { - return mapOf( - "message", message - ); + return message; } }