{"id":448412,"date":"2026-02-02T03:36:08","date_gmt":"2026-02-02T03:36:08","guid":{"rendered":"https:\/\/www.newsbeep.com\/ca\/448412\/"},"modified":"2026-02-02T03:36:08","modified_gmt":"2026-02-02T03:36:08","slug":"java-news-roundup-jakarta-ee-12-spring-shell-open-liberty-quarkus-tomcat-jhipster-gradle","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ca\/448412\/","title":{"rendered":"Java News Roundup: Jakarta EE 12, Spring Shell, Open Liberty, Quarkus, Tomcat, JHipster, Gradle"},"content":{"rendered":"<p>This week&#8217;s Java roundup for January 26th, 2026, features news highlighting: an update on milestone and GA release schedule for Jakarta EE 12; the January 2026 edition of Open Liberty; a point release of Quarkus; maintenance releases of Spring Shell, Apache Tomcat and Gradle; and the first and second beta releases of JHipster 9.0.<\/p>\n<p>JDK 26<\/p>\n<p><a href=\"https:\/\/github.com\/openjdk\/jdk\/releases\/tag\/jdk-26%2B33\" rel=\"nofollow noopener\" target=\"_blank\">Build 33<\/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%2B32...jdk-26%2B33\" rel=\"nofollow noopener\" target=\"_blank\">updates<\/a> from Build 32 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%20b33%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>JDK 27<\/p>\n<p><a href=\"https:\/\/github.com\/openjdk\/jdk\/releases\/tag\/jdk-27%2B7\" rel=\"nofollow noopener\" target=\"_blank\">Build 7<\/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%2B6...jdk-27%2B7\" rel=\"nofollow noopener\" target=\"_blank\">updates<\/a> from Build 6 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%20b07%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>Jakarta EE<\/p>\n<p>In his weekly <a href=\"https:\/\/www.agilejava.eu\/\" rel=\"nofollow noopener\" target=\"_blank\">Hashtag Jakarta EE<\/a> blog, <a href=\"https:\/\/se.linkedin.com\/in\/ivargrimstad\" rel=\"nofollow noopener\" target=\"_blank\">Ivar Grimstad<\/a>, Jakarta EE Developer Advocate at the Eclipse Foundation, provided an <a href=\"https:\/\/www.agilejava.eu\/2026\/02\/01\/hashtag-jakarta-ee-318\/\" rel=\"nofollow noopener\" target=\"_blank\">update<\/a> on Jakarta EE 12, writing:<\/p>\n<p>&#13;<\/p>\n<p>From the discussions in the Jakarta EE Platform call[s] the last couple of weeks, it looks like we won&#8217;t see a release of Jakarta EE 12 on this side of summer (on the Northern Hemisphere at least).<\/p>\n<p>&#13;<br \/>\n&#13;<\/p>\n<p>The reason is that since Jakarta EE 11 was delayed by a year, most of the vendors are currently working on their implementations. Which does not leave much resources to work on the Jakarta EE 12 specifications.<\/p>\n<p>&#13;<br \/>\n&#13;<\/p>\n<p>At the same time, we want to play catch-up with the original plan and direction directive from the Steering Committee of the Jakarta EE Working Group to release a major release of Jakarta EE 12 about six to nine months after an LTS release of Java.<\/p>\n<p>&#13;<br \/>\n&#13;<\/p>\n<p>So a compromise will be to release Jakarta EE 12 by the end of 2026. The deliberations are still going on, so stay tuned on more updates.<\/p>\n<p>&#13;<\/p>\n<p>Several specifications have <a href=\"https:\/\/x.com\/JakartaEE\/status\/2016149414125916218\" rel=\"nofollow\">reached a milestone 2 release<\/a> for Jakarta EE 12. These include: <a href=\"https:\/\/jakarta.ee\/specifications\/cdi\/5.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Contexts and Dependency Injection 5.0<\/a>; <a href=\"https:\/\/jakarta.ee\/specifications\/persistence\/4.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Persistence 4.0<\/a>; <a href=\"https:\/\/jakarta.ee\/specifications\/bean-validation\/4.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Validation 4.0<\/a>; <a href=\"https:\/\/jakarta.ee\/specifications\/restful-ws\/5.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta RESTful Web Services 5.0<\/a>; <a href=\"https:\/\/jakarta.ee\/specifications\/query\/1.0\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Query 1.0<\/a>; <a href=\"https:\/\/jakarta.ee\/specifications\/data\/1.1\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Data 1.1<\/a>; and <a href=\"https:\/\/jakarta.ee\/specifications\/nosql\/1.1\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta NoSQL 1.1<\/a>.<\/p>\n<p>Spring Framework<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-shell\" rel=\"nofollow noopener\" target=\"_blank\">Spring Shell<\/a> 4.0.1, the <a href=\"https:\/\/spring.io\/blog\/2026\/01\/31\/spring-shell-4-0-1-is-out\" rel=\"nofollow noopener\" target=\"_blank\">first maintenance release<\/a>, delivers bug fixes, documentation improvements, dependency upgrades and enhancements such as: an improved CLI parser that now accepts booleans without an explicit true or false value; and a new <a href=\"https:\/\/docs.spring.io\/spring-shell\/reference\/api\/org\/springframework\/shell\/core\/command\/completion\/DefaultCompletionProvider.html\" rel=\"nofollow noopener\" target=\"_blank\">DefaultCompletionProvider<\/a> class, a default implementation of the <a href=\"https:\/\/docs.spring.io\/spring-shell\/reference\/api\/org\/springframework\/shell\/core\/command\/completion\/CompletionProvider.html\" rel=\"nofollow noopener\" target=\"_blank\">CompletionProvider<\/a> interface, to provide completion from enumeration values if an option is of type enum. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-shell\/releases\/tag\/v4.0.1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Open Liberty<\/p>\n<p>The <a href=\"https:\/\/openliberty.io\/blog\/2026\/01\/27\/26.0.0.1.html\" rel=\"nofollow noopener\" target=\"_blank\">GA 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 resolutions to notable bug fixes such as: a NullPointerException from the updateSelector() method, defined in the <a href=\"https:\/\/github.com\/OpenLiberty\/open-liberty\/blob\/integration\/dev\/com.ibm.ws.channelfw\/src\/com\/ibm\/ws\/tcpchannel\/internal\/SocketRWChannelSelector.java\" rel=\"nofollow noopener\" target=\"_blank\">SocketRWChannelSelector<\/a> class, due to a null instance of the <a href=\"https:\/\/github.com\/OpenLiberty\/open-liberty\/blob\/integration\/dev\/com.ibm.ws.channelfw\/src\/com\/ibm\/ws\/tcpchannel\/internal\/NioSocketIOChannel.java\" rel=\"nofollow noopener\" target=\"_blank\">NioSocketIOChannel<\/a> class; and <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-12635\" rel=\"nofollow noopener\" target=\"_blank\">CVE-2025-12635<\/a>, a vulnerability affecting Open Liberty versions 25.0.0.12 and below, that allows an attacker to exploit cross-site scripting due to improper validation of user-supplied input such that a specially-crafted URL that redirects a user to a malicious website.<\/p>\n<p>Quarkus<\/p>\n<p>The <a href=\"https:\/\/quarkus.io\/blog\/quarkus-3-31-released\/\" rel=\"nofollow noopener\" target=\"_blank\">release<\/a> of <a href=\"https:\/\/quarkus.io\/\" rel=\"nofollow noopener\" target=\"_blank\">Quarkus<\/a> 3.31 ships with: bug fixes, dependency upgrades and new features such as: full support for JDK 25; a new Maven packaging type, quarkus, a <a href=\"https:\/\/quarkus.io\/blog\/building-large-applications\/\" rel=\"nofollow noopener\" target=\"_blank\">Quarkus-specific lifecycle<\/a> optimized for Quarkus applications, that provides improved integration and more efficient lifecycle builds; and a new experimental extension, <a href=\"https:\/\/quarkus.io\/extensions\/io.quarkus\/quarkus-hibernate-panache\/\" rel=\"nofollow noopener\" target=\"_blank\">Hibernate with Panache Next<\/a>, designed to simplify persistence code for <a href=\"https:\/\/hibernate.org\/orm\/\" rel=\"nofollow noopener\" target=\"_blank\">Hibernate ORM<\/a>, <a href=\"https:\/\/hibernate.org\/reactive\/\" rel=\"nofollow noopener\" target=\"_blank\">Hibernate Reactive<\/a> and the <a href=\"https:\/\/jakarta.ee\/specifications\/data\/\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Data<\/a> specification. Further details on this release may be found in the release notes for <a href=\"https:\/\/github.com\/quarkusio\/quarkus\/releases\/tag\/3.31.1\" rel=\"nofollow noopener\" target=\"_blank\">version 3.31.1<\/a> and <a href=\"https:\/\/github.com\/quarkusio\/quarkus\/releases\/tag\/3.31.0\" rel=\"nofollow noopener\" target=\"_blank\">version 3.31.0<\/a>.<\/p>\n<p>Apache Tomcat<\/p>\n<p>Versions 11.0.18, 10.1.52 and 9.0.115 of <a href=\"https:\/\/tomcat.apache.org\/\" rel=\"nofollow noopener\" target=\"_blank\">Apache Tomcat<\/a> (announced <a href=\"https:\/\/www.mail-archive.com\/announce@apache.org\/msg10689.html\" rel=\"nofollow noopener\" target=\"_blank\">here<\/a>, <a href=\"https:\/\/www.mail-archive.com\/announce@apache.org\/msg10687.html\" rel=\"nofollow noopener\" target=\"_blank\">here<\/a> and <a href=\"https:\/\/www.mail-archive.com\/announce@apache.org\/msg10674.html\" rel=\"nofollow noopener\" target=\"_blank\">here<\/a>, respectively) provides bug fixes, dependency upgrades and notable changes such as: ignoring, by default, the TLSv1.3 cipher suites, included in the ciphers attribute of the <a href=\"https:\/\/github.com\/apache\/tomcat\/blob\/main\/java\/org\/apache\/tomcat\/util\/net\/SSLHostConfig.java\" rel=\"nofollow noopener\" target=\"_blank\">SSLHostConfig<\/a> class, for configuration consistency in their implementations of the <a href=\"https:\/\/www.openssl.org\/\" rel=\"nofollow noopener\" target=\"_blank\">OpenSSL<\/a> and <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/25\/security\/java-secure-socket-extension-jsse-reference-guide.html\" rel=\"nofollow noopener\" target=\"_blank\">Java Secure Socket Extension<\/a> (JSSE) specifications; and a resolution to a regression having caused failures under certain situations from the getContent() method, defined in the Java <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/25\/docs\/api\/java.base\/java\/net\/URL.html\" rel=\"nofollow noopener\" target=\"_blank\">URL<\/a> class, cross a result of calling the getResource() method defined in the Java <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/25\/docs\/api\/java.base\/java\/lang\/ClassLoader.html\" rel=\"nofollow noopener\" target=\"_blank\">ClassLoader<\/a> class. More details on these releases may be found in the release notes for <a href=\"http:\/\/tomcat.apache.org\/tomcat-11.0-doc\/changelog.html\" rel=\"nofollow noopener\" target=\"_blank\">version 11.0.18<\/a>, <a href=\"http:\/\/tomcat.apache.org\/tomcat-10.1-doc\/changelog.html\" rel=\"nofollow noopener\" target=\"_blank\">version 10.1.52<\/a> and <a href=\"https:\/\/tomcat.apache.org\/tomcat-9.0-doc\/changelog.html\" rel=\"nofollow noopener\" target=\"_blank\">version 9.0.115<\/a>.<\/p>\n<p>JHipster<\/p>\n<p>The second beta release of <a href=\"https:\/\/www.jhipster.tech\/\" rel=\"nofollow noopener\" target=\"_blank\">JHipster<\/a> 9.0.0 features notable changes such as: support for Spring Boot 4.0; a migration to using the Spring Security <a href=\"https:\/\/docs.spring.io\/spring-security\/reference\/api\/java\/org\/springframework\/security\/config\/annotation\/web\/socket\/EnableWebSocketSecurity.html\" rel=\"nofollow noopener\" target=\"_blank\">@EnableWebSocketSecurity<\/a> annotation to replace use of the deprecated <a href=\"https:\/\/docs.spring.io\/spring-security\/site\/docs\/6.5.8-SNAPSHOT\/api\/org\/springframework\/security\/config\/annotation\/web\/socket\/AbstractSecurityWebSocketMessageBrokerConfigurer.html\" rel=\"nofollow noopener\" target=\"_blank\">AbstractSecurityWebSocketMessageBrokerConfigurer<\/a> class; and an overhaul of the CI and testing infrastructure. This release resolves an issue discovered with the first beta release, now deprecated, that had rendered the JHipster generator unstable. Further details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/jhipster\/generator-jhipster\/releases\/tag\/v9.0.0-beta.2\" rel=\"nofollow noopener\" target=\"_blank\">version 9.0.0-beta.2<\/a> and <a href=\"https:\/\/github.com\/jhipster\/generator-jhipster\/releases\/tag\/v9.0.0-beta.1\" rel=\"nofollow noopener\" target=\"_blank\">version 9.0.0-beta.1<\/a>.<\/p>\n<p>Gradle<\/p>\n<p>The release of <a href=\"https:\/\/gradle.org\/\" rel=\"nofollow noopener\" target=\"_blank\">Gradle<\/a> 9.3.1 features resolutions to notable issues such as: a failure in storing the output of a build cache using filenames that contain non-Basic Multilingual Plane (BMP) characters; and a restoration of the <a href=\"https:\/\/github.com\/gradle\/gradle\/blob\/master\/subprojects\/core-api\/src\/main\/java\/org\/gradle\/api\/artifacts\/ModuleVersionSelector.java\" rel=\"nofollow noopener\" target=\"_blank\">ModuleVersionSelector<\/a> interface, but now deprecated, such that instances of the <a href=\"https:\/\/github.com\/gradle\/gradle\/blob\/master\/subprojects\/core-api\/src\/main\/java\/org\/gradle\/api\/artifacts\/ExternalDependency.java\" rel=\"nofollow noopener\" target=\"_blank\">ExternalDependency<\/a> and <a href=\"https:\/\/github.com\/gradle\/gradle\/blob\/master\/subprojects\/core-api\/src\/main\/java\/org\/gradle\/api\/artifacts\/DependencyConstraint.java\" rel=\"nofollow noopener\" target=\"_blank\">DependencyConstraint<\/a> interfaces can be passed to the useTarget() method defined in the <a href=\"https:\/\/github.com\/gradle\/gradle\/blob\/master\/subprojects\/core-api\/src\/main\/java\/org\/gradle\/api\/artifacts\/DependencyResolveDetails.java\" rel=\"nofollow noopener\" target=\"_blank\">DependencyResolveDetails<\/a> interface. More details on this release may be found in the <a href=\"https:\/\/docs.gradle.org\/9.3.1\/release-notes.html\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"This week&#8217;s Java roundup for January 26th, 2026, features news highlighting: an update on milestone and GA release&hellip;\n","protected":false},"author":2,"featured_media":448413,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[39660,11777,49,48,4113,175710,42884,35858,184744,39657,155369,184746,175714,184745,55430,61],"class_list":["post-448412","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology","tag-apache-tomcat","tag-architecture-design","tag-ca","tag-canada","tag-development","tag-gradle","tag-jakarta-ee","tag-java","tag-java-news-roundup-jan26-2026","tag-jdk-26","tag-jdk-27","tag-jhipster","tag-open-liberty","tag-quarkus","tag-spring-framework","tag-technology"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/448412","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=448412"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/448412\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media\/448413"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media?parent=448412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/categories?post=448412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/tags?post=448412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}