{"id":418583,"date":"2026-01-19T03:31:07","date_gmt":"2026-01-19T03:31:07","guid":{"rendered":"https:\/\/www.newsbeep.com\/ca\/418583\/"},"modified":"2026-01-19T03:31:07","modified_gmt":"2026-01-19T03:31:07","slug":"java-news-roundup-wildfly-39-open-liberty-spring-framework-jobrunr-gradle-micrometer","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ca\/418583\/","title":{"rendered":"Java News Roundup: WildFly 39, Open Liberty, Spring Framework, JobRunr, Gradle, Micrometer"},"content":{"rendered":"<p>This week&#8217;s Java roundup for January 12th, 2026, features news highlighting: the GA release of WildFly 39; point releases of JobRunr and Gradle; maintenance releases of Spring Framework and Micronaut; milestone releases of Micrometer Metrics and Micrometer Tracing; and a beta release of Open Liberty 26.0.0.1.<\/p>\n<p>OpenJDK<\/p>\n<p>JEP 527, <a href=\"https:\/\/openjdk.org\/jeps\/527\" rel=\"nofollow noopener\" target=\"_blank\">Post-Quantum Hybrid Key Exchange for TLS 1.3<\/a>, has been <a href=\"https:\/\/mail.openjdk.org\/pipermail\/jdk-dev\/2026-January\/010723.html\" rel=\"nofollow noopener\" target=\"_blank\">elevated<\/a> from Candidate to Proposed to Target for JDK 27. This JEP proposes to enhance the implementation of RFC 8446, <a href=\"https:\/\/datatracker.ietf.org\/doc\/rfc8446\/\" rel=\"nofollow noopener\" target=\"_blank\">Transport Layer Security (TLS) Protocol Version 1.3<\/a>, using the <a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-tls-hybrid-design\/\" rel=\"nofollow noopener\" target=\"_blank\">Hybrid Key Exchange in TLS 1.3<\/a> specification, currently being drafted by the Internet Engineering Task Force (IETF) in conjunction with JEP 496, <a href=\"https:\/\/openjdk.org\/jeps\/496\" rel=\"nofollow noopener\" target=\"_blank\">Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism<\/a>, delivered in JDK 24. The review is expected to conclude on Monday, January 19, 2026.<\/p>\n<p>JDK 26<\/p>\n<p><a href=\"https:\/\/github.com\/openjdk\/jdk\/releases\/tag\/jdk-26%2B31\" rel=\"nofollow noopener\" target=\"_blank\">Build 31<\/a> of the JDK 26 <a href=\"https:\/\/jdk.java.net\/26\/\" rel=\"nofollow noopener\" target=\"_blank\">early-access builds<\/a> was made available this past week featuring <a href=\"https:\/\/github.com\/openjdk\/jdk\/compare\/jdk-26%2B30...jdk-26%2B31\" rel=\"nofollow noopener\" target=\"_blank\">updates<\/a> from Build 30 that include fixes for various <a href=\"https:\/\/bugs.openjdk.org\/issues\/?jql=project%20%3D%20JDK%20AND%20fixversion%20%3D%2026%20and%20%22resolved%20in%20build%22%20%3D%20b31%20order%20by%20component%2C%20subcomponent\" rel=\"nofollow noopener\" target=\"_blank\">issues<\/a>. More details on this release may be found in the <a href=\"https:\/\/jdk.java.net\/26\/release-notes\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>As per the JDK 26 <a href=\"https:\/\/openjdk.org\/projects\/jdk\/26\/#Schedule\" rel=\"nofollow noopener\" target=\"_blank\">release schedule<\/a>, <a href=\"https:\/\/www.linkedin.com\/in\/markreinhold\" rel=\"nofollow noopener\" target=\"_blank\">Mark Reinhold<\/a>, Chief Architect, Java Platform Group at Oracle, formally <a href=\"https:\/\/mail.openjdk.org\/pipermail\/jdk-dev\/2026-January\/010751.html\" rel=\"nofollow noopener\" target=\"_blank\">declared<\/a> that JDK 26 has entered Rampdown Phase Two. This means that: no additional JEPs will be added for <a href=\"https:\/\/openjdk.java.net\/projects\/jdk\/26\/\" rel=\"nofollow noopener\" target=\"_blank\">JDK 26<\/a>; and there will be a focus on the P1 and P2 bugs which can be fixed via the <a href=\"https:\/\/openjdk.org\/jeps\/3#Fix-Request-Process\" rel=\"nofollow noopener\" target=\"_blank\">Fix-Request Process<\/a>. Late enhancements are still possible, with the <a href=\"https:\/\/openjdk.org\/jeps\/3#Late-Enhancement-Request-Process\" rel=\"nofollow noopener\" target=\"_blank\">Late-Enhancement Request Process<\/a>, but Reinhold states that &#8220;the bar is now extraordinarily high.&#8221; Therefore, the final set of 10 features for the GA release in March 2026 will include:<\/p>\n<p>JDK 27<\/p>\n<p><a href=\"https:\/\/github.com\/openjdk\/jdk\/releases\/tag\/jdk-27%2B5\" rel=\"nofollow noopener\" target=\"_blank\">Build 5<\/a> of the JDK 27 <a href=\"https:\/\/jdk.java.net\/27\/\" rel=\"nofollow noopener\" target=\"_blank\">early-access builds<\/a> was also made available this past week featuring <a href=\"https:\/\/github.com\/openjdk\/jdk\/compare\/jdk-27%2B4...jdk-27%2B5\" rel=\"nofollow noopener\" target=\"_blank\">updates<\/a> from Build 4 that include fixes for various <a href=\"https:\/\/bugs.openjdk.org\/issues\/?jql=project%20%3D%20JDK%20AND%20fixversion%20%3D%2027%20and%20%22resolved%20in%20build%22%20%3D%20b05%20order%20by%20component%2C%20subcomponent\" rel=\"nofollow noopener\" target=\"_blank\">issues<\/a>. Further details on this release may be found in the <a href=\"https:\/\/jdk.java.net\/27\/release-notes\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>For <a href=\"https:\/\/openjdk.org\/projects\/jdk\/26\/\" rel=\"nofollow noopener\" target=\"_blank\">JDK 26<\/a> and <a href=\"https:\/\/openjdk.org\/projects\/jdk\/27\/\" rel=\"nofollow noopener\" target=\"_blank\">JDK 27<\/a>, developers are encouraged to report bugs via the <a href=\"https:\/\/bugreport.java.com\/bugreport\/\" rel=\"nofollow noopener\" target=\"_blank\">Java Bug Database<\/a>.<\/p>\n<p>Spring Framework<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-framework\" rel=\"nofollow noopener\" target=\"_blank\">Spring Framework<\/a> 7.0.3, the <a href=\"https:\/\/spring.io\/blog\/2026\/01\/15\/spring-framework-7-0-3-available-now\" rel=\"nofollow noopener\" target=\"_blank\">third maintenance release<\/a>, delivers bug fixes, documentation improvements, dependency upgrades and new features such as: an instance of the <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.3\/javadoc-api\/org\/springframework\/web\/util\/DisconnectedClientHelper.html\" rel=\"nofollow noopener\" target=\"_blank\">DisconnectedClientHelper<\/a> should separately detect the presence of the <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.3\/javadoc-api\/org\/springframework\/web\/client\/RestClientException.html\" rel=\"nofollow noopener\" target=\"_blank\">RestClientException<\/a> and <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.3\/javadoc-api\/org\/springframework\/web\/reactive\/function\/client\/WebClientException.html\" rel=\"nofollow noopener\" target=\"_blank\">WebClientException<\/a> classes as the latter was ignored if the former was not present; and a new <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.3\/javadoc-api\/org\/springframework\/resilience\/InvocationRejectedException.html\" rel=\"nofollow noopener\" target=\"_blank\">InvocationRejectedException<\/a> class that complements a new option for the <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.3\/javadoc-api\/org\/springframework\/resilience\/annotation\/ConcurrencyLimit.html\" rel=\"nofollow noopener\" target=\"_blank\">@ConcurrencyLimit<\/a> annotation to configure the throttle policy. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-framework\/releases\/tag\/v7.0.3\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>The Spring team has <a href=\"https:\/\/spring.io\/security\/cve-2026-22718\" rel=\"nofollow noopener\" target=\"_blank\">disclosed<\/a> CVE-2026-22718, <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2026-22718\" rel=\"nofollow noopener\" target=\"_blank\">Command Injection on User Machine using VSCode Extension for Spring CLI<\/a>, a vulnerability affecting Spring CLI VSCode Extension, versions 0.9.0 and older, that allows an attacker to use command injection to remotely execute commands on a user&#8217;s machine. This extension has reached end-of-life in May 2025 and developers should remove this extension from their coding environments.<\/p>\n<p>WildFly<\/p>\n<p>The <a href=\"https:\/\/www.wildfly.org\/news\/2026\/01\/16\/WildFly-39-is-released\/\" rel=\"nofollow noopener\" target=\"_blank\">GA release<\/a> of <a href=\"https:\/\/www.wildfly.org\/\" rel=\"nofollow noopener\" target=\"_blank\">WildFly<\/a> 39 provides bug fixes, dependency upgrades and new features such as: support for <a href=\"https:\/\/docs.wildfly.org\/wildfly-proposals\/clustering\/jgroups\/WFLY-15836_Add_TLS_support_to_JGroups_TCP-based_transports.html\" rel=\"nofollow noopener\" target=\"_blank\">TLS configuration<\/a> in <a href=\"http:\/\/www.jgroups.org\/\" rel=\"nofollow noopener\" target=\"_blank\">JGroups<\/a> TCP-based transport protocols; a new attribute, resteasy-original-webapplicationexception-behavior, added to the WildFly <a href=\"https:\/\/docs.wildfly.org\/wildfly-proposals\/#jaxrs\" rel=\"nofollow noopener\" target=\"_blank\">jaxrs<\/a> subsystem for improved deployments; and updated implementations of the Jakarta Authentication, Jakarta Concurrency, Jakarta Security, Jakarta Servlet, and Jakarta WebSocket specifications. Further details on this release may be found in the <a href=\"https:\/\/github.com\/wildfly\/wildfly\/releases\/tag\/39.0.0.Final\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a> and InfoQ will follow up with a more detailed news story.<\/p>\n<p>Open Liberty<\/p>\n<p>The <a href=\"https:\/\/openliberty.io\/blog\/2026\/01\/13\/26.0.0.1-beta.html\" rel=\"nofollow noopener\" target=\"_blank\">beta release<\/a> of <a href=\"https:\/\/openliberty.io\/\" rel=\"nofollow noopener\" target=\"_blank\">Open Liberty<\/a> 26.0.0.1 features: a new log throttling mechanism, enabled by default, for preventing excessive log output when the same log events repeatedly occur within a short period of time; and updates to the <a href=\"https:\/\/modelcontextprotocol.io\/docs\/getting-started\/intro\" rel=\"nofollow noopener\" target=\"_blank\">Model Context Protocol<\/a> (MCP) Server (mcpServer-1.0) feature that include bug fixes, asynchronous tool support and support for stateless mode.<\/p>\n<p>Micronaut<\/p>\n<p>The Micronaut Foundation has <a href=\"https:\/\/micronaut.io\/2026\/01\/12\/micronaut-framework-4-10-7-released\/\" rel=\"nofollow noopener\" target=\"_blank\">released<\/a> version 4.10.7 of the <a href=\"https:\/\/micronaut.io\/\" rel=\"nofollow noopener\" target=\"_blank\">Micronaut Framework<\/a>, based on <a href=\"https:\/\/github.com\/micronaut-projects\/micronaut-core\/releases\/tag\/v4.10.13\" rel=\"nofollow noopener\" target=\"_blank\">Micronaut Core 4.10.13<\/a>, features bug fixes and patch updates to modules: <a href=\"https:\/\/github.com\/micronaut-projects\/micronaut-maven-plugin\/blob\/4.11.x\/README.md\" rel=\"nofollow noopener\" target=\"_blank\">Micronaut Maven Plugin<\/a>, <a href=\"https:\/\/micronaut-projects.github.io\/micronaut-sourcegen\/latest\/guide\/\" rel=\"nofollow noopener\" target=\"_blank\">Micronaut SourceGen<\/a>, and <a href=\"https:\/\/micronaut-projects.github.io\/micronaut-json-schema\/latest\/guide\/\" rel=\"nofollow noopener\" target=\"_blank\">Micronaut JSON Schema<\/a>, More details on this release may be found in the <a href=\"https:\/\/github.com\/micronaut-projects\/micronaut-platform\/releases\/tag\/v4.10.7\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>The Micronaut team has also <a href=\"https:\/\/micronaut.io\/2026\/01\/12\/micronaut-announces-plans-to-join-the-commonhaus-foundation\/\" rel=\"nofollow noopener\" target=\"_blank\">announced<\/a> that they have applied to join the <a href=\"https:\/\/www.commonhaus.org\/\" rel=\"nofollow noopener\" target=\"_blank\">Commonhaus Foundation<\/a>, a non-profit organization dedicated to the sustainability of open source libraries and frameworks. <a href=\"https:\/\/www.linkedin.com\/in\/sergiodelamo\/\" rel=\"nofollow noopener\" target=\"_blank\">Sergio Del Amo Caballero<\/a>, Principal Member of Technical Staff at Oracle and Micronaut Committer, stated that &#8220;Our intention is that this move will empower even more individuals and organizations to join the Micronaut project and be actively involved in steering its future.&#8221;<\/p>\n<p>JobRunr<\/p>\n<p>The <a href=\"https:\/\/www.jobrunr.io\/en\/blog\/jobrunr-v8.4\/\" rel=\"nofollow noopener\" target=\"_blank\">release<\/a> of <a href=\"https:\/\/www.jobrunr.io\/\" rel=\"nofollow noopener\" target=\"_blank\">JobRunr<\/a> 8.4.0 delivers bug fixes, dependency upgrades and three new features: support for converting Kotlin class-based <a href=\"https:\/\/kotlinlang.org\/docs\/fun-interfaces.html\" rel=\"nofollow noopener\" target=\"_blank\">Single Abstract Method<\/a> (SAM) interfaces using the Bazel <a href=\"https:\/\/registry.bazel.build\/modules\/rules_kotlin\" rel=\"nofollow noopener\" target=\"_blank\">rules_kotlin<\/a> module; automatic detection of the <a href=\"https:\/\/github.com\/jobrunr\/jobrunr\/blob\/master\/language-support\/jobrunr-kotlin-21-support\/src\/main\/kotlin\/org\/jobrunr\/kotlin\/utils\/mapper\/KotlinxSerializationJsonMapper.kt\" rel=\"nofollow noopener\" target=\"_blank\">KotlinxSerializationJsonMapper<\/a> class when using the fluent API; and the ability to configure polymorphic type validators with an instance of the <a href=\"https:\/\/github.com\/jobrunr\/jobrunr\/blob\/master\/core\/src\/main\/java\/org\/jobrunr\/utils\/mapper\/jackson3\/Jackson3JsonMapper.java\" rel=\"nofollow noopener\" target=\"_blank\">Jackson3JsonMapper<\/a> class for improved security. Further details on this release may be found in the <a href=\"https:\/\/github.com\/jobrunr\/jobrunr\/releases\/tag\/v8.4.0\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Micrometer<\/p>\n<p>The first milestone release of <a href=\"https:\/\/github.com\/micrometer-metrics\/micrometer\/blob\/main\/README.md\" rel=\"nofollow noopener\" target=\"_blank\">Micrometer Metrics<\/a> 1.17.0 provides bug fixes, dependency upgrades and new features such as: applying the AssertJ <a href=\"https:\/\/github.com\/assertj\/assertj\/blob\/main\/assertj-core\/src\/main\/java\/org\/assertj\/core\/annotation\/CheckReturnValue.java\" rel=\"nofollow noopener\" target=\"_blank\">@CheckReturnValue<\/a> annotation to all implementations of the <a href=\"https:\/\/github.com\/assertj\/assertj\/blob\/main\/assertj-core\/src\/main\/java\/org\/assertj\/core\/api\/Assert.java\" rel=\"nofollow noopener\" target=\"_blank\">Assert<\/a> interface; and increased efficiency of the getMeters() method, defined in the <a href=\"https:\/\/github.com\/micrometer-metrics\/micrometer\/blob\/main\/micrometer-core\/src\/main\/java\/io\/micrometer\/core\/instrument\/MeterRegistry.java\" rel=\"nofollow noopener\" target=\"_blank\">MeterRegistry<\/a> class, by replacing the toArray() method with the asList() method, defined in the <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/25\/docs\/api\/java.base\/java\/util\/ArrayList.html\" rel=\"nofollow noopener\" target=\"_blank\">ArrayList<\/a> and <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/25\/docs\/api\/java.base\/java\/util\/Arrays.html\" rel=\"nofollow noopener\" target=\"_blank\">Arrays<\/a> classes, respectively. More details on this release may be found in the <a href=\"https:\/\/github.com\/micrometer-metrics\/micrometer\/releases\/tag\/v1.17.0-M1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>The first and second milestone releases of <a href=\"https:\/\/github.com\/micrometer-metrics\/tracing\/blob\/main\/README.md\" rel=\"nofollow noopener\" target=\"_blank\">Micrometer Tracing<\/a> 1.7.0 ships with dependency upgrades and adds <a href=\"https:\/\/jspecify.dev\/\" rel=\"nofollow noopener\" target=\"_blank\">JSpecify<\/a> as a dependency. Further details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/micrometer-metrics\/tracing\/releases\/tag\/v1.7.0-M1\" rel=\"nofollow noopener\" target=\"_blank\">version 1.7.0-M1<\/a> and <a href=\"https:\/\/github.com\/micrometer-metrics\/tracing\/releases\/tag\/v1.7.0-M2\" rel=\"nofollow noopener\" target=\"_blank\">version 1.7.0-M2<\/a>.<\/p>\n<p>Gradle<\/p>\n<p>The GA release of <a href=\"https:\/\/gradle.org\/\" rel=\"nofollow noopener\" target=\"_blank\">Gradle<\/a> 9.3.0 delivers improvements in test reporting that includes an enhanced <a href=\"https:\/\/docs.gradle.org\/9.3.0-rc-1\/userguide\/java_testing.html#test_reporting\" rel=\"nofollow noopener\" target=\"_blank\">HTML Test Report<\/a> for nested, parameterized, and suite-based tests, with better aggregate reporting; improvements in error and warning reporting with the <a href=\"https:\/\/docs.gradle.org\/9.3.0-rc-1\/userguide\/reporting_problems.html\" rel=\"nofollow noopener\" target=\"_blank\">Problems API<\/a> that are now rendered in the console when using &#8211;warning-mode=all and clearer explanations for some exit codes; and enhancements in build authoring with a new method, named(), defined in the <a href=\"https:\/\/github.com\/gradle\/gradle\/blob\/master\/subprojects\/core-api\/src\/main\/java\/org\/gradle\/api\/attributes\/AttributeContainer.java\" rel=\"nofollow noopener\" target=\"_blank\">AttributeContainer<\/a> interface, that can create attribute values directly from the container without requiring the use of the <a href=\"https:\/\/github.com\/gradle\/gradle\/blob\/master\/subprojects\/core-api\/src\/main\/java\/org\/gradle\/api\/model\/ObjectFactory.java\" rel=\"nofollow noopener\" target=\"_blank\">ObjectFactory<\/a> interface. More details on this release may be found in the <a href=\"https:\/\/github.com\/gradle\/gradle\/releases\/tag\/v9.3.0\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"This week&#8217;s Java roundup for January 12th, 2026, features news highlighting: the GA release of WildFly 39; point&hellip;\n","protected":false},"author":2,"featured_media":418584,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[11777,49,48,4113,175710,35858,175709,39656,39657,155369,175711,175713,155366,175712,175714,55430,61],"class_list":["post-418583","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology","tag-architecture-design","tag-ca","tag-canada","tag-development","tag-gradle","tag-java","tag-java-news-roundup-jan12-2026","tag-jboss-wildfly","tag-jdk-26","tag-jdk-27","tag-jobrunr","tag-micrometer","tag-micronaut","tag-open-jdk","tag-open-liberty","tag-spring-framework","tag-technology"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/418583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/comments?post=418583"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/418583\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media\/418584"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media?parent=418583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/categories?post=418583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/tags?post=418583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}