diff --git a/_data/installation-options/installation-options-ce.yml b/_data/installation-options/installation-options-ce.yml
index 9c9abdbe73..34cd5b2402 100644
--- a/_data/installation-options/installation-options-ce.yml
+++ b/_data/installation-options/installation-options-ce.yml
@@ -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
diff --git a/_data/installation-options/installation-options-edge.yml b/_data/installation-options/installation-options-edge.yml
index fc6fb627b9..8a01672b38 100644
--- a/_data/installation-options/installation-options-edge.yml
+++ b/_data/installation-options/installation-options-edge.yml
@@ -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
diff --git a/_data/installation-options/installation-options-pe-edge.yml b/_data/installation-options/installation-options-pe-edge.yml
index 188668403c..b033b37f02 100644
--- a/_data/installation-options/installation-options-pe-edge.yml
+++ b/_data/installation-options/installation-options-pe-edge.yml
@@ -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
diff --git a/_data/installation-options/installation-options-pe.yml b/_data/installation-options/installation-options-pe.yml
index dbe8feac4c..a2db023d7c 100644
--- a/_data/installation-options/installation-options-pe.yml
+++ b/_data/installation-options/installation-options-pe.yml
@@ -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
diff --git a/_data/pages_info.yml b/_data/pages_info.yml
index 93a34f1ee4..d32fd71af2 100644
--- a/_data/pages_info.yml
+++ b/_data/pages_info.yml
@@ -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: []
@@ -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: []
@@ -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: []
@@ -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:
@@ -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: []
@@ -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:
@@ -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: []
@@ -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: []
@@ -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: []
@@ -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: []
@@ -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: []
@@ -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: []
diff --git a/_data/upgrade-instructions-data.yml b/_data/upgrade-instructions-data.yml
index b1fff7b20b..05e94ec638 100644
--- a/_data/upgrade-instructions-data.yml
+++ b/_data/upgrade-instructions-data.yml
@@ -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
diff --git a/_includes/centos-upgrade-instructions.md b/_includes/centos-upgrade-instructions.md
index 2d57e93512..d238f06e7e 100644
--- a/_includes/centos-upgrade-instructions.md
+++ b/_includes/centos-upgrade-instructions.md
@@ -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 %}
diff --git a/_includes/docker-compose-upgrade-instructions.md b/_includes/docker-compose-upgrade-instructions.md
index 34755ae772..244a2e5a23 100644
--- a/_includes/docker-compose-upgrade-instructions.md
+++ b/_includes/docker-compose-upgrade-instructions.md
@@ -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 %}
diff --git a/_includes/docker-upgrade-instructions.md b/_includes/docker-upgrade-instructions.md
index 5c48c3ec18..80e31f90dc 100644
--- a/_includes/docker-upgrade-instructions.md
+++ b/_includes/docker-upgrade-instructions.md
@@ -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 %}
diff --git a/_includes/docs/pe/releases/releases-table/v4-4-0.md b/_includes/docs/pe/releases/releases-table/v4-4-0.md
new file mode 100644
index 0000000000..46e302fc17
--- /dev/null
+++ b/_includes/docs/pe/releases/releases-table/v4-4-0.md
@@ -0,0 +1,3 @@
+### ThingsBoard PE v4.4.0 (Feb 18, 2026)
+
+Java 25 !!!
diff --git a/_includes/docs/pe/user-guide/integrations/remote-integrations.md b/_includes/docs/pe/user-guide/integrations/remote-integrations.md
index 99e3e1a763..24d4f6b77c 100644
--- a/_includes/docs/pe/user-guide/integrations/remote-integrations.md
+++ b/_includes/docs/pe/user-guide/integrations/remote-integrations.md
@@ -119,7 +119,7 @@ CoAP
Integration
%,%coap%,%templates/install/integration/coap-docker-wind
### Ubuntu Server
- - Install Java 17 (OpenJDK)
+ - Install Java 25 (OpenJDK)
{% include templates/install/ubuntu-java-install.md %}
@@ -138,7 +138,7 @@ CoAP
Integration
%,%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 %}
diff --git a/_includes/docs/reference/mcp-server.md b/_includes/docs/reference/mcp-server.md
index 135397d409..c0ae1dae8d 100644
--- a/_includes/docs/reference/mcp-server.md
+++ b/_includes/docs/reference/mcp-server.md
@@ -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
diff --git a/_includes/docs/releases/releases-table/v4-4-0.md b/_includes/docs/releases/releases-table/v4-4-0.md
new file mode 100644
index 0000000000..49927d16bc
--- /dev/null
+++ b/_includes/docs/releases/releases-table/v4-4-0.md
@@ -0,0 +1,3 @@
+### ThingsBoard CE v4.4.0 (Feb 18, 2026)
+
+Java 25 !!!
\ No newline at end of file
diff --git a/_includes/docs/user-guide/contribution/rule-node-development.md b/_includes/docs/user-guide/contribution/rule-node-development.md
index 75fff6f774..59ed25b0da 100644
--- a/_includes/docs/user-guide/contribution/rule-node-development.md
+++ b/_includes/docs/user-guide/contribution/rule-node-development.md
@@ -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.
diff --git a/_includes/docs/user-guide/tbel.md b/_includes/docs/user-guide/tbel.md
index c8604735d5..9da9a200b5 100644
--- a/_includes/docs/user-guide/tbel.md
+++ b/_includes/docs/user-guide/tbel.md
@@ -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;
@@ -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
@@ -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}
@@ -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}
@@ -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}
@@ -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}
diff --git a/_includes/templates/edge/install/run-edge-install-windows.md b/_includes/templates/edge/install/run-edge-install-windows.md
index 9d77b4100d..e5c9273509 100644
--- a/_includes/templates/edge/install/run-edge-install-windows.md
+++ b/_includes/templates/edge/install/run-edge-install-windows.md
@@ -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!
diff --git a/_includes/templates/edge/integrations/resources/centos-rhel.md b/_includes/templates/edge/integrations/resources/centos-rhel.md
index 905c77e043..289abeee0c 100644
--- a/_includes/templates/edge/integrations/resources/centos-rhel.md
+++ b/_includes/templates/edge/integrations/resources/centos-rhel.md
@@ -1,4 +1,4 @@
-#### Install Java 17 (OpenJDK)
+#### Install Java 25 (OpenJDK)
{% include templates/install/rhel-java-install.md %}
diff --git a/_includes/templates/edge/integrations/resources/ubuntu.md b/_includes/templates/edge/integrations/resources/ubuntu.md
index a7d2b71eac..849eb1d8e1 100644
--- a/_includes/templates/edge/integrations/resources/ubuntu.md
+++ b/_includes/templates/edge/integrations/resources/ubuntu.md
@@ -1,4 +1,4 @@
-#### Install Java 17 (OpenJDK)
+#### Install Java 25 (OpenJDK)
{% include templates/install/ubuntu-java-install.md %}
diff --git a/_includes/templates/edge/user-guide/deb-edge-behind-proxy.md b/_includes/templates/edge/user-guide/deb-edge-behind-proxy.md
index f7a129575a..36bca0dc52 100644
--- a/_includes/templates/edge/user-guide/deb-edge-behind-proxy.md
+++ b/_includes/templates/edge/user-guide/deb-edge-behind-proxy.md
@@ -2,7 +2,7 @@
* Have a proxy server (**HTTP** or **HTTPS**) with its address, port, and credentials (if required).
* Consider the addresses that should bypass the proxy (e.g., internal resources).
-* Have **Java 17** installed.
+* Have **Java 25** installed.
* **ThingsBoard Edge** is installed and running.
#### Step 1. Modify Configuration File
diff --git a/_includes/templates/install/digital-ocean-droplet.md b/_includes/templates/install/digital-ocean-droplet.md
index c941a59b48..925907c2f4 100644
--- a/_includes/templates/install/digital-ocean-droplet.md
+++ b/_includes/templates/install/digital-ocean-droplet.md
@@ -2,7 +2,7 @@
- Active [DigitalOcean](https://cloud.digitalocean.com/){:target="_blank"} account
-## Step 1. Launch Ubuntu 18.04 on DigitalOcean
+## Step 1. Launch Ubuntu 24.04 on DigitalOcean
### Step 1.1 Create DigitalOcean Droplet
@@ -13,7 +13,7 @@
### Step 1.2 Select your plan
-- Once "Create Droplets" page is loaded, select "Ubuntu 18.04 x64" as your image (see image below).
+- Once "Create Droplets" page is loaded, select "Ubuntu 24.04 x64" as your image (see image below).
- Choose your plan. For beginners we would like to recommend 2CPUs and 4GB of RAM plan.
Note: Advanced ThingsBoard users may choose the plan that suites their workload best.
diff --git a/_includes/templates/install/rhel-java-install.md b/_includes/templates/install/rhel-java-install.md
index e1a0c3d61d..3a6a898dc1 100644
--- a/_includes/templates/install/rhel-java-install.md
+++ b/_includes/templates/install/rhel-java-install.md
@@ -1,11 +1,16 @@
-ThingsBoard service is running on Java 17. Follow this instructions to install OpenJDK 17:
+ThingsBoard service is running on Java 25. Follow these instructions to install OpenJDK 25:
+
+{% capture rhel8_note %}
+**Note:** `java-25-openjdk` requires RHEL 9 or later. RHEL 8 users should upgrade to RHEL 9 before proceeding.
+{% endcapture %}
+{% include templates/info-banner.md content=rhel8_note %}
```bash
-sudo dnf install java-17-openjdk-headless
+sudo dnf install java-25-openjdk-headless
```
{: .copy-code}
-Please don't forget to configure your operating system to use OpenJDK 17 by default.
+Please don't forget to configure your operating system to use OpenJDK 25 by default.
You can configure which version is the default using the following command:
```bash
@@ -23,7 +28,7 @@ java -version
Expected command output is:
```text
-openjdk version "17.x.xx"
+openjdk version "25.x.xx"
OpenJDK Runtime Environment (...)
OpenJDK 64-Bit Server VM (build ...)
```
diff --git a/_includes/templates/install/tb-370-update-linux.md b/_includes/templates/install/tb-370-update-linux.md
index 3c5198e0c9..7961ac0d79 100644
--- a/_includes/templates/install/tb-370-update-linux.md
+++ b/_includes/templates/install/tb-370-update-linux.md
@@ -3,11 +3,19 @@
ThingsBoard backend was migrated to Java 17. Install JDK 17 and ensure that system's default Java version is set to 17.
-Please refer to Step 1 of the corresponding installation guide for detailed instructions:
+**Ubuntu/Debian:**
-[**Ubuntu**](/docs/user-guide/install/ubuntu/#step-1-install-java-17-openjdk)
+```bash
+sudo apt update && sudo apt install openjdk-17-jdk-headless
+sudo update-alternatives --config java
+```
-[**CentOS/RHEL**](/docs/user-guide/install/rhel/#step-1-install-java-17-openjdk)
+**CentOS/RHEL:**
+
+```bash
+sudo dnf install java-17-openjdk-headless
+sudo update-alternatives --config java
+```
{% endcapture %}
-{% include templates/warn-banner.md content=tb_3_7_0_upgrade_note %}
\ No newline at end of file
+{% include templates/warn-banner.md content=tb_3_7_0_upgrade_note %}
diff --git a/_includes/templates/install/tb-370-update-windows.md b/_includes/templates/install/tb-370-update-windows.md
index cb5e3f6178..32e6a66306 100644
--- a/_includes/templates/install/tb-370-update-windows.md
+++ b/_includes/templates/install/tb-370-update-windows.md
@@ -3,7 +3,7 @@
ThingsBoard backend was migrated to Java 17. Install JDK 17 and ensure that system's default Java version is set to 17.
-Please refer to [**Step 1 of the installation guide**](/docs/user-guide/install/windows/#step-1-install-java-17-openjdk) for detailed instructions.
+Download and install [Adoptium OpenJDK 17](https://adoptium.net): select "Operating System" as "Windows", "Architecture" as "x64", "Version" as "17 - LTS" and download the **JDK .msi** package. Make sure you have selected "**Add to PATH**" and "**Set JAVA_HOME variable**" options during installation.
{% endcapture %}
-{% include templates/warn-banner.md content=tb_3_7_0_upgrade_note %}
\ No newline at end of file
+{% include templates/warn-banner.md content=tb_3_7_0_upgrade_note %}
diff --git a/_includes/templates/install/tb-440-tbel-note.md b/_includes/templates/install/tb-440-tbel-note.md
new file mode 100644
index 0000000000..f33ba95af0
--- /dev/null
+++ b/_includes/templates/install/tb-440-tbel-note.md
@@ -0,0 +1,11 @@
+{% capture tb_4_4_0_tbel_note %}
+**TBEL Date Formatting Changes in ThingsBoard 4.4**
+
+ThingsBoard 4.4 runs on Java 25, which includes updated Unicode CLDR locale data. This may cause changes in locale-formatted date/time strings produced by `TbDate` methods such as `toLocaleString()`, `toLocaleDateString()`, and `toLocaleTimeString()`.
+
+If your TBEL scripts rely on exact string matching of formatted dates, they may behave differently after upgrading. Methods like `toISOString()`, `toJSON()`, `getTime()`, and all numeric getters are **not affected**.
+
+**Recommendations:** Use `toISOString()` or explicit patterns for stable formatting. Use numeric getters for comparisons instead of string matching. See [TBEL Date formatting changes](/docs/user-guide/tbel/#date-formatting-changes-in-thingsboard-44) for details.
+
+{% endcapture %}
+{% include templates/info-banner.md content=tb_4_4_0_tbel_note %}
diff --git a/_includes/templates/install/tb-440-update-linux.md b/_includes/templates/install/tb-440-update-linux.md
new file mode 100644
index 0000000000..000e45629e
--- /dev/null
+++ b/_includes/templates/install/tb-440-update-linux.md
@@ -0,0 +1,17 @@
+{% capture tb_4_4_0_upgrade_note %}
+**Important note before upgrading to ThingsBoard 4.4**
+
+ThingsBoard backend was migrated to Java 25. Install JDK 25 and ensure that system's default Java version is set to 25.
+
+Please refer to Step 1 of the corresponding installation guide for detailed instructions:
+
+[**Ubuntu**](/docs/user-guide/install/ubuntu/#step-1-install-java-25-openjdk)
+
+[**CentOS/RHEL**](/docs/user-guide/install/rhel/#step-1-install-java-25-openjdk)
+
+{% if docsPrefix == "pe/" %}
+If you are running [remote integrations](/docs/pe/user-guide/integrations/remote-integrations/) on bare metal, ensure Java 25 is also installed on those servers.
+{% endif %}
+{% endcapture %}
+{% include templates/warn-banner.md content=tb_4_4_0_upgrade_note %}
+{% include templates/install/tb-440-tbel-note.md %}
diff --git a/_includes/templates/install/tb-440-update-windows.md b/_includes/templates/install/tb-440-update-windows.md
new file mode 100644
index 0000000000..0b5eef2ada
--- /dev/null
+++ b/_includes/templates/install/tb-440-update-windows.md
@@ -0,0 +1,13 @@
+{% capture tb_4_4_0_upgrade_note %}
+**Important note before upgrading to ThingsBoard 4.4**
+
+ThingsBoard backend was migrated to Java 25. Install JDK 25 and ensure that system's default Java version is set to 25.
+
+Please refer to [**Step 1 of the installation guide**](/docs/user-guide/install/windows/#step-1-install-java-25-openjdk) for detailed instructions.
+
+{% if docsPrefix == "pe/" %}
+If you are running [remote integrations](/docs/pe/user-guide/integrations/remote-integrations/) on bare metal, ensure Java 25 is also installed on those servers.
+{% endif %}
+{% endcapture %}
+{% include templates/warn-banner.md content=tb_4_4_0_upgrade_note %}
+{% include templates/install/tb-440-tbel-note.md %}
diff --git a/_includes/templates/install/ubuntu-java-install.md b/_includes/templates/install/ubuntu-java-install.md
index cd97bd15c6..636ba9c948 100644
--- a/_includes/templates/install/ubuntu-java-install.md
+++ b/_includes/templates/install/ubuntu-java-install.md
@@ -1,11 +1,11 @@
-ThingsBoard service is running on Java 17. To install OpenJDK 17, follow these instructions
+ThingsBoard service is running on Java 25. To install OpenJDK 25, follow these instructions
```bash
-sudo apt update && sudo apt install openjdk-17-jdk-headless
+sudo apt update && sudo apt install openjdk-25-jdk-headless
```
{: .copy-code}
-Configure your operating system to use **OpenJDK 17 by default**.
+Configure your operating system to use **OpenJDK 25 by default**.
You can configure the default version by running the following command:
```bash
@@ -23,7 +23,7 @@ java -version
The expected result is:
```text
-openjdk version "17.x.xx"
+openjdk version "25.x.xx"
OpenJDK Runtime Environment (...)
OpenJDK 64-Bit Server VM (...)
```
diff --git a/_includes/templates/install/windows-java-install.md b/_includes/templates/install/windows-java-install.md
index 11eb3a30df..4c3fc677c8 100644
--- a/_includes/templates/install/windows-java-install.md
+++ b/_includes/templates/install/windows-java-install.md
@@ -1,7 +1,7 @@
-ThingsBoard service is running on Java 17. Follow this instructions to install OpenJDK 17.
+ThingsBoard service is running on Java 25. Follow these instructions to install OpenJDK 25.
- * Visit [Open JDK Download Page](https://adoptium.net). Go to "Other platforms and versions", select "Operating System" as "Windows", "Architecture" as "x64", "Version" as "17 - LTS" and download **JDK .msi** package.
- * Run the downloaded MSI package and follow the instructions.
+ * Visit [Open JDK Download Page](https://adoptium.net). Go to "Other platforms and versions", select "Operating System" as "Windows", "Architecture" as "x64", "Version" as "25 - LTS" and download **JDK .msi** package.
+ * Run the downloaded MSI package and follow the instructions.
Make sure you have selected "**Add to PATH**" and "**Set JAVA_HOME variable**" options to "Will be installed on local hard drive" state.
* Visit [PostgreSQL JDBC Download Page](https://jdbc.postgresql.org/download/) to download PostgreSQL JDBC Driver. Choose the latest available option.
* Create the folder **C:\Program Files\JDBC** and copy downloaded file there. Then, add a new global variable - run PowerShell as an administrator and execute the following command. Do not forget to change "postgresql-42.2.18.jar" in the command to match the downloaded version.
@@ -22,7 +22,7 @@ Expected command output is:
```text
C:\Users\User>java -version
-openjdk version "17.x.xx"
-OpenJDK Runtime Environment Temurin-17.x.xx (...)
-OpenJDK 64-Bit Server VM Temurin-17.x.xx (...)
+openjdk version "25.x.xx"
+OpenJDK Runtime Environment Temurin-25.x.xx (...)
+OpenJDK 64-Bit Server VM Temurin-25.x.xx (...)
```
diff --git a/_includes/ubuntu-upgrade-instructions.md b/_includes/ubuntu-upgrade-instructions.md
index 55a9467897..bc242ea87c 100644
--- a/_includes/ubuntu-upgrade-instructions.md
+++ b/_includes/ubuntu-upgrade-instructions.md
@@ -105,6 +105,9 @@ 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-update-linux.md %}
+{% endif %}
{% if current_version == "3.7" %}
{% include templates/install/tb-370-update-linux.md %}
{% endif %}
diff --git a/_includes/windows-upgrade-instructions.md b/_includes/windows-upgrade-instructions.md
index 2c13f03648..8308a5b7ff 100644
--- a/_includes/windows-upgrade-instructions.md
+++ b/_includes/windows-upgrade-instructions.md
@@ -102,6 +102,9 @@ 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-update-windows.md %}
+{% endif %}
{% if current_version == "3.7" %}
{% include templates/install/tb-370-update-windows.md %}
{% endif %}
diff --git a/docs/pe/releases/releases-table/v4-4-x.md b/docs/pe/releases/releases-table/v4-4-x.md
new file mode 100644
index 0000000000..c011e0b741
--- /dev/null
+++ b/docs/pe/releases/releases-table/v4-4-x.md
@@ -0,0 +1,19 @@
+---
+layout: docwithnav-pe
+title: Thingsboard PE v4.4.x release notes
+description: Discover Thingsboard PE v4.4.x release notes
+breadcrumbs: 'true'
+breadcrumbs-steps: '1'
+release-date: Feb 18, 2026
+last-updated: Feb 18, 2026
+release-note-label: Java 25
+active-menu-item-click: 'true'
+latest-patch: v4.4.0 (Feb 18, 2026)
+effective-url: '/docs/pe/releases/releases-table/'
+---
+* TOC
+{:toc}
+
+{% assign docsPrefix = "pe/" %}
+
+{% include docs/pe/releases/releases-table/v4-4-0.md %}
diff --git a/docs/pe/user-guide/install/upgrade-instructions/centos/v4-4-x.md b/docs/pe/user-guide/install/upgrade-instructions/centos/v4-4-x.md
new file mode 100644
index 0000000000..b6721e1529
--- /dev/null
+++ b/docs/pe/user-guide/install/upgrade-instructions/centos/v4-4-x.md
@@ -0,0 +1,18 @@
+---
+layout: docwithnav-pe
+title: ThingsBoard PE v4.4.x upgrade instructions for CentOS
+description: ThingsBoard PE v4.4.x upgrade guide for CentOS
+active-menu-item-click: "true"
+breadcrumbs: true
+breadcrumbs-steps: 2
+breadcrumbs-show: 2
+effective-url: '/docs/pe/user-guide/install/upgrade-instructions/'
+---
+
+* TOC
+{:toc}
+
+{% assign docsPrefix = "pe/" %}
+
+{% include docs/pe/user-guide/install/prepare.md %}
+{% include upgrade-instructions.liquid family="4.4" os="centos" %}
diff --git a/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v4-4-x.md b/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v4-4-x.md
new file mode 100644
index 0000000000..c0984dc134
--- /dev/null
+++ b/docs/pe/user-guide/install/upgrade-instructions/docker-compose/v4-4-x.md
@@ -0,0 +1,17 @@
+---
+layout: docwithnav-pe
+title: ThingsBoard PE v4.4.x upgrade instructions for Docker Compose
+description: ThingsBoard PE v4.4.x upgrade guide for Docker Compose
+active-menu-item-click: "true"
+breadcrumbs: true
+breadcrumbs-steps: 2
+breadcrumbs-show: 2
+effective-url: '/docs/pe/user-guide/install/upgrade-instructions/'
+---
+
+* TOC
+{:toc}
+
+{% assign docsPrefix = "pe/" %}
+
+{% include upgrade-instructions.liquid family="4.4" os="docker-compose" %}
diff --git a/docs/pe/user-guide/install/upgrade-instructions/docker/v4-4-x.md b/docs/pe/user-guide/install/upgrade-instructions/docker/v4-4-x.md
new file mode 100644
index 0000000000..7bfe4511b7
--- /dev/null
+++ b/docs/pe/user-guide/install/upgrade-instructions/docker/v4-4-x.md
@@ -0,0 +1,17 @@
+---
+layout: docwithnav-pe
+title: ThingsBoard PE v4.4.x upgrade instructions for Docker
+description: ThingsBoard PE v4.4.x upgrade guide for Docker
+active-menu-item-click: "true"
+breadcrumbs: true
+breadcrumbs-steps: 2
+breadcrumbs-show: 2
+effective-url: '/docs/pe/user-guide/install/upgrade-instructions/'
+---
+
+* TOC
+{:toc}
+
+{% assign docsPrefix = "pe/" %}
+
+{% include upgrade-instructions.liquid family="4.4" os="docker" %}
diff --git a/docs/pe/user-guide/install/upgrade-instructions/ubuntu/v4-4-x.md b/docs/pe/user-guide/install/upgrade-instructions/ubuntu/v4-4-x.md
new file mode 100644
index 0000000000..665c75a189
--- /dev/null
+++ b/docs/pe/user-guide/install/upgrade-instructions/ubuntu/v4-4-x.md
@@ -0,0 +1,18 @@
+---
+layout: docwithnav-pe
+title: ThingsBoard PE v4.4.x upgrade instructions for Ubuntu
+description: ThingsBoard PE v4.4.x upgrade guide for Ubuntu
+active-menu-item-click: "true"
+breadcrumbs: true
+breadcrumbs-steps: 2
+breadcrumbs-show: 2
+effective-url: '/docs/pe/user-guide/install/upgrade-instructions/'
+---
+
+* TOC
+{:toc}
+
+{% assign docsPrefix = "pe/" %}
+
+{% include docs/pe/user-guide/install/prepare.md %}
+{% include upgrade-instructions.liquid family="4.4" os="ubuntu" %}
diff --git a/docs/pe/user-guide/install/upgrade-instructions/windows/v4-4-x.md b/docs/pe/user-guide/install/upgrade-instructions/windows/v4-4-x.md
new file mode 100644
index 0000000000..95b9eaa054
--- /dev/null
+++ b/docs/pe/user-guide/install/upgrade-instructions/windows/v4-4-x.md
@@ -0,0 +1,17 @@
+---
+layout: docwithnav-pe
+title: ThingsBoard PE v4.4.x upgrade instructions for Windows
+description: ThingsBoard PE v4.4.x upgrade guide for Windows
+active-menu-item-click: "true"
+breadcrumbs: true
+breadcrumbs-steps: 2
+breadcrumbs-show: 2
+effective-url: '/docs/pe/user-guide/install/upgrade-instructions/'
+---
+
+* TOC
+{:toc}
+
+{% assign docsPrefix = "pe/" %}
+
+{% include upgrade-instructions.liquid family="4.4" os="windows" %}
diff --git a/docs/releases/releases-table/v4-4-x.md b/docs/releases/releases-table/v4-4-x.md
new file mode 100644
index 0000000000..ab88d06863
--- /dev/null
+++ b/docs/releases/releases-table/v4-4-x.md
@@ -0,0 +1,17 @@
+---
+layout: docwithnav
+title: Thingsboard v4.4.x release notes
+description: Discover Thingsboard v4.4.x release notes
+breadcrumbs: 'true'
+breadcrumbs-steps: '1'
+release-date: Feb 18, 2026
+last-updated: Feb 18, 2026
+release-note-label: Java 25
+active-menu-item-click: 'true'
+latest-patch: v4.4.0 (Feb 18, 2026)
+effective-url: '/docs/releases/releases-table/'
+---
+* TOC
+{:toc}
+
+{% include docs/releases/releases-table/v4-4-0.md %}
diff --git a/docs/user-guide/install/building-from-source.md b/docs/user-guide/install/building-from-source.md
index f7b87f5445..f6639a39b3 100644
--- a/docs/user-guide/install/building-from-source.md
+++ b/docs/user-guide/install/building-from-source.md
@@ -21,11 +21,11 @@ Instructions listed below are tested on Ubuntu 24.04 LTS and CentOS 8/9.
This section contains installation instructions for build tools.
Java
-ThingsBoard is built using **Java 17**.
+ThingsBoard is built using **Java 25**.
-Install Java 17 using these instructions:
+Install Java 25 using these instructions:
-- [Install Java 17 on Ubuntu](/docs/user-guide/install/ubuntu/#step-1-install-java-17-openjdk){:target="_blank"}
+- [Install Java 25 on Ubuntu](/docs/user-guide/install/ubuntu/#step-1-install-java-25-openjdk){:target="_blank"}
Verify the installation:
@@ -42,7 +42,7 @@ A,Ubuntu,shell,resources/maven-ubuntu-installation.sh,/docs/user-guide/install/r
B,CentOS,shell,resources/maven-centos-installation.sh,/docs/user-guide/install/resources/maven-centos-installation.sh{% endcapture %}
{% include tabs.html %}
-> Note: On certain Linux machines, Maven installation may set Java 7 as the default JVM. If this happens, reconfigure your system to use Java 17.
+> Note: On certain Linux machines, Maven installation may set Java 7 as the default JVM. If this happens, reconfigure your system to use Java 25.