Please be aware that there is newer version of documentation available for Webswing. Documentation 24.2
System Properties
Following system properties can be used to change the defaults of Webswing.
Webswing Server and Webswing Cluster Server
Set these in server startup script.
Property | Description | Default Value |
---|---|---|
webswing.warLocation |
Location of WAR file | |
webswing.rootDir |
Root directory | ${user.dir} |
webswing.propertiesFile |
Path to properties file (including file name) | |
webswing.configFile |
Path to config file (including file name) | |
webswing.configReloadIntervalMs |
Number of milliseconds for config reload interval | 1000 |
webswing.defaultWelcomePage |
Path to default welcome page resource to show when "/" is accessed | /selector/index.html |
webswing.fileServletWaitTimeout |
Number of milliseconds to wait for a file to be ready for download | 300000 |
webswing.proxyContextPath |
Explicit servlet context path | |
webswing.httpsOnly |
Force https only, sets cookies as Secure and SameSite to NONE by default |
true if config has https enabled and http disabled |
webswing.cookieSameSite |
Value for SameSite cookie attribute if server runs in HTTPS only mode |
NONE |
webswing.disableHttpSecurityHeaders |
Disable HTTP security headers - X-Frame-Options , X-Content-Type-Options , X-XSS-Protection , Referrer-Policy , Strict-Transport-Security |
false |
webswing.keep.instances |
How many closed instances should be kept in memory. The instances can be viewed in Admin Console (-1 for infinite) | -1 |
webswing.websocketMessageSizeLimit |
Maximum size of websocket message in bytes | 5242880 |
webswing.websocketMessageTimeout |
Timeout for the websocket message to be sent in milliseconds | 30000 |
jetty.request.header.size |
Number of bytes as maximum request/response header size when using embedded Jetty | 524288 |
Server Statistics
Set these in server startup script.
Property | Description | Default Value |
---|---|---|
webswing.stats.interval |
Granularity of the metrics, average of last N seconds | 10 |
webswing.stats.historySize |
Number of observations kept in memory | 60 |
webswing.stats.memUsageWarn |
Threshold to generate a memory usage warning | 0.8 (80%) |
webswing.stats.latencyWarn |
Threshold to generate a network latency warning (milliseconds) | 700 |
webswing.stats.pingWarn |
Threshold to generate a ping warning (milliseconds) | 500 |
Application
Set these in application configuration field vmArgs
.
Property | Description | Default Value |
---|---|---|
webswing.edtTimeout |
Timeout in seconds after which the application is considered to be not responding if Event Dispatch Thread is not responding | 10 |
webswing.syncCallTimeout |
Number of milliseconds to wait for a synchronized WebSocket call between application instance and server to be successful | 3000 |
webswing.waitForExit |
Default timeout in milliseconds for the application to exit gracefully, after this timeout the application will be forcefully terminated | 30000 |
webswing.heartbeatTimeout |
Timeout in milliseconds to check application connection with its parent process, after this timeout expires the application is scheduled for shutdown because parent process is considered killed | 5000 |
webswing.doubleClickMaxDelay |
Timeout in milliseconds between mouse clicks to be considered as multi-click | 750 |
webswing.logLevel |
Log level of application logger (0 - TRACE, 1 - DEBUG, 2 - INFO, 3 - WARNING, 4 - ERROR, 5 - FATAL) | 2 |
webswing.paintAckTimeout |
Timeout in milliseconds to wait for acknowledgment from browser that the paint request has finished | 5000 |
webswing.screenResolution |
Value of Toolkit.getScreenResolution() | 96 |
webswing.drawDelayMs |
Webswing paint dispatching loop frequency | 33 |
webswing.ddImageCacheSize |
Directdraw image cache size | 128 |
webswing.ddConstCacheSize |
Directdraw initial rendering constant cache size | 8192 |
webswing.ddMaxConstCacheSize |
Directdraw maximum rendering constant cache size (auto-increase when rendering frame reaches the current cache size) | 262144 |
directdraw.serverSideGradients |
Directdraw will not render gradients in html canvas but in Java 2D (edge cases of gradient definitions can look differently in java and html canvas) | false |
directdraw.drawStringAsPath |
Use server side fonts to render text as to bezier curves (slow) | false |
directdraw.fontsProvided |
Force Webswing to look for fonts defined in CSS instead of downloading it through WebSocket | false |
webswing.encodingFormat |
DirectDraw has to be disabled, PNG or WEBP, use WEBP for low bandwidth | PNG |
webswing.webpQuality |
Image quality, low value produces smaller image | 20 |
webswing.render.diff |
Removes pixels from final rendering that have not changed, buggy | false |
webswing.render.crop |
Removes transparent slices of the image from border parts | false |
JWT
In order for the custom configuration to work, you must set the custom values on every module - Webswing Server (Cluster Server), Admin Console Server, Session Pool.
Property | Description | Default Value |
---|---|---|
webswing.jwt.serialization.gzip |
Use GZIP compression of JWT token | true |
webswing.jwt.serialization.proto |
Use protobuf serialization of JWT token | true |
webswing.jwt.serialization.encryption |
Use encryption of JWT token | true |
webswing.jwt.token.handshake.expiration |
Expiration of handshake token in milliseconds | 60000 |
webswing.jwt.token.access.expiration |
Expiration of access token in milliseconds | 300000 |
webswing.jwt.token.refresh.expiration |
Expiration of refresh token in milliseconds | 1800000 |
webswing.jwt.token.loginSession.expiration |
Expiration of login session token in milliseconds | 300000 |
webswing.jwt.token.transfer.expiration |
Expiration of transfer token in milliseconds | 1800000 |
webswing.jwt.token.adminConsoleLogin.expiration |
Expiration of admin console login token in milliseconds | 1800000 |
webswing.jwt.token.adminConsoleAccess.expiration |
Expiration of admin console access token in milliseconds | 300000 |
webswing.jwt.token.adminConsoleRefresh.expiration |
Expiration of admin console refresh token in milliseconds | 1800000 |
webswing.jwt.token.adminConsoleThreadDump.expiration |
Expiration of admin console thread dump token in milliseconds | 1800000 |
webswing.jwt.clockskew.seconds |
Set maximum clock skew interval between servers in milliseconds | 180000 |
webswing.jwt.adminConsole.accessId.expiration |
Expiration of admin console access id used in login process in milliseconds | 300000 |