Releases: JPro-one/JPro
Releases · JPro-one/JPro
2026.1.0
2026.1.0 (January 19, 2026)
Security
- Fixed an important security issue regarding file uploads via the WebAPI. It is recommended to update.
Improvements
- Added the possibility to extend the live check that is performed when calling
/status/alive.
You can now define a custom class with a main method. This class is called during the alive check.
It can be configured with the propertyjpro.liveCheckin thejpro.conffile. - Fixed OS detection in several places.
In particular, default action key detection is now correct.
On macOS, pressing Enter no longer triggers the default action.
Bugfixes
- Fixed an issue with Safari. There was an issue opening links created with
HTMLViewin Safari.
2025.3.3
2025.3.3 (December 22, 2025)
Improvements
- Added Canvas PixelWriter support, accessed using
GraphicsContext.getPixelWriter(). - InstanceID is now longer and guaranteed to be unguessable.
- Added support for remote testing with QF-Test.
- It's now possible to set the "image-rendering" attribute in the jpro-app tag.
Its value is forwarded to image elements when running JPro.
Changes
- The experimental 3D support flag
jpro.beta.enable3Dis now disabled by default.
Enabling only when needed keeps the default javascript file size to a minimum. - Provide a new bundled JPro artifact that includes:
- project wide CHANGELOG.md
- project wide DOCUMENTATION.md
- openapi specification for the jpro Server
- a jpro-utils.qft library to help write tests against jpro using QF-test
Bugfixes
- Improved handling of Modal Dialogs. Fixed an issue with multiple modal dialogs sometimes not blocking input correctly.
- Fixed a shadow rendering issue where an unwanted shadow could appear in the top right corner.
- Also corrected an invalid optimization for regions with transparent backgrounds that caused incorrect shadow rendering.
- Fixed an issue where the cursor of a scene was incorrectly prioritized over the cursor of a node.
- Fixed an issue regarding CanvasRendering. If the content wasn't cleared but rendered across multiple frames,
sometimes settings like fill or stroke were not applied correctly. - Fixed a regression for
2025.3.0whereWebAPI.getInstanceInfo().dataSentWSProperty()was always0. It now works correctly again.
2025.3.2
2025.3.2 (November 18, 2025)
Major
- Reworked the entire Documentation. It's not much more structured, and easier to read.
- Added ability to set custom HTTP-Headers for responses using the ServerAPI.
Bugfixes
- Fixed issue regarding download of files with special characters in the filename.
This is a regression introduced in 2025.3.0. - Fixed that, when using a TextField or TextArea with the setTextFormatter API, on every change the whole text was
formatted. Now it only gets formatted when the user finished the input.
This aligns the behavior with Desktop JavaFX. This may also fix unknown issues regarding text input. - Fixed mouse cursor behavior in Regions with transparent backgrounds.
Regions don't influence the cursor. - Fixed bug in ServerAPI. The Request returned a broken value for the Request.getURI() method.
- Fixed a rare exception when using Drag & Drop with multiple windows.
- Fixed issue regarding Modal Dialogs, where it was possible to send KeyEvents to the underlying Stage.
- Fixed that when a modal dialog was shown, it was possible to lose focus by clicking on the blocked area.
- Fixed a regression where remoteAddress was not set. This regression was introduced in 2025.3.0.
- The JPro-Loadbalancer now correctly uses the X-Forwarded-For and X-Forwarded-Host headers.
- Fixed an issue regarding rendering Text elements with stroke.
- Security improvement: restricted access to images that were not currently in use by the JVM.
- Fixed the JPro-Loadbalancer sometimes not starting properly on some non-english linux versions.
2025.3.1
2025.3.1 (September 20, 2025)
Major
- Added support for JavaFX 25.
Bugfixes
- Fixed an issue accessing resources when the JPro Loadbalancer is used.
This happened whenWebAPI.openLocalURL(url)was used. - Dropping a file outside a drop area no longer opens the file in the browser.
This caused problems by accidentally closing the JPro application. - Fixed a rare race condition, regarding Drag and Drop.
It didn't have any known visible effect, but could log an exception.
JPro 2025.3.0
Major
- Changed the web framework used internally from Play to Helidon.
This allows us to react more quickly to the latest security updates,
and won't affect how you use JPro. - The JPro Loadbalancer is now released together with JPro.
- Added support for Gradle9.
- JPro now requires Java 21 or later.
Features
- Every build is now automatically checked against the NVD (National Vulnerability Database) for security issues.
- We now also release a SBOM (Software Bill of Materials) for every JPro release.
It can be found in thejpro-serverartifact as a file namedjpro-server_2.12-<version>-cyclonedx-bom.json.
Bugfixes
- Small bugfix for the Maven Plugin. When JAVA_HOME is an empty String, we now fall back to the default java command.
This is the same behaviour JPro has in the Gradle Plugin and the start scripts. - Fixed an issue regarding indexing by Google and other crawlers that don't support websocket.
- ImageIO is now explicitly initialized in the ClassLoader of the App.
Previously, it was sometimes initialized in the JPro Classloader - leading to subtle differences. - Fixed an issue where calling
WebAPI.closeInstance()would sometimes result in an exception. - Removed the redirect of the log files in the start-background.sh script on linux and mac.
This could lead to an endlessly growing log file. Now all the log files are created by the internal logger of JPro,
which doesn't have such issues. - Fixed a rare issue when rendering non-uniform corner radii on Regions.
JPro 2025.2.1
Features
- Improved how shortcut key combinations are detected.
Combinations are now correctly based on the user's device rather than the server OS.
This can be configured with the propertyjpro.shortcutSourcein thejpro.conffile. - The
ServerAPI.addRequestHandlerAPI has been improved. The request now contains the headers and body.
The request can now be any HTTP method (GET, POST, PUT, PATCH, DELETE).
The response can now set the status code.
Bugfixes
- Added a fix for context menus and modality (
Stage.initModality) where it was previously
possible to open context menus in the blocked stage. - Fixed an exception which happened when a ComboBox was opened twice in a Popup.
In this case, it was only possible, to open the ComboBox once. - Fixed an issue when using Canvas. In some cases the
Canvas.setClip()method was not working as expected. - Removed the accidental rounded borders at the bottom on undecorated Stages.
- Fixed an issue regarding rendering & minWidth/minHeight for
Window.
The bounds are now respected correctly.
When the size of theSceneandWindowdo not match,
the Scene size is now used as in JavaFX. - Fixed remaining issue regarding dropping folders as files.
- Fixed an issue where resources were not properly released after image creation.
- When using the Gradle commands
jproStartandjproStopat the same time, stop was always called first.
Now, the order is respected. This makes it easier to start and stop
servers for test environments.
JPro 2025.2.0
Features
- Added support for JavaFX 24.
- In
Canvas, clipping with arbitrary shapes is now supported. - Improved instance startup timeout logging. The timeout can now be configured with
jpro.instanceStartupTimeoutSecondsin thejpro.conffile. - Added
WebAPI.getInstanceInfo().getRemoteAddress()method to retrieve client IP addresses.
Bugfixes
- Fixed a regression with Text which happened in some cases when multiple
\nor\rcharacters were used. - Folders can no longer be dropped as files. They can't be uploaded and are now properly filtered out.
- Texts with gradients are now rendered correctly.
- The initial font for Canvas is now applied correctly.
- Fixed issue in the
Canvaswhere in some rare situations, the identity matrix was used incorrectly. - Fixed issue with WebAPI access when using
jpro.linkUnownedWindowsToFirstInstance = true.
Changes
- Updated core dependencies that create the javascript files of JPro.
JPro 2025.1.0
Features
- Added experimental 3D support. It can be activated in the jpro.conf with
jpro.beta.enable3D=true. - Rewrote Focus Management. If multiple Stages are shown, now only one window is "visible focused".
- Updated the JavaFX 17, 21 and 23 versions, which are used by JPro.
- Added new methods to the WebAPI to detect the current platform:
WebAPI.getPlatformOld()andWebAPI.getPlatform().
The methodWebAPI.getPlatformOld()maps tonavigator.platform, which is well-supported but deprecated.
The methodWebAPI.getPlatform()maps tonavigator.userAgent.platform, which is not well-supported but is not deprecated.
We provide an easier cross-platform API in the jpro-platform that also supports Desktop.
Bugfixes
- When
Stage.titleandStage.iconare null, the title and icon of the html page are no longer overwritten. - Added support for BorderStrokeStyle.NONE for Region.
- Fixed an issue with the Stage Border. When browser zoom was used, sometimes a "transparent line" was shown.
- Fixed Issue with JAVA_HOME containing a space. This happened on Mac and Linux, when the start script from
the JPro release was used. - When a ComboBox opened, it wasn't possible to select the next node with Tab. This is fixed now.
- When a Node was focused, and a Tooltip appeared - than the key events were received by the popup of the Tooltip,
instead of the focused Node. This is fixed now. - Fixed an Exception, which happened when a stage has an icons, and it's manually shown/hidden. #192
- Fixed and simplified text implementation, to fix very rare issues with text rendering.
JSFile.getUploadedFileFuture()can now be called outside the JavaFX Thread.- Fixed rare render bug in ImageView. Certain property combinations involving Viewport were not rendered correctly.
- Fixed an exception, when
Text.textis set to null.
JPro 2024.4.1
Changes
- Published the
jpro-webapiartifact to the Maven Central Repository. The artifact is now available at the following
coordinates:- Maven POM:
... <dependency> <groupId>one.jpro</groupId> <artifactId>jpro-webapi</artifactId> <version>2024.4.1</version> </dependency> ... - Gradle Build:
implementation 'one.jpro:jpro-webapi:2024.4.1'
- Maven POM:
- The
syncStageAttributesattribute is now enabled by default.
JPro 2024.4.0
Feature
- JavaFX 23 (version 23.0.1) is now supported and set as the default version. Note that JavaFX 23 requires JDK 21 or later.
- JavaFX 17 LTS has been updated to version 17.0.12.
- JavaFX 21 LTS has been updated to version 21.0.4.
- You can now start JPro with the argument
-Djpro.parent.pid=<PID>. If the specified parent process stops, the JPro
server will also stop automatically. - When the BuildTool Process of the command
mvn jpro:runorgradle jproRunis stopped forcefully, then the JPro
server is now also stopped. - The browser tab now accurately reflects the JavaFX stage's title and favicon. The tab title is set based on the
stage'stitleproperty, and the favicon is sourced from the first icon in the stage'sgetIconslist. To enable
this feature, use thesyncStageAttributesattribute in thejpro-apptag. For more details, refer to the updated
documentation or JPro Issue #185.
Improvements
- The implementation JSFile is no longer an anonymous class - making debugging easier.
Bugfixes
- Fixed Stages, when the StageStyle
Transparent,Unified, orUtilityis used. - Fixed various issues, regarding special characters, and the start script of the JPro Release.