Skip to content

Releases: JPro-one/JPro

2026.1.0

19 Jan 16:37
bf26dbe

Choose a tag to compare

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 property jpro.liveCheck in the jpro.conf file.
  • 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 HTMLView in Safari.

2025.3.3

19 Jan 16:37
bf26dbe

Choose a tag to compare

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.enable3D is 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.0 where WebAPI.getInstanceInfo().dataSentWSProperty() was always 0. It now works correctly again.

2025.3.2

18 Nov 19:21
db9b6ec

Choose a tag to compare

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

21 Sep 13:50
db9b6ec

Choose a tag to compare

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 when WebAPI.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

10 Sep 12:52
db9b6ec

Choose a tag to compare

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 the jpro-server artifact as a file named jpro-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

03 Jun 09:23
db9b6ec

Choose a tag to compare

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 property jpro.shortcutSource in the jpro.conf file.
  • The ServerAPI.addRequestHandler API 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 the Scene and Window do 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 jproStart and jproStop at 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

02 Apr 14:26
db9b6ec

Choose a tag to compare

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.instanceStartupTimeoutSeconds in the jpro.conf file.
  • Added WebAPI.getInstanceInfo().getRemoteAddress() method to retrieve client IP addresses.

Bugfixes

  • Fixed a regression with Text which happened in some cases when multiple \n or \r characters 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 Canvas where 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

02 Apr 14:25
db9b6ec

Choose a tag to compare

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() and WebAPI.getPlatform().
    The method WebAPI.getPlatformOld() maps to navigator.platform, which is well-supported but deprecated.
    The method WebAPI.getPlatform() maps to navigator.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.title and Stage.icon are 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.text is set to null.

JPro 2024.4.1

08 Nov 16:45
db9b6ec

Choose a tag to compare

Changes

  • Published the jpro-webapi artifact 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'
      
    For more information, refer to the JPro Documentation.
  • The syncStageAttributes attribute is now enabled by default.

JPro 2024.4.0

05 Nov 11:32
db9b6ec

Choose a tag to compare

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:run or gradle jproRun is 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's title property, and the favicon is sourced from the first icon in the stage's getIcons list. To enable
    this feature, use the syncStageAttributes attribute in the jpro-app tag. 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, or Utility is used.
  • Fixed various issues, regarding special characters, and the start script of the JPro Release.