TIF 2026.1.0 Release Information
This release was published on 2026-02-06.
IMPORTANT: Upgrade to Java 17 and Jakarta packages
The migration to Java 17 and Jakarta packages has been on the list of upcoming planned changes for some time and is now finally implemented. This update ensures compliance with modern Java standards, improves long-term maintainability, and aligns TIF with the Jakarta EE ecosystem.
While this brings benefits, it also introduces breaking changes that require review and updates to custom code, dependencies, and optional components.
Important Changes
The minimum supported Java version is now Java 17 or newer. Please ensure your environment is upgraded before deploying.
Starting with Java 17, several javax packages have been removed from the JDK. To maintain compatibility and align with modern standards, TIF has been updated to use Jakarta packages instead.
If your custom Java code references any of the removed javax packages, it will no longer compile. You must update those references to use the corresponding jakarta packages.
Update Checklist
-
Upgrade Java to version 17 or newer.
-
Update imports in your custom code:
-
Replace all javax.* references with the corresponding jakarta.* packages.
-
-
Check dependencies:
-
Ensure your build tools include Jakarta libraries instead of Javax.
-
-
If an external database is used as TIF database:
-
Upgrade JDBC drivers to versions compatible with Java 17 and place them in
${TIF_ROOT}/lib/custom.
-
-
If connections to external destination systems (e.g., JMS brokers, RabbitMQ) are used:
-
Upgrade the client drivers/libraries to versions compatible with Java 17 and place them in
${TIF_ROOT}/lib/custom.
-
-
Review third-party libraries (if any is used):
-
Verify compatibility with Jakarta packages.
-
-
If Nashorn scripting capabilities are used:
-
Upgrade Nashorn-related JARs to the latest version and place them in
${TIF_ROOT}/lib/custom.
-
Updated Packages
The following javax packages have been replaced with their Jakarta equivalents:
Old Package (javax) |
New Package (jakarta) |
Description | JAR File in ${TIF_ROOT}/lib |
|---|---|---|---|
javax.activation |
jakarta.activation |
Handles MIME type data activation and content handling. |
jakarta.activation-api-2.1.4.jar |
javax.annotation |
jakarta.annotation |
Provides common annotations for Java applications. |
jakarta.annotation-api-2.1.1.jar |
javax.annotation.security |
jakarta.annotation.security |
Security-related annotations for Jakarta EE. |
jakarta.annotation-api-2.1.1.jar |
javax.inject |
jakarta.inject |
Dependency Injection annotations. |
jakarta.inject-api-2.0.1.jar |
javax.jms |
jakarta.jms |
Java Message Service API for messaging. |
jakarta.jms-api-3.1.0.jar |
javax.jws |
jakarta.jws |
Web Services annotations (JAX-WS). |
(Provided by JAX-WS stack, e.g., jaxb-runtime-4.0.5.jar) |
javax.servlet |
jakarta.servlet |
Core Servlet API for web applications. |
jakarta.servlet-api-6.1.0.jar |
javax.servlet.http |
jakarta.servlet.http |
HTTP-specific Servlet API. |
jakarta.servlet-api-6.1.0.jar |
javax.transaction |
jakarta.transaction |
Transaction management API. |
jakarta.transaction-api-2.0.1.jar |
javax.ws.rs |
jakarta.ws.rs |
RESTful Web Services API (JAX-RS). |
jackson-jakarta-rs-base-2.20.0.jar |
javax.ws.rs.container |
jakarta.ws.rs.container |
JAX-RS container interfaces for filters and interceptors. |
jackson-jakarta-rs-base-2.20.0.jar |
javax.ws.rs.core |
jakarta.ws.rs.core |
Core JAX-RS classes and interfaces. |
jackson-jakarta-rs-base-2.20.0.jar |
javax.ws.rs.ext |
jakarta.ws.rs.ext |
JAX-RS extension interfaces. |
jackson-jakarta-rs-base-2.20.0.jar |
javax.xml.soap |
jakarta.xml.soap |
SOAP messaging API (JAX-WS). |
jakarta.xml.soap-api-3.0.0.jar |
Drivers for External Database (Optional)
If your TIF environment connects to an external database, ensure JDBC drivers are upgraded to versions compatible with Java 17. Place the drivers in ${TIF_ROOT}/lib/custom.
JDBC Drivers:
Verify the latest version of the required driver. The below download URLs were accessed on 2025-12-10.
-
PostgreSQL
-
Driver:
postgresql-<version>.jar -
Download: https://mvnrepository.com/artifact/org.postgresql/postgresql
-
-
Oracle
-
Driver:
ojdbc11-<version>.jar(for Java 11+) -
Download: https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11
-
-
Microsoft SQL Server
-
Driver:
mssql-jdbc-<version>.jre11.jar(for Java 11+) -
Download: https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc
-
Client Drivers/Libaries for External Destinations
If connections to external destination systems (e.g., JMS brokers, RabbitMQ) are used, you need to upgrade driver jars to versions that are Java 17 compatible and align with your broker/server version.
Broker-specific client examples (choose what you use):
-
RabbitMQ:
amqp-client-<version>.jar -
Apache ActiveMQ “Classic”:
activemq-client-<version>.jar -
IBM MQ:
com.ibm.mq.allclient-<version>.jar
Place drivers and required dependencies in ${TIF_ROOT}/lib/custom.
| This is only required if external destination systems are used. |
Nashorn Scripting Engine (Optional)
If Nashorn scripting capabilities are utilized within TIF, the Nashorn scripting engine is required.
As of Java 17, the old Nashorn-related JARs must be upgraded to the new ones.
You can also download them from: https://mvnrepository.com/artifact/org.openjdk.nashorn/nashorn-core (accessed on 2025-12-10)
Required JARs:
Verify the latest version. At the time of this release, Nashorn was at version 15.7.
-
nashorn-core-15.7.jar -
asm-9.9.jar(dependency) -
asm-commons-9.9.jar(dependency) -
asm-tree-9.9.jar(dependency) -
asm-util-9.9.jar(dependency)
| This is only required if Nashorn scripting is used in your TIF environment. |
Offline Mode for Maintenance Tasks
We have introduced a new offline mode for running scheduled maintenance tasks such as cleansers and tidy-routines.
By starting the TIF server in offline mode, all services and integrations are disabled, allowing maintenance tasks to run sequentially without interruptions.
The TIF server can be started in offline mode using the command-line switch -dbcleanup.
Benefits:
-
Ensures no user activity or integrations interfere with cleanup.
-
Optimizes performance for maintenance tasks.
-
Running cleanup in offline mode frequently can serve as an alternative to scheduled execution of maintenance tasks and improve overall system performance.
You can also control which tasks are executed in offline mode.
The performance of some tasks has also improved, such as tidy-routine-for-scheduled-job-executions.
Please read more here.
Encryption for HTTPS Password Properties
It is now possible to encrypt property values that contain passwords for HTTPS configuration. This applies to sensitive properties such as keystore, keymanager, and truststore passwords that are configured in etc/tif.custom.properties.
To read about different ways to encrypt passwords, please click here.
For example:
https.keyStore.password=secret:myKeyStoreSecret
| If you are using a secret stored in the TIF database, you must first create it via Admin UI before referencing it in your tif.custom.properties. |
New Setting for Handling Large Files with POI
We have added a new property to control the Java Docprops property updater, allowing better handling of large Office files, such as XLSX. Previously, the Apache POI library could throw security exceptions when files contained many internal entries, treating them as potential ZIP bombs.
You can now adjust the threshold by setting docProps.poi.zipSecureFile.maxFileCount in module.custom.properties to the desired limit. For example:
docProps.poi.zipSecureFile.maxFileCount = 10000
Windows File Modifier - Excluded Fields in Update Properties Action
The Windows version of File Modifier now supports specifying excluded field codes when performing the Update Properties action. This enhancement addresses issues related to Microsoft Office, particularly when certain fields, like TOC, are updated.
Example Configuration:
<Job>
...
<FileModifier>
...
<UpdateProperties>
...
<ExcludedFields>
<!-- TOC (Table of Contents) field -->
<Field>TOC</Field>
</ExcludedFields>
</UpdateProperties>
</FileModifier>
</Job>
See List of field codes in Word (accessed on 2025-12-09).
| Field codes INCLUDEPICTURE, FILLIN and ASK are always excluded. |
Custom Macros Supported for Properties in Payload Transformer
Outbound jobs now support custom macros when passing properties to payload transformers.
Example Payload Configuration:
<Payload>
...
<Transformer xslt="tvc:xslt/MyStylesheet.xslt">
<Property name="myParam1" value="${job.id}" />
<Property name="myParam2" value="${job.java.com.acme.tif.MyResolver:foo}" />
</Transformer>
</Payload>
Read more about transformers and job macros.
Fixed Bugs
Below is the list of fixed bugs as of this release.
| Issue No | Description |
|---|---|
1054 |
POI property updater does not work with certain large XLSX files |
1058 |
Admin UI crashes when enabling column that contains null data |
1062 |
Queue object lock error should be logged in the TIF log |
1066 |
Infinite Recursion in NewJob Job Event Handler with Identical jobcfg |
1068 |
REST service display name not updated from XML configuration |