Release Notes
Webswing 26.2 focuses on more efficient server-rendered graphics, more resilient Admin Console and cluster connections, independently deployable example applications, a maintained Kubernetes deployment example, and improved documentation tooling.
26.2
Release date: To be announced
New Features
- #1208: Added Webswing Linux Web Launcher support for running Linux desktop applications through Webswing, including a Linux Applications drop-in with a browser chooser for GIMP and XClock
- #1317: Added QOI encoding for server-rendered ARGB images when DirectDraw is disabled, using a multithreaded Java encoder and a WebAssembly decoder in the browser.
- #1337: Added configurable Admin Console reconnect policies with interval, retry, and delay limits, plus optional JVM termination when every configured server connection is exhausted. Session-pool reconnect settings now consistently support
0to disable a limit. - #1334: Replaced the aggregate Standard-with-examples, Cluster-with-examples, and security-modules downloads with separately downloadable application, containerization, and security-module packages; application ZIPs copied into a configurable drop-in directory are now extracted and registered automatically, while evaluation distributions retain Webswing Demo as their single bundled drop-in application.
- #1345: Added a local Kubernetes cluster example with Kustomize manifests, Docker and Buildah image builds, persistent configuration, a static session pool, autoscaled session pools, and an NGINX entry point.
- #1386: Added built-in
PROPERTIESSecurity Module.
Enhancements
- #1311: Replaced the legacy PNG encoder and added the
webswing.pngCompressionLevelsetting, supporting compression levels from0to9with a default of2. - #1332: Improved the OpenAPI definition with relative global and application-scoped server paths and clearer descriptions for session, recording, thread-dump, heap-dump, statistics, and log-level operations.
- #1344: Improved class-modification blacklist scalability and warmup reliability. Warmup now resolves custom configuration paths and applies each application's
webswing.classModificationBlacklistsetting. - #1330: Added a customization example for capturing a picture from a webcam.
- #1143: Expanded the Oracle Forms demo with user-information and prompt-button integrations.
Bug Fixes
- #1394: Fixed concurrent configuration access and cached HTTP security headers
- #1399: Fixed a race condition when registering local and session pool Swing instances
- #1296: Fixed OIDC logout behavior when the identity provider is unavailable or the OIDC client cannot initialize.
- #1314: Removed hidden download iframes after a configurable timeout when direct download is disabled, preventing iframe accumulation in long-running browser sessions.
- #1348: Disposed the
LightweightFramepeer used by JavaFXSwingNodeacross supported Java versions. - #1351: Fixed subdomain mapping when multiple applications are deployed at the root context on different domains behind a reverse proxy.
- #1337: Fixed reconnect attempt accounting after a
CANNOT_ACCEPTresponse and a race when the configured websocket URL changes during reconnect.
Configuration and Behavior Changes
The standalone server and Session Pool now include built-in XHeadless for running applications on headless Linux without a separate XHeadless executable or Xvfb service. It starts automatically when no display is configured or a configured local display is missing. Existing displays remain in use. Set webswing.xheadless.enabled=false to require an external X server.
-
webswing.encodingFormatnow acceptsQOIin addition toPNGandWEBPwhen DirectDraw is disabled. -
The new
serveDownloadIframeCleanupIntervalbootstrap option controls the maximum lifetime of a hidden download iframe and defaults to 300 seconds. -
The default value of
webswing.enforcePeerPaintsFromDirtyQueueOnlyisfalse. Set it explicitly totrueto retain dirty-queue-only peer painting. -
Admin Console reconnects indefinitely by default. Use
admin.reconnect.interval,admin.reconnect.retries,admin.reconnect.delay, andadmin.reconnect.terminateServerOnReconnectExhaustedto customize failure handling. -
Property-file Security module is now implemented by the built-in
PROPERTIESmodule. Replacesecurity.module: "org.webswing.security.modules.property.PropertySecurityModule"with"PROPERTIES", retainsecurity.config.file, and remove the external Shiro jars fromsecurity.classPath. Existing user files and$hashed$passwords require no conversion; Database authentication remains an external Shiro module. -
The external Database security module now uses Apache Shiro 3.0.1 and requires Java 17 or newer for the Webswing server process.
Distribution Changes
Webswing 26.2 changes several distribution names and replaces aggregate downloads. Existing automated deployments must make the following changes:
- Package names: Published ZIPs now follow
webswing-<package>-<version>.zipwithout the former-distributionsuffix. Replacewebswing-<version>-distribution.zipwithwebswing-standard-<version>.zip. - Examples: The
webswing-examples-<version>-distribution.zipandwebswing-examples-cluster-<version>-distribution.zipaggregates are no longer published. Download the required example ZIPs separately and copy them into the Standard or Clusterapps/directory. - Security modules: The
webswing-security-modules-<version>-distribution.zipaggregate is no longer published. Download and install the requiredwebswing-security-<type>-<version>.zippackage separately. Database deployments that referencesecurity/database+property/must usesecurity/database/instead; Property-file authentication is now built in and requires no separate security package.
Fixed 3rd party vulnerabilities
- Apache Tomcat: CVE-2026-76183
- Eclipse Jetty: CVE-2026-19203, CVE-2026-19204
- Jackson: CVE-2026-89407, CVE-2026-89425, CVE-2026-91776, CVE-2026-91777
- Bouncy Castle: CVE-2026-17508, CVE-2026-18036, CVE-2026-18040, CVE-2026-71888, CVE-2026-71889, CVE-2026-71891, CVE-2026-71892, CVE-2026-97873
- Apache HttpComponents Core: CVE-2026-54399, CVE-2026-54428
- Spring Framework (SAML2 module): CVE-2026-59282
- Apache Shiro (Database security module): CVE-2026-56130