Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _data/installation-options/installation-options-ce.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ onPremise:
imageHeight: 36
2:
title: Ubuntu Server
description: Install ThingsBoard on Ubuntu 20.04 / 22.04 / 24.04 with PostgreSQL or Cassandra, depending on your setup.
description: Install ThingsBoard on Ubuntu 22.04 / 24.04 with PostgreSQL or Cassandra, depending on your setup.
link: /docs/user-guide/install/ubuntu/
icon: /images/install/platform/ubuntu.svg
alt: Ubuntu logo
Expand Down
2 changes: 1 addition & 1 deletion _data/installation-options/installation-options-edge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ edge:
imageHeight: 36
2:
title: Ubuntu Server
description: This guide provides step-by-step instructions for installing ThingsBoard Edge on Ubuntu 18.04 LTS and 20.04 LTS.
description: This guide provides step-by-step instructions for installing ThingsBoard Edge on Ubuntu 22.04 / 24.04 LTS.
link: /docs/user-guide/install/edge/deb-installation/
icon: /images/install/platform/ubuntu.svg
alt: Ubuntu logo
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ peEdge:
imageHeight: 36
2:
title: Ubuntu Server
description: This guide provides step-by-step instructions for installing ThingsBoard Edge on Ubuntu 18.04 LTS and 20.04 LTS.
description: This guide provides step-by-step instructions for installing ThingsBoard Edge on Ubuntu 22.04 / 24.04 LTS.
link: /docs/user-guide/install/pe/edge/deb-installation/
icon: /images/install/platform/ubuntu.svg
alt: Ubuntu logo
Expand Down
2 changes: 1 addition & 1 deletion _data/installation-options/installation-options-pe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ onPremise:
imageHeight: 36
2:
title: Ubuntu Server
description: Install ThingsBoard Professional Edition on Ubuntu 20.04 / 22.04 / 24.04 with PostgreSQL or Cassandra, depending on your setup.
description: Install ThingsBoard Professional Edition on Ubuntu 22.04 / 24.04 with PostgreSQL or Cassandra, depending on your setup.
link: /docs/user-guide/install/pe/ubuntu/
icon: /images/install/platform/ubuntu.svg
alt: Ubuntu logo
Expand Down
36 changes: 36 additions & 0 deletions _data/pages_info.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3999,6 +3999,9 @@
"/docs/pe/releases/releases-table/v4-3-x/":
url: "/docs/pe/releases/releases-table/v4-3-x/"
redirect_from: []
"/docs/pe/releases/releases-table/v4-4-x/":
url: "/docs/pe/releases/releases-table/v4-4-x/"
redirect_from: []
"/docs/pe/releases/roadmap/":
url: "/docs/pe/releases/roadmap/"
redirect_from: []
Expand Down Expand Up @@ -4251,6 +4254,9 @@
"/docs/pe/user-guide/install/upgrade-instructions/centos/v4-3-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/centos/v4-3-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/centos/v4-4-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/centos/v4-4-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/docker/v3-0-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/docker/v3-0-x/"
redirect_from: []
Expand Down Expand Up @@ -4293,6 +4299,9 @@
"/docs/pe/user-guide/install/upgrade-instructions/docker/v4-3-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/docker/v4-3-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/docker/v4-4-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/docker/v4-4-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v3-0-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v3-0-x/"
redirect_from: []
Expand Down Expand Up @@ -4335,6 +4344,9 @@
"/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v4-3-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v4-3-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v4-4-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v4-4-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/":
url: "/docs/pe/user-guide/install/upgrade-instructions/"
redirect_from:
Expand Down Expand Up @@ -4384,6 +4396,9 @@
"/docs/pe/user-guide/install/upgrade-instructions/ubuntu/v4-3-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/ubuntu/v4-3-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/ubuntu/v4-4-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/ubuntu/v4-4-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/upgrade-from-ce/":
url: "/docs/pe/user-guide/install/upgrade-instructions/upgrade-from-ce/"
redirect_from: []
Expand Down Expand Up @@ -4429,6 +4444,9 @@
"/docs/pe/user-guide/install/upgrade-instructions/windows/v4-3-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/windows/v4-3-x/"
redirect_from: []
"/docs/pe/user-guide/install/upgrade-instructions/windows/v4-4-x/":
url: "/docs/pe/user-guide/install/upgrade-instructions/windows/v4-4-x/"
redirect_from: []
"/docs/pe/user-guide/mail-templates/":
url: "/docs/pe/user-guide/mail-templates/"
redirect_from:
Expand Down Expand Up @@ -4828,6 +4846,9 @@
"/docs/releases/releases-table/v4-3-x/":
url: "/docs/releases/releases-table/v4-3-x/"
redirect_from: []
"/docs/releases/releases-table/v4-4-x/":
url: "/docs/releases/releases-table/v4-4-x/"
redirect_from: []
"/docs/releases/roadmap/":
url: "/docs/releases/roadmap/"
redirect_from: []
Expand Down Expand Up @@ -6109,6 +6130,9 @@
"/docs/user-guide/install/upgrade-instructions/centos/v4-3-x/":
url: "/docs/user-guide/install/upgrade-instructions/centos/v4-3-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/centos/v4-4-x/":
url: "/docs/user-guide/install/upgrade-instructions/centos/v4-4-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/docker/v3-0-x/":
url: "/docs/user-guide/install/upgrade-instructions/docker/v3-0-x/"
redirect_from: []
Expand Down Expand Up @@ -6151,6 +6175,9 @@
"/docs/user-guide/install/upgrade-instructions/docker/v4-3-x/":
url: "/docs/user-guide/install/upgrade-instructions/docker/v4-3-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/docker/v4-4-x/":
url: "/docs/user-guide/install/upgrade-instructions/docker/v4-4-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/docker-compose/v3-0-x/":
url: "/docs/user-guide/install/upgrade-instructions/docker-compose/v3-0-x/"
redirect_from: []
Expand Down Expand Up @@ -6193,6 +6220,9 @@
"/docs/user-guide/install/upgrade-instructions/docker-compose/v4-3-x/":
url: "/docs/user-guide/install/upgrade-instructions/docker-compose/v4-3-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/docker-compose/v4-4-x/":
url: "/docs/user-guide/install/upgrade-instructions/docker-compose/v4-4-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/":
url: "/docs/user-guide/install/upgrade-instructions/"
redirect_from: []
Expand Down Expand Up @@ -6241,6 +6271,9 @@
"/docs/user-guide/install/upgrade-instructions/ubuntu/v4-3-x/":
url: "/docs/user-guide/install/upgrade-instructions/ubuntu/v4-3-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/ubuntu/v4-4-x/":
url: "/docs/user-guide/install/upgrade-instructions/ubuntu/v4-4-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/windows/v3-0-x/":
url: "/docs/user-guide/install/upgrade-instructions/windows/v3-0-x/"
redirect_from: []
Expand Down Expand Up @@ -6283,6 +6316,9 @@
"/docs/user-guide/install/upgrade-instructions/windows/v4-3-x/":
url: "/docs/user-guide/install/upgrade-instructions/windows/v4-3-x/"
redirect_from: []
"/docs/user-guide/install/upgrade-instructions/windows/v4-4-x/":
url: "/docs/user-guide/install/upgrade-instructions/windows/v4-4-x/"
redirect_from: []
"/docs/user-guide/install/vc-executor-config/":
url: "/docs/user-guide/install/vc-executor-config/"
redirect_from: []
Expand Down
5 changes: 5 additions & 0 deletions _data/upgrade-instructions-data.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
4.4.0:
upgradable-from: "4.3.x"
release-date: Feb 18 2026
lts: "false"
x: "true"
4.3.0.1:
upgradable-from: "4.2.1.x"
release-date: Feb 3 2026
Expand Down
3 changes: 3 additions & 0 deletions _includes/centos-upgrade-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ sudo dnf install -y postgresql16-contrib
```
{: .copy-code}
{% endif %}
{% if current_version == "4.4" %}
{% include templates/install/tb-440-update-linux.md %}
{% endif %}
{% if current_version == "3.7" %}
{% include templates/install/tb-370-update-linux.md %}
{% endif %}
Expand Down
4 changes: 4 additions & 0 deletions _includes/docker-compose-upgrade-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ If you are running older releases of ThingsBoard - be aware that the manifests i
{%- endif -%}
{%- endif -%}

{% if current_version == "4.4" %}
{% include templates/install/tb-440-tbel-note.md %}
{% endif %}

#### {{ platform }} service upgrade

{% assign skipUpgrade = false %}
Expand Down
4 changes: 4 additions & 0 deletions _includes/docker-upgrade-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ In order to upgrade to {{ current_version_with_platform | upcase }} you need to
{%- endif -%}
{%- endif -%}

{% if current_version == "4.4" %}
{% include templates/install/tb-440-tbel-note.md %}
{% endif %}

#### {{ platform }} service upgrade

{% assign skipUpgrade = false %}
Expand Down
3 changes: 3 additions & 0 deletions _includes/docs/pe/releases/releases-table/v4-4-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### ThingsBoard PE v4.4.0 (Feb 18, 2026)

Java 25 !!!
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ CoAP<br> Integration<br>%,%coap%,%templates/install/integration/coap-docker-wind

### Ubuntu Server

- Install Java 17 (OpenJDK)
- Install Java 25 (OpenJDK)

{% include templates/install/ubuntu-java-install.md %}

Expand All @@ -138,7 +138,7 @@ CoAP<br> Integration<br>%,%coap%,%templates/install/integration/coap-ubuntu.md{%

### CentOS/RHEL Server

- Install Java 17 (OpenJDK)
- Install Java 25 (OpenJDK)

{% include templates/install/rhel-java-install.md %}

Expand Down
2 changes: 1 addition & 1 deletion _includes/docs/reference/mcp-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ You can also build the JAR file from sources and run the ThingsBoard MCP Server

#### Prerequisites

- Java 17 or later
- Java 25 or later
- Maven 3.6 or later

#### Build Steps
Expand Down
3 changes: 3 additions & 0 deletions _includes/docs/releases/releases-table/v4-4-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### ThingsBoard CE v4.4.0 (Feb 18, 2026)

Java 25 !!!
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ We assume you have completed the following guides and reviewed the articles li

We also assume you have the following third-party installed:

* [OpenJDK 17](/docs/{{doscPrefix}}user-guide/install/ubuntu/#step-1-install-java-17-openjdk)
* [OpenJDK 25](/docs/{{doscPrefix}}user-guide/install/ubuntu/#step-1-install-java-25-openjdk)
* [Maven 3.6.0+](https://maven.apache.org/install.html)
* Any modern Java IDE, although we recommend [IntelliJ IDEA](https://www.jetbrains.com/idea/download)
* [Optional] Install [Lombok](https://projectlombok.org/) plugin to your favorite IDE.
Expand Down
104 changes: 98 additions & 6 deletions _includes/docs/user-guide/tbel.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Nevertheless, we have decided to provide an alternative to JavaScript. You may f

## Motivation

ThingsBoard is written in Java and currently uses Java 17. There are two ways to execute the JS function in ThingsBoard:
ThingsBoard is written in Java and currently uses Java 25. There are two ways to execute the JS function in ThingsBoard:

A) use remote JS Executor microservice written in Node.js. It is the default way for ThingsBoard to run in a cluster/microservices mode;

Expand Down Expand Up @@ -2578,6 +2578,98 @@ As you can see, **key2** and **key4** was excluded from the output and **key_to_

The *Tbel* library uses all standard JavaScript methods in the [JavaScript Date](https://www.w3schools.com/jsref/jsref_getdate.asp), such as **"toLocaleString"**, **"toISOString"** and other methods;

#### Date formatting changes in ThingsBoard 4.4+

Starting with ThingsBoard 4.4, the platform runs on Java 25, which includes updated Unicode CLDR (Common Locale Data Repository) locale data. This may cause changes in locale-formatted date/time strings produced by `TbDate` methods.

##### What changed

| Format | Before (Java 17) | After (Java 25) |
|--------|---------|----------|
| Time with AM/PM (English) | `9:04:05 PM` | `9:04:05 PM` (narrow no-break space U+202F before AM/PM) |
| Full datetime (English) | `Sunday, August 6, 2023 at 6:04:05 AM Central European Summer Time` | `Sunday, August 6, 2023, 6:04:05 AM Central European Summer Time` |
| Full datetime (Ukrainian) | `неділя, 6 серпня 2023 р. о 06:04:05 за центральноєвропейським літнім часом` | `неділя, 6 серпня 2023 р., 06:04:05 за центральноєвропейським літнім часом` |
| Short datetime (Arabic) | `5/9/2023, 9:04:05 م` | `5/9/2023، 9:04:05 م` (Arabic comma) |
| UTC timezone display | `Eastern European Time` | `Kyiv (+0)` |

##### Impact

TBEL scripts that rely on exact string matching or parsing of locale-formatted dates may behave differently after upgrading. For example:

```java
// May break after upgrade - string comparison
var dateStr = new Date(ts).toLocaleString("en-US", "America/New_York");
if (dateStr == "9/5/23, 9:04:05 PM") {
// Will fail - invisible character difference (narrow no-break space before PM)
}
```
{: .copy-code}

```java
// May break after upgrade - string splitting
var parts = new Date(ts).toLocaleTimeString("en-US", tz).split(" ");
// "PM" now preceded by narrow no-break space (U+202F), not regular space
```
{: .copy-code}

##### Recommendations

**1. Use ISO formats for comparisons and storage**

```java
// Stable across Java versions
var dateStr = new Date(ts).toISOString(); // "2023-09-05T21:04:05Z"
var dateJson = new Date(ts).toJSON(); // "2023-09-05T21:04:05.000Z"
```
{: .copy-code}

**2. Use explicit patterns for consistent formatting**

```java
// Explicit pattern - stable output
var dateStr = new Date(ts).toLocaleString("en-US", '{"pattern": "M/d/yyyy, h:mm:ss a"}');
```
{: .copy-code}

**3. Use numeric getters for comparisons**

```java
// Compare numeric values instead of strings
var d = new Date(ts);
if (d.getHours() == 21 && d.getMinutes() == 4) { ... }
```
{: .copy-code}

**4. Avoid string equality checks on formatted dates**

```java
// Avoid
if (date.toLocaleString() == storedDateString) { ... }

// Prefer
if (date.getTime() == storedTimestamp) { ... }
```
{: .copy-code}

##### Affected methods

The following `TbDate` methods may produce different output:
- `toLocaleString()`
- `toLocaleDateString()`
- `toLocaleTimeString()`
- `toString()`
- `toDateString()`
- `toTimeString()`
- `toUTCString()`

##### Unaffected methods

These methods produce consistent output across Java versions:
- `toISOString()`
- `toJSON()`
- `getTime()` / `valueOf()`
- All numeric getters (`getFullYear()`, `getMonth()`, `getDate()`, `getHours()`, etc.)

#### Input format data:
- String with Optional: pattern, locale, time zone
- ints (year, month and etc) with Optional: pattern, locale, time zone
Expand Down Expand Up @@ -2718,7 +2810,7 @@ var dLocal_us = d.toLocaleString("en-US");
var d = new Date(2023, 8, 6, 4, 4, 5, "America/New_York");
var dLocal = d.toLocaleString(); // return "2023-08-06 04:04:05" (Locale: "UTC", ZoneId "America/New_York")
var dIso = d.toISOString(); // return "2023-08-06T08:04:05Z" (if ZoneId.systemDefault(): "America/New_York" = "-04:00")
var dDate = d; // return "Sunday, August 6, 2023 at 4:04:05 AM Eastern Daylight Time"
var dDate = d; // return "Sunday, August 6, 2023, 4:04:05 AM Eastern Daylight Time"
```
{: .copy-code}

Expand All @@ -2727,7 +2819,7 @@ var d = new Date(2023, 8, 6, 4, 4, 5, "Europe/Berlin");
var dLocal = d.toLocaleString(); // return "2023-08-05 22:04:05" (Locale: "UTC", (if ZoneId.systemDefault(): "America/New_York" = "-04:00"))
var dLocal_us = d.toLocaleString("en-us", "America/New_York"); // return "8/5/23, 10:04:05 PM" (Locale: "en-us", ZoneId "America/New_York")
var dIso = d.toISOString(); // return "2023-08-06T02:04:05Z"
var dDate = d; // return "Saturday, August 5, 2023 at 22:04:05 AM Eastern Daylight Time" (if ZoneId.systemDefault(): "America/New_York" = "-04:00")
var dDate = d; // return "Saturday, August 5, 2023, 22:04:05 AM Eastern Daylight Time" (if ZoneId.systemDefault(): "America/New_York" = "-04:00")
```
{: .copy-code}

Expand All @@ -2754,7 +2846,7 @@ _Input date Without TZ (TZ Default = ZoneId.systemDefault())_
var d = new Date(2023, 8, 6, 4, 4, 5); // Parameters (int year, int month, int dayOfMonth, int hours, int minutes, int seconds) => TZ Default = ZoneId.systemDefault();
var dLocal = d.toLocaleString("en-US"); // return "8/6/23, 4:04:05 AM" (Locale: "en-US")
var dIso = d.toISOString(); // return Default = ZoneId.systemDefault: "2023-08-06T08:04:05Z", (if ZoneId.systemDefault(): "America/New_York" = "-04:00");
var dDate = d; // return "Sunday, August 6, 2023 at 4:04:05 AM Eastern Daylight Time" (if ZoneId.systemDefault(): "America/New_York" = "-04:00");
var dDate = d; // return "Sunday, August 6, 2023, 4:04:05 AM Eastern Daylight Time" (if ZoneId.systemDefault(): "America/New_York" = "-04:00");
```
{: .copy-code}

Expand Down Expand Up @@ -2858,8 +2950,8 @@ var d = new Date(2023, 8, 6, 4, 4, 5, "UTC"); // TZ => "UTC"
var dIso = d.toISOString(); // return "2023-08-06T04:04:05Z"
var options = {"timeZone":"Europe/Berlin","dateStyle":"full","timeStyle":"full"};
var optionsStr = JSON.stringify(options);
var dLocal1 = d.toLocaleString("uk-UA", optionsStr); // return "неділя, 6 серпня 2023 р. о 06:04:05 за центральноєвропейським літнім часом"
var dLocal2 = d.toLocaleString("en-US", optionsStr); // return "Sunday, August 6, 2023 at 6:04:05 AM Central European Summer Time"
var dLocal1 = d.toLocaleString("uk-UA", optionsStr); // return "неділя, 6 серпня 2023 р., 06:04:05 за центральноєвропейським літнім часом"
var dLocal2 = d.toLocaleString("en-US", optionsStr); // return "Sunday, August 6, 2023, 6:04:05 AM Central European Summer Time"
var dLocal3 = d.toLocaleString("de", optionsStr); // return "Sonntag, 6. August 2023 um 06:04:05 Mitteleuropäische Sommerzeit"
```
{: .copy-code}
Expand Down
4 changes: 2 additions & 2 deletions _includes/templates/edge/install/run-edge-install-windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ The output should be similar to this one:
```text
C:\Program Files (x86)\tb-edge\install.bat
Detecting Java version installed.
CurrentVersion 110
Java 11 found!
CurrentVersion 250
Java 25 found!
Installing Thingsboard Edge...
...
ThingsBoard Edge installed successfully!
Expand Down
Loading