diff --git a/content/posts/2026-04-15-releases.adoc b/content/posts/2026-04-15-releases.adoc new file mode 100644 index 0000000..0aca6a7 --- /dev/null +++ b/content/posts/2026-04-15-releases.adoc @@ -0,0 +1,121 @@ +--- +layout: post +title: "RESTEasy 6.2.16.Final and 7.0.2.Final Releases" +date: 2026-04-15 +author: James R. Perkins +--- + +Today we would like to announce the release of RESTEasy link:/downloads#6216final[6.2.16.Final] and RESTEasy +link:/downloads#702final[7.0.2.Final]. Both releases consist mostly of bug fixes and component upgrades. + +One big change to both 6.2.16.Final and 7.0.2.Final was better support for https://redhat.atlassian.net/browse/RESTEASY-3693[CDI]. +Previously, Jakarta REST resources required a public no-arg constructor, even when managed by CDI. This release relaxes that +requirement, allowing CDI to fully handle resource creation. This means your resources can now use constructor injection +without needing to maintain an additional no-arg constructor. + +== 7.0.2.Final + +RESTEasy 7.0.2.Final is a https://jakarta.ee/specifications/restful-ws/4.0/[Jakarta REST 4.0] implementation. This +release includes mostly bug fixes and component upgrades. + +One notable upgrade in this release is the migration to Jackson 2.21 LTS. This is a long-term support version of Jackson, +which provides better stability and extended support for users who need a more stable JSON processing foundation. + +Among the bug fixes, this release addresses an https://redhat.atlassian.net/browse/RESTEASY-3691[IllegalAccessError] that +could occur when posting large entities via the Apache HTTP client engine, and fixes for Server-Sent Events (SSE) handling +in Vert.x environments. + +=== Component Upgrade + +* https://redhat.atlassian.net/browse/RESTEASY-3687[RESTEASY-3687] Bump org.jboss.logging:jboss-logging from 3.6.1.Final to 3.6.2.Final +* https://redhat.atlassian.net/browse/RESTEASY-3688[RESTEASY-3688] Bump version.weld from 6.0.3.Final to 6.0.4.Final +* https://redhat.atlassian.net/browse/RESTEASY-3690[RESTEASY-3690] Bump the fasterxml-dependencies group across 1 directory with 2 updates +* https://redhat.atlassian.net/browse/RESTEASY-3696[RESTEASY-3696] Bump version.org.glassfish.jaxb from 4.0.6 to 4.0.7 +* https://redhat.atlassian.net/browse/RESTEASY-3699[RESTEASY-3699] Bump org.jboss.logging:jboss-logging from 3.6.2.Final to 3.6.3.Final +* https://redhat.atlassian.net/browse/RESTEASY-3700[RESTEASY-3700] Bump org.jboss.arquillian:arquillian-bom from 1.10.0.Final to 1.10.1.Final +* https://redhat.atlassian.net/browse/RESTEASY-3701[RESTEASY-3701] Bump org.wildfly:wildfly-channel-maven-plugin from 1.0.30 to 1.0.31 +* https://redhat.atlassian.net/browse/RESTEASY-3702[RESTEASY-3702] Bump version.io.undertow from 2.3.20.Final to 2.3.23.Final +* https://redhat.atlassian.net/browse/RESTEASY-3704[RESTEASY-3704] Bump org.wildfly.security:wildfly-elytron-ssl from 2.6.7.Final to 2.6.8.Final +* https://redhat.atlassian.net/browse/RESTEASY-3705[RESTEASY-3705] Bump org.eclipse.jetty:jetty-server from 12.0.15 to 12.0.32 in /resteasy-dependencies-bom +* https://redhat.atlassian.net/browse/RESTEASY-3707[RESTEASY-3707] Upgrade Jackson to 2.21.1 LTS +* https://redhat.atlassian.net/browse/RESTEASY-3709[RESTEASY-3709] Bump org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-bom from 3.3.4 to 3.3.5 +* https://redhat.atlassian.net/browse/RESTEASY-3710[RESTEASY-3710] Bump version.io.undertow from 2.3.23.Final to 2.3.24.Final +* https://redhat.atlassian.net/browse/RESTEASY-3711[RESTEASY-3711] Bump com.fasterxml.jackson:jackson-bom from 2.21.1 to 2.21.2 in the fasterxml-dependencies group +* https://redhat.atlassian.net/browse/RESTEASY-3719[RESTEASY-3719] Bump org.wildfly:wildfly-channel-maven-plugin from 1.0.31 to 1.0.32 +* https://redhat.atlassian.net/browse/RESTEASY-3720[RESTEASY-3720] Bump org.apache.httpcomponents:httpasyncclient from 4.1.4 to 4.1.5 + +=== Enhancement + +* https://redhat.atlassian.net/browse/RESTEASY-3596[RESTEASY-3596] Contextual scheduled executor service causes inadvertent Thread + classloader leak +* https://redhat.atlassian.net/browse/RESTEASY-3693[RESTEASY-3693] Relax Constructor Requirements for CDI-Managed Jakarta REST Components + +=== Bug + +* https://redhat.atlassian.net/browse/RESTEASY-3359[RESTEASY-3359] SseEventSink close does not update the request for Vert.x +* https://redhat.atlassian.net/browse/RESTEASY-3683[RESTEASY-3683] EJB's should be allowed to have annotated interface methods as well as implementation methods +* https://redhat.atlassian.net/browse/RESTEASY-3685[RESTEASY-3685] Few test fails with Semeru (IBM) JDK +* https://redhat.atlassian.net/browse/RESTEASY-3691[RESTEASY-3691] IllegalAccessError when POSTing entity larger than in-memory threshold via ManualClosingApacheHttpClient43Engine + +=== Task + +* https://redhat.atlassian.net/browse/RESTEASY-3660[RESTEASY-3660] Deprecate the resteasy.patch.filter.legacy context parameter +* https://redhat.atlassian.net/browse/RESTEASY-3686[RESTEASY-3686] Delete HeaderEmptyHostTest to unit test due to Undertow security hardening https://redhat.atlassian.net/browse/UNDERTOW-2656[UNDERTOW-2656] and lack of core framework relevance +* https://redhat.atlassian.net/browse/RESTEASY-3698[RESTEASY-3698] Remove the BASE \+ i for the ID patterns in the messages and message loggers +* https://redhat.atlassian.net/browse/RESTEASY-3708[RESTEASY-3708] Refactor the `FakeHttpServer` in the unit tests to no use the `com.sun.net.httpserver.HttpServer` + +Full releases notes can be found at https://github.com/resteasy/resteasy/releases/tag/7.0.2.Final. + +== 6.2.16.Final + +RESTEasy 6.2.16.Final is a https://jakarta.ee/specifications/restful-ws/3.1/[Jakarta REST 3.1] implementation. This +release includes mostly bug fixes and component upgrades. + +While this should not affect you as a user, it should be noted that in https://redhat.atlassian.net/browse/RESTEASY-3712[RESTEASY-3712] +we upgrade to a new minor of JBoss Logging. This was done for better support in modular environments. We did, however, +keep backwards compatibility so using JBoss Logging 3.5.x should also work. + +Similar to 7.0.2.Final, this release addresses an https://redhat.atlassian.net/browse/RESTEASY-3691[IllegalAccessError] +when posting large entities, fixes for Server-Sent Events (SSE) in Vert.x environments, and resolves a +https://redhat.atlassian.net/browse/RESTEASY-3697[SecurityException] in SSE when the security manager is enabled. + +=== Component Upgrade + +* https://redhat.atlassian.net/browse/RESTEASY-3689[RESTEASY-3689] Bump version.weld from 5.1.6.Final to 5.1.7.Final +* https://redhat.atlassian.net/browse/RESTEASY-3696[RESTEASY-3696] Bump version.org.glassfish.jaxb from 4.0.6 to 4.0.7 +* https://redhat.atlassian.net/browse/RESTEASY-3700[RESTEASY-3700] Bump org.jboss.arquillian:arquillian-bom from 1.10.0.Final to 1.10.1.Final +* https://redhat.atlassian.net/browse/RESTEASY-3701[RESTEASY-3701] Bump org.wildfly:wildfly-channel-maven-plugin from 1.0.30 to 1.0.31 +* https://redhat.atlassian.net/browse/RESTEASY-3702[RESTEASY-3702] Bump version.io.undertow from 2.3.20.Final to 2.3.23.Final +* https://redhat.atlassian.net/browse/RESTEASY-3703[RESTEASY-3703] Bump version.io.netty.netty4 from 4.1.128.Final to 4.1.131.Final +* https://redhat.atlassian.net/browse/RESTEASY-3704[RESTEASY-3704] Bump org.wildfly.security:wildfly-elytron-ssl from 2.6.7.Final to 2.6.8.Final +* https://redhat.atlassian.net/browse/RESTEASY-3706[RESTEASY-3706] Bump com.fasterxml.jackson:jackson-bom from 2.18.5 to 2.18.6 in the fasterxml-dependencies group +* https://redhat.atlassian.net/browse/RESTEASY-3709[RESTEASY-3709] Bump org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-bom from 3.3.4 to 3.3.5 +* https://redhat.atlassian.net/browse/RESTEASY-3710[RESTEASY-3710] Bump version.io.undertow from 2.3.23.Final to 2.3.24.Final +* https://redhat.atlassian.net/browse/RESTEASY-3712[RESTEASY-3712] Upgrade the JBoss Logging dependency to 3.6.3.Final +* https://redhat.atlassian.net/browse/RESTEASY-3718[RESTEASY-3718] Bump version.io.netty.netty4 from 4.1.131.Final to 4.1.132.Final +* https://redhat.atlassian.net/browse/RESTEASY-3719[RESTEASY-3719] Bump org.wildfly:wildfly-channel-maven-plugin from 1.0.31 to 1.0.32 + +=== Enhancement + +* https://redhat.atlassian.net/browse/RESTEASY-3596[RESTEASY-3596] Contextual scheduled executor service causes inadvertent Thread + classloader leak +* https://redhat.atlassian.net/browse/RESTEASY-3693[RESTEASY-3693] Relax Constructor Requirements for CDI-Managed Jakarta REST Components + +=== Bug + +* https://redhat.atlassian.net/browse/RESTEASY-3359[RESTEASY-3359] SseEventSink close does not update the request for Vert.x +* https://redhat.atlassian.net/browse/RESTEASY-3683[RESTEASY-3683] EJB's should be allowed to have annotated interface methods as well as implementation methods +* https://redhat.atlassian.net/browse/RESTEASY-3685[RESTEASY-3685] Few test fails with Semeru (IBM) JDK +* https://redhat.atlassian.net/browse/RESTEASY-3691[RESTEASY-3691] IllegalAccessError when POSTing entity larger than in-memory threshold via ManualClosingApacheHttpClient43Engine +* https://redhat.atlassian.net/browse/RESTEASY-3697[RESTEASY-3697] The SseEventOutputImpl will throw a security exception if the security manager is enabled when the stream is closed + +=== Task + +* https://redhat.atlassian.net/browse/RESTEASY-3660[RESTEASY-3660] Deprecate the resteasy.patch.filter.legacy context parameter +* https://redhat.atlassian.net/browse/RESTEASY-3686[RESTEASY-3686] Delete HeaderEmptyHostTest to unit test due to Undertow security hardening https://redhat.atlassian.net/browse/UNDERTOW-2656[UNDERTOW-2656] and lack of core framework relevance +* https://redhat.atlassian.net/browse/RESTEASY-3698[RESTEASY-3698] Remove the BASE \+ i for the ID patterns in the messages and message loggers +* https://redhat.atlassian.net/browse/RESTEASY-3708[RESTEASY-3708] Refactor the `FakeHttpServer` in the unit tests to no use the `com.sun.net.httpserver.HttpServer` + +Full releases notes can be found at https://github.com/resteasy/resteasy/releases/tag/6.2.16.Final. + +== Finally + +As always, https://github.com/resteasy/resteasy/discussions/[feedback] is welcome. Stay safe, and, depending on where you are, stay warm or be cool. \ No newline at end of file diff --git a/data/releases.yaml b/data/releases.yaml index 01b9d0a..73cfdbe 100644 --- a/data/releases.yaml +++ b/data/releases.yaml @@ -1,6 +1,23 @@ - group: 7.0.x supported: true detail: + - version: 7.0.2.Final + date: 2026-04-15 + license: ASL v2 + source: https://github.com/resteasy/resteasy/releases/download/v7.0.2.Final/resteasy-7.0.2.Final-src.zip + size: 36.5 MB + release_notes: https://github.com/resteasy/resteasy/releases/tag/v7.0.2.Final + download_link: https://github.com/resteasy/resteasy/releases/download/v7.0.2.Final/resteasy-7.0.2.Final-all.zip + download_text: resteasy-7.0.2.Final-all.zip + jakarta_rest_spec: + version: 4.0 + link: https://jakarta.ee/specifications/restful-ws/4.0/jakarta-restful-ws-spec-4.0.html + java_doc: https://jakarta.ee/specifications/restful-ws/4.0/apidocs + documentation: + examples: https://github.com/resteasy/resteasy-examples/ + link: https://docs.resteasy.dev/7.0/userguide/ + pdf: https://docs.resteasy.dev/7.0/userguide/resteasy-reference-guide.pdf + java_doc: https://docs.resteasy.dev/7.0/javadocs/ - version: 7.0.1.Final date: 2025-12-10 license: ASL v2 @@ -38,6 +55,23 @@ - group: 6.2.x supported: true detail: + - version: 6.2.16.Final + date: 2026-04-15 + license: ASL v2 + source: https://github.com/resteasy/resteasy/releases/download/v6.2.16.Final/resteasy-6.2.16.Final-src.zip + size: 41.1 MB + release_notes: https://github.com/resteasy/resteasy/releases/tag/v6.2.16.Final + download_link: https://github.com/resteasy/resteasy/releases/download/v6.2.16.Final/resteasy-6.2.16.Final-all.zip + download_text: resteasy-6.2.16.Final-all.zip + jakarta_rest_spec: + version: 3.1 + link: https://jakarta.ee/specifications/restful-ws/3.1/jakarta-restful-ws-spec-3.1.html + java_doc: https://jakarta.ee/specifications/restful-ws/3.1/apidocs + documentation: + examples: https://github.com/resteasy/resteasy-examples/ + link: https://docs.resteasy.dev/6.2/userguide/ + pdf: https://docs.resteasy.dev/6.2/userguide/resteasy-reference-guide.pdf + java_doc: https://docs.resteasy.dev/6.2/javadocs/ - version: 6.2.15.Final date: 2025-12-10 license: ASL v2 diff --git a/public/css/bootstrap-theme.css b/public/css/bootstrap-theme.css index 5eac6b3..dbd9290 100644 --- a/public/css/bootstrap-theme.css +++ b/public/css/bootstrap-theme.css @@ -80,6 +80,18 @@ h4 { margin-top: 0 !important; } +/* ============================================ + LINKS - Modern hover behavior + ============================================ */ +a { + text-decoration: none !important; + transition: all 0.15s ease !important; +} + +a:hover { + text-decoration: underline !important; +} + /* Dark mode heading colors */ [data-bs-theme="dark"] h1 { color: #e6edf3 !important; @@ -1680,11 +1692,14 @@ table tbody tr:last-child td, color: #e6edf3 !important; } -[data-bs-theme="dark"] p, -[data-bs-theme="dark"] a { +[data-bs-theme="dark"] p { color: #c9d1d9 !important; } +[data-bs-theme="dark"] a { + color: var(--resteasy-accent) !important; +} + [data-bs-theme="dark"] a:hover { color: var(--resteasy-accent-light) !important; } diff --git a/public/js/theme-toggle.js b/public/js/site.js similarity index 73% rename from public/js/theme-toggle.js rename to public/js/site.js index 4895d75..925b039 100644 --- a/public/js/theme-toggle.js +++ b/public/js/site.js @@ -1,8 +1,12 @@ /** - * RESTEasy Theme Switcher - * Toggles between light and dark modes using Bootstrap's data-bs-theme + * RESTEasy Site JavaScript + * Main JavaScript file containing theme switcher, navigation, and interactive features */ +/** + * Theme Switcher + * Toggles between light and dark modes using Bootstrap's data-bs-theme + */ (function() { 'use strict'; @@ -151,3 +155,55 @@ }); }); })(); + +/** + * Clickable News Cards + * Makes entire news/blog cards clickable while maintaining link accessibility + */ +(function() { + 'use strict'; + + document.addEventListener('DOMContentLoaded', () => { + // Select all news/blog cards + const cards = document.querySelectorAll('.news-list-blocks .card, .blog-post-card'); + + cards.forEach(card => { + // Find the main link (either in title or "Read More") + const link = card.querySelector('.card-title a, .post-title a, a[href*="/posts/"]'); + + if (link) { + // Make the card clickable + card.style.cursor = 'pointer'; + + card.addEventListener('click', (e) => { + // Don't trigger if clicking on an actual link (let the link handle it) + if (e.target.tagName === 'A') { + return; + } + + // Respect modifier keys (cmd/ctrl click for new tab, etc.) + if (e.metaKey || e.ctrlKey) { + window.open(link.href, '_blank'); + } else { + window.location.href = link.href; + } + }); + + // Improve accessibility - make cards keyboard navigable + card.setAttribute('tabindex', '0'); + card.setAttribute('role', 'article'); + + // Handle keyboard navigation (Enter key) + card.addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + if (e.metaKey || e.ctrlKey) { + window.open(link.href, '_blank'); + } else { + window.location.href = link.href; + } + } + }); + } + }); + }); +})(); diff --git a/templates/partials/head.html b/templates/partials/head.html index 60aadc2..e69c8e7 100644 --- a/templates/partials/head.html +++ b/templates/partials/head.html @@ -32,6 +32,6 @@ integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"> - - + +