Release Note

WhisperCoaching — Release Notes

Version 2.3 (May 2026)

Overview

Major modernization release. Upgraded from Java 8 / Jersey 2.x / javax.* to Java 21 / Jersey 3.1 / Jakarta EE 10. No functional changes to whisper coaching behaviour.


Compatibility

Component

Version

Java (minimum)

21 (JRE/JDK)

Apache Tomcat

10.1.x

Apache Tomcat

10.0.x ⚠️ Untested

Apache Tomcat

9.x and below ❌ Incompatible (javax.* namespace)

Cisco JTAPI

10.0

Cisco CUCM

Compatible with JTAPI 10.0 supported releases

Note: Tomcat 10.1 is required because it implements Jakarta EE 10 (jakarta.* namespace). Tomcat 9.x and earlier use the old javax.* namespace and are not compatible with this build.


What Changed

Java Runtime
  • Was: Java 1.8 (source/target 1.8)

  • Now: Java 21 (source/target 21)

Namespace Migration — Jakarta EE 10
  • All javax.ws.rs.* imports replaced with jakarta.ws.rs.* across source files

  • web.xml updated to Servlet 6.0 schema (<https://jakarta.ee/xml/ns/jakartaee)>

  • context.xml cleaned up — removed deprecated antiJARLocking attribute (removed in Tomcat 9.0) and redundant path attribute

Dependency Upgrades

Dependency

Old Version

New Version

Jersey (JAX-RS implementation)

2.19 (com.sun.jersey)

3.1.0 (org.glassfish.jersey)

JAX-RS API

javax.ws.rs-api 2.x

jakarta.ws.rs-api 3.1.0

Jakarta Servlet API

6.0.0 (provided by Tomcat 10.1)

Jersey HK2 injection

3.1.0 (required by Jersey 3.x)

Log4j Core

2.17.1

2.24.3

maven-compiler-plugin

3.13.0

maven-jar-plugin

3.4.2

maven-surefire-plugin

3.2.5

Security Fixes
  • sun.misc.BASE64Decoder (removed in Java 9) replaced with java.util.Base64

  • Internal JDK API (com.sun.org.apache.bcel) reference removed from WebService.java

  • Log4j upgraded to 2.24.3 (0 CVEs detected in final dependency scan)


Deployment

  1. Ensure Tomcat is running on JRE 21 (JAVA_HOME must point to JDK/JRE 21)

  2. Copy WhisperCoaching.war to [TOMCAT_HOME]/webapps/

  3. Application deploys at: http(s)://[host]:[port]/WhisperCoaching/

REST endpoint:

GET /WhisperCoaching/rest/whisper/{agentExt}/{supervisorExt}/{Start|End}

What Did NOT Change

  • Cisco JTAPI integration (javax.telephony.*) — unchanged, this is Cisco-proprietary and not related to Jakarta EE namespace migration

  • REST endpoint URL structure and behaviour

  • config.properties and jtapi.ini configuration format

  • Finesse Gadget files (Gadget/Whisper_Coaching/) — deployed separately on Cisco Finesse, no changes required