Appendix A - Migrating from LTS-24 to LTS-26
This guide describes the steps required to migrate a nevisLogrend installation from LTS-24 (major version 7.x) to LTS-26 (8.2607.x).
Read through this guide carefully before starting the migration. Several changes require explicit action from your side.
What's new
- Added
$utils.escapeJson()function for proper JSON escaping ofGuiElemlabel and value attributes in Velocity templates. This function is now used in the built-injson.vmtemplate. (NEVISLOG-573) See Writing Login Applications using Velocity Rendering for details on escaping utilities. - Added
ico,json,woff, andwoff2MIME types to the built-in default list. You no longer need to define these inmimetypes.properties. (NEVISLOG-566) See Application Configuration for information on MIME type configuration. - Nevis OpenTelemetry Java agent upgraded to version 3.1.0.0. (NEVISLOG-561)
What has changed
Java runtime upgrade to Java 25
nevisLogrend LTS-26 is compiled and runs with Java 25. Java 17 (used in LTS-24) is no longer supported. You must upgrade your Java runtime before deploying LTS-26.
The upgrade path is:
- LTS-24 uses Java 17.
- RR 8.2505.3.x introduced Java 21 as the minimum required version. (NEVISLOG-551)
- LTS-26 (8.2607.x) requires Java 25. (NEVISLOG-588)
If you are upgrading directly from LTS-24 to LTS-26, install a Java 25 JDK/JRE before deploying the new package.
Template change: json.vm requires manual update if customized
The built-in json.vm template was updated to use the new $utils.escapeJson() function to correctly escape GuiElem label and value attributes in JSON responses. Previously, $utils.escapeXml() was accidentally behaving the same as escapeJs, which meant JSON output was not properly escaped.
If you have customized or copied json.vm into your instance, you must apply the following changes manually:
- Replace
"$guiElem.label"with"$utils.escapeJson($guiElem.label)". - Replace
"$guiElem.value"with"$utils.escapeJson($guiElem.value)".
Alternatively, copy the updated json.vm from the default templates shipped with LTS-26.
The updated template can be found in data/applications/def/webdata/template/json.vm in your nevisLogrend installation. See Writing Login Applications using Velocity Rendering for more information on escaping utilities in Velocity templates.
Instances that use the unmodified built-in template are updated automatically. (NEVISLOG-573)
escapeXml() behavior corrected
The $utils.escapeXml() Velocity utility function previously produced output identical to $utils.escapeJs() due to a bug. This is now fixed: $utils.escapeXml() correctly escapes XML special characters. If any of your templates relied on the incorrect (JavaScript-escaping) behavior of $utils.escapeXml(), review and update those templates. (NEVISLOG-573)
See Writing Login Applications using Velocity Rendering for details on available escaping utilities.
New built-in MIME types
The MIME types ico, json, woff, and woff2 are now included in the default built-in list. If you have defined any of these in your mimetypes.properties file, the explicit definitions are redundant but harmless. No action is required unless you want to keep your configuration clean. (NEVISLOG-566)
See Application Configuration for more details on MIME type configuration.
Servlet API upgraded to version 6.1
The Jakarta Servlet API dependency was upgraded from version 6.0 (LTS-24) to version 6.1 (LTS-26). This is a minor API version increment and is not expected to affect standard deployments. Custom extensions or components that directly depend on the Servlet API should be reviewed and rebuilt against version 6.1. (NEVISLOG-595)
Nevis OpenTelemetry Java agent upgraded to 3.1.0.0
The bundled Nevis OpenTelemetry Java agent was upgraded from version 2.0.x (LTS-24) to version 3.1.0.0 (NEVISLOG-561). If you have custom OpenTelemetry configurations or instrumentation based on the agent, verify compatibility with the new major version.
What has been removed
RHEL8 support removed
RHEL 8 (Red Hat Enterprise Linux 8) is no longer supported as of RR 8.2405.x. LTS-26 supports RHEL 9 only. If your nevisLogrend instances run on RHEL 8, you must upgrade the operating system to RHEL 9 before migrating to LTS-26. (NEVISAUTH-4667)
RHEL 8 remains supported on the LTS-24 branch (7.2405.x).
Third-party dependency changes
The following third-party dependencies were upgraded between LTS-24 and LTS-26. These changes may affect custom Velocity template extensions, Groovy scripts, or any code that directly references these libraries.
| Dependency | LTS-24 version | LTS-26 version |
|---|---|---|
| Jetty | 12.0.8 | 12.1.8 |
| Jakarta Servlet API | 6.0 | 6.1 |
| Velocity | 2.3.x | 2.4.1 |
| Commons-beanutils | 1.9.x | 1.11.0 |
| Commons-cli | 1.9.0 | 1.11.0 |
| Commons-lang3 | 3.17.0 | 3.20.0 |
| Commons-text | 1.12.0 | 1.15.0 |
| Commons-validator | 1.9.0 | 1.10.1 |
| Jackson | 2.17.x | 2.21.2 and 3.1.1 |
| Guava | 33.3.0-jre | 33.5.0-jre |
| Log4j | 2.24.0 | 2.25.4 |
| SLF4J | 2.0.16 | 2.0.17 |
| OpenTelemetry API | 1.42.0 | 1.60.1 |
| Nevis OpenTelemetry agent | 2.0.x | 3.1.0.0 |
In LTS-26 nevisLogrend ships two Jackson versions (2.21.2 and 3.1.1) as part of the dependency upgrade. This is an internal implementation detail. Custom code relying on Jackson APIs should be tested against both versions if applicable. (NEVISLOG-595)
Deprecations
No deprecations have been identified in the LTS-24 to LTS-26 release notes at the time of writing. Confirm with the nevisLogrend development team whether any API or configuration property deprecations were introduced during the RR 8.x cycle that are scheduled for removal in a future release.