From d5fe1db7d4b64729391937491e629a146d7eade2 Mon Sep 17 00:00:00 2001 From: Nikita Mazurenko Date: Fri, 23 Jan 2026 13:00:53 +0200 Subject: [PATCH 1/4] Add test to verify that enum proto EdgeVersion is synchronized with maven project.version --- application/pom.xml | 1 + .../server/edge/EdgeLatestVersionTest.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java diff --git a/application/pom.xml b/application/pom.xml index 36dfcac42f..6903cae2e4 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -458,6 +458,7 @@ thingsboard + ${project.version} **/nosql/*Test.java diff --git a/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java b/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java new file mode 100644 index 0000000000..079cea1b35 --- /dev/null +++ b/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java @@ -0,0 +1,31 @@ +package org.thingsboard.server.edge; + +import org.junit.Assert; +import org.junit.Test; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; + +import java.util.Arrays; +import java.util.Comparator; + +public class EdgeLatestVersionTest { + + @Test + public void edgeLatestVersionIsSynchronizedTest() { + EdgeVersion currentHighestEdgeVersion = Arrays.stream(EdgeVersion.values()) + .filter(v -> v != EdgeVersion.UNRECOGNIZED) + .filter(v -> v != EdgeVersion.V_LATEST) + .max(Comparator.comparingInt(EdgeVersion::getNumber)) + .orElseThrow(); + + String projectVersion = EdgeLatestVersionTest.class.getPackage().getImplementationVersion(); + if (projectVersion == null || projectVersion.isBlank()) { + projectVersion = System.getProperty("project.version", "UNKNOWN"); + } + + String projectVersionDigits = projectVersion.replaceAll("\\D", ""); + String currentHighestEdgeVersionDigits = currentHighestEdgeVersion.name().replaceAll("\\D", ""); + + Assert.assertEquals(projectVersionDigits, currentHighestEdgeVersionDigits); + } + +} From 3d7be726929895220cedb207fab9ed55a86f647f Mon Sep 17 00:00:00 2001 From: Nikita Mazurenko Date: Fri, 23 Jan 2026 13:14:27 +0200 Subject: [PATCH 2/4] Add error message to EdgeLatestVersionTest --- .../org/thingsboard/server/edge/EdgeLatestVersionTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java b/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java index 079cea1b35..384af66d01 100644 --- a/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java @@ -25,7 +25,8 @@ public class EdgeLatestVersionTest { String projectVersionDigits = projectVersion.replaceAll("\\D", ""); String currentHighestEdgeVersionDigits = currentHighestEdgeVersion.name().replaceAll("\\D", ""); - Assert.assertEquals(projectVersionDigits, currentHighestEdgeVersionDigits); + String msg = "EdgeVersion enum in edge.proto is out of sync. Please add respective " + projectVersionDigits + " to EdgeVersion"; + Assert.assertEquals(msg, projectVersionDigits, currentHighestEdgeVersionDigits); } } From 10aa63f78f5af1073f1690c83224ba97ed8d4014 Mon Sep 17 00:00:00 2001 From: Nikita Mazurenko Date: Fri, 23 Jan 2026 16:40:18 +0200 Subject: [PATCH 3/4] Add license format in EdgeLatestVersionTest --- .../server/edge/EdgeLatestVersionTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java b/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java index 384af66d01..84c90f6b63 100644 --- a/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/EdgeLatestVersionTest.java @@ -1,3 +1,18 @@ +/** + * Copyright © 2016-2026 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.edge; import org.junit.Assert; From 25e6464837b33913f22597949d8ede7ff32b17fe Mon Sep 17 00:00:00 2001 From: Nikita Mazurenko Date: Mon, 2 Feb 2026 14:01:41 +0200 Subject: [PATCH 4/4] Set EdgeVersion V_4_2_1_2 = 13 in edge.proto --- common/edge-api/src/main/proto/edge.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index 803bb98330..783c4ab394 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -44,6 +44,7 @@ enum EdgeVersion { V_4_0_0 = 10; V_4_1_0 = 11; V_4_2_0 = 12; + V_4_2_1_2 = 13; V_LATEST = 999; }