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