{"id":569981,"date":"2026-03-30T04:00:08","date_gmt":"2026-03-30T04:00:08","guid":{"rendered":"https:\/\/www.newsbeep.com\/ca\/569981\/"},"modified":"2026-03-30T04:00:08","modified_gmt":"2026-03-30T04:00:08","slug":"java-news-roundup-graalvm-build-tools-eclipselink-spring-milestones-open-liberty-quarkus","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ca\/569981\/","title":{"rendered":"Java News Roundup: GraalVM Build Tools, EclipseLink, Spring Milestones, Open Liberty, Quarkus"},"content":{"rendered":"<p>This week&#8217;s Java roundup for March 23rd, 2026, features news highlighting: GA releases of GraalVM Native Build Tools 1.0 and EclipseLink 5.0; the March 2026 edition of Open Liberty; fourth milestone releases of Spring Boot, Spring Modulith and Spring AI; a point release of Quarkus; the first development release of Infinispan; and a maintenance release of GlassFish.<\/p>\n<p>JDK 27<\/p>\n<p><a href=\"https:\/\/github.com\/openjdk\/jdk\/releases\/tag\/jdk-27%2B15\" rel=\"nofollow noopener\" target=\"_blank\">Build 15<\/a> of the JDK 27 <a href=\"https:\/\/jdk.java.net\/27\/\" 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-27%2B14...jdk-27%2B15\" rel=\"nofollow noopener\" target=\"_blank\">updates<\/a> from Build 14 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%20b15%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\/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>GraalVM Native Build Tools<\/p>\n<p>The GA release of GraalVM <a href=\"https:\/\/github.com\/graalvm\/native-build-tools\/blob\/master\/README.md\" rel=\"nofollow noopener\" target=\"_blank\">Native Build Tools<\/a> 1.0.0 delivers dependency upgrades and a resolution to an issue due to a failure of the Gradle version of the <a href=\"https:\/\/github.com\/graalvm\/native-build-tools\/blob\/master\/native-gradle-plugin\/src\/functionalTest\/groovy\/org\/graalvm\/buildtools\/gradle\/JavaApplicationFunctionalTest.groovy\" rel=\"nofollow noopener\" target=\"_blank\">JavaApplicationFunctionalTest<\/a> class on the latest GraalVM JDKs due to using a removed feature that blocked test gates. More details on this release may be found in the <a href=\"https:\/\/github.com\/graalvm\/native-build-tools\/releases\/tag\/1.0.0\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>GlassFish<\/p>\n<p>GlassFish 8.0.1, the first maintenance release, ships with bug fixes, documentation improvements, dependency upgrades and new features such as: a move of the Java Native Access (JNA) library to a dedicated module; optimizations in deployment performance and use of resources; and a refactor of various utilities (<a href=\"https:\/\/github.com\/eclipse-ee4j\/glassfish\/blob\/main\/nucleus\/admin\/rest\/rest-client\/src\/main\/java\/org\/glassfish\/admin\/rest\/client\/utils\/MarshallingUtils.java\" rel=\"nofollow noopener\" target=\"_blank\">MarshallingUtils<\/a>, <a href=\"https:\/\/github.com\/eclipse-ee4j\/glassfish\/blob\/main\/appserver\/tests\/jdbc\/src\/test\/java\/org\/glassfish\/main\/test\/jdbc\/pool\/JdbcPoolPerformanceIT.java\" rel=\"nofollow noopener\" target=\"_blank\">JdbcPoolPerformanceIT<\/a>, among others) to make them usable outside of GlassFish. Further details on this release may be found in the <a href=\"https:\/\/github.com\/eclipse-ee4j\/glassfish\/releases\/tag\/8.0.1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring Framework<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/26\/spring-boot-4-1-0-M4-available-now\" rel=\"nofollow noopener\" target=\"_blank\">fourth milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-boot\" rel=\"nofollow noopener\" target=\"_blank\">Spring Boot<\/a> 4.1.0 provides bug fixes, documentation improvements, dependency upgrades and new features such as: consistency with the <a href=\"https:\/\/docs.spring.io\/spring-boot\/4.1\/api\/java\/org\/springframework\/boot\/grpc\/server\/autoconfigure\/GrpcServerObservationAutoConfiguration.html\" rel=\"nofollow noopener\" target=\"_blank\">GrpcServerObservationAutoConfiguration<\/a> and <a href=\"https:\/\/docs.spring.io\/spring-boot\/4.1\/api\/java\/org\/springframework\/boot\/grpc\/client\/autoconfigure\/GrpcClientObservationAutoConfiguration.html\" rel=\"nofollow noopener\" target=\"_blank\">GrpcClientObservationAutoConfiguration<\/a> classes by supporting a custom Micrometer Metrics <a href=\"https:\/\/github.com\/micrometer-metrics\/micrometer\/blob\/main\/micrometer-core\/src\/main\/java\/io\/micrometer\/core\/instrument\/binder\/grpc\/GrpcClientObservationConvention.java\" rel=\"nofollow noopener\" target=\"_blank\">GrpcClientObservationConvention<\/a> interface and adding the <a href=\"https:\/\/docs.spring.io\/spring-boot\/4.1\/api\/java\/org\/springframework\/boot\/autoconfigure\/condition\/ConditionalOnMissingBean.html\" rel=\"nofollow noopener\" target=\"_blank\">@ConditionalOnMissingBean<\/a> annotation to the <a href=\"https:\/\/github.com\/micrometer-metrics\/micrometer\/blob\/main\/micrometer-core\/src\/main\/java\/io\/micrometer\/core\/instrument\/binder\/grpc\/ObservationGrpcServerInterceptor.java\" rel=\"nofollow noopener\" target=\"_blank\">ObservationGrpcServerInterceptor<\/a> class. This release also reverts changes made to RabbitMQ and AMQP in Spring Boot 4.1.1-M3 that will now be delivered in November 2026 with the upcoming release of Spring Boot 4.2. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v4.1.0-M4\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/27\/spring-modulith-2-1-m4-2-0-5-and-1-4-10-released\" rel=\"nofollow noopener\" target=\"_blank\">fourth milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-modulith\" rel=\"nofollow noopener\" target=\"_blank\">Spring Modulith<\/a> 2.1.0 delivers notable changes such as: a new <a href=\"https:\/\/github.com\/spring-projects\/spring-modulith\/blob\/main\/spring-modulith-events\/spring-modulith-events-jobrunr\/src\/main\/java\/org\/springframework\/modulith\/events\/jobrunr\/JobRunrEventExternalizer.java\" rel=\"nofollow noopener\" target=\"_blank\">JobRunrEventExternalizer<\/a> class to support for event externalization with <a href=\"https:\/\/www.jobrunr.io\/en\/\" rel=\"nofollow noopener\" target=\"_blank\">JobRunr<\/a>; and the ability to opt out of persisting an event publication for a method annotated with the Spring Framework <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.6\/javadoc-api\/org\/springframework\/transaction\/event\/TransactionalEventListener.html\" rel=\"nofollow noopener\" target=\"_blank\">@TransactionalEventListener<\/a>. Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-modulith\/releases\/tag\/2.1.0-M4\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/26\/spring-ai-2-0-0-M4-and-1-1-4-and-1-0-5-available\" rel=\"nofollow noopener\" target=\"_blank\">fourth milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-ai\" rel=\"nofollow noopener\" target=\"_blank\">Spring AI<\/a> 2.0.0 ships with bug fixes, dependency upgrades and new features such as: the ability to configure Google Search and custom tooling when calling models in the Gemini 3 release train; and support for dynamically disabling native structured output functionality that provides more flexibility in handling output. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-ai\/releases\/tag\/v2.0.0-M4\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Open Liberty<\/p>\n<p>The <a href=\"https:\/\/openliberty.io\/blog\/2026\/03\/24\/26.0.0.3.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.3 provides bug fixes and new features such as: a new method, getUsersByAttribute(), added to the <a href=\"https:\/\/github.com\/OpenLiberty\/open-liberty\/blob\/integration\/dev\/com.ibm.websphere.security\/src\/com\/ibm\/websphere\/security\/UserRegistry.java\" rel=\"nofollow noopener\" target=\"_blank\">UserRegistry<\/a> interface so that applications may retrieve specific user attributes, or search for users, based on attribute values; and support for the latest <a href=\"https:\/\/smallrye.io\/jandex\/jandex\/3.1.3\/index.html\" rel=\"nofollow noopener\" target=\"_blank\">Jandex<\/a> index formats to optimize application startup times and reduce runtime costs.<\/p>\n<p>Quarkus<\/p>\n<p>The <a href=\"https:\/\/quarkus.io\/blog\/quarkus-3-34-released\/\" rel=\"nofollow noopener\" target=\"_blank\">release<\/a> of <a href=\"https:\/\/quarkus.io\/\" rel=\"nofollow noopener\" target=\"_blank\">Quarkus<\/a> 3.34.0 delivers bug fixes, dependency upgrades and notable changes such as: a deprecation of the <a href=\"https:\/\/github.com\/quarkusio\/quarkus\/blob\/main\/core\/deployment\/src\/main\/java\/io\/quarkus\/deployment\/recording\/ObjectLoader.java\" rel=\"nofollow noopener\" target=\"_blank\">ObjectLoader<\/a> interface as it has been classified for internal use only and is tightly coupled to <a href=\"https:\/\/github.com\/quarkusio\/gizmo\/blob\/main\/README.md\" rel=\"nofollow noopener\" target=\"_blank\">Gizmo<\/a> 1 that has been replaced by a rearchitected Gizmo 2; and a new getResourceNames() method, added to the <a href=\"https:\/\/github.com\/quarkusio\/quarkus\/blob\/main\/independent-projects\/bootstrap\/app-model\/src\/main\/java\/io\/quarkus\/paths\/PathTree.java\" rel=\"nofollow noopener\" target=\"_blank\">PathTree<\/a> interface, that calls an instance of the <a href=\"https:\/\/github.com\/quarkusio\/quarkus\/blob\/main\/independent-projects\/bootstrap\/core\/src\/main\/java\/io\/quarkus\/bootstrap\/classloading\/PathTreeClassPathElement.java\" rel=\"nofollow noopener\" target=\"_blank\">PathTreeClassPathElement<\/a> class instead of creating its own set of resource names. Further details on this release may be found in the release notes for <a href=\"https:\/\/github.com\/quarkusio\/quarkus\/releases\/tag\/3.34.1\" rel=\"nofollow noopener\" target=\"_blank\">version 3.34.1<\/a>, <a href=\"https:\/\/github.com\/quarkusio\/quarkus\/releases\/tag\/3.34.0\" rel=\"nofollow noopener\" target=\"_blank\">version 3.34.0<\/a> and <a href=\"https:\/\/github.com\/quarkusio\/quarkus\/releases\/tag\/3.34.0.CR1\" rel=\"nofollow noopener\" target=\"_blank\">version 3.34.0.CR1<\/a>.<\/p>\n<p>EclipseLink<\/p>\n<p>The <a href=\"https:\/\/x.com\/OmniFishEE\/status\/2036800369628422187\" rel=\"nofollow\">GA release<\/a> of <a href=\"https:\/\/eclipse.dev\/eclipselink\/\" rel=\"nofollow noopener\" target=\"_blank\">EclipseLink<\/a> 5.0.0 ships with: support for the Jakarta Persistence 3.2 specification under Jakarta EE 11 with new features in the <a href=\"https:\/\/jakarta.ee\/specifications\/persistence\/3.2\/jakarta-persistence-spec-3.2#a4665\" rel=\"nofollow noopener\" target=\"_blank\">Jakarta Persistence Query Language<\/a> (JPQL); processing improvements with querying; platform improvements with databases such as Oracle, MySQL, DB2 and PostgreSQL; and general cleanup of logging, security and API. More details on this release may be found in the <a href=\"https:\/\/github.com\/eclipse-ee4j\/eclipselink\/releases\/tag\/5.0.0\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Infinispan<\/p>\n<p>The first development release of <a href=\"https:\/\/infinispan.org\/\" rel=\"nofollow noopener\" target=\"_blank\">Infinispan<\/a> 16.2.0 provides bug fixes, documentation improvements, dependency upgrades and new features such as: expansion of implemented commands in the <a href=\"https:\/\/redis.io\/docs\/latest\/develop\/reference\/protocol-spec\/\" rel=\"nofollow noopener\" target=\"_blank\">Redis Serialization Protocol<\/a> specification (RESP) that includes <a href=\"https:\/\/redis.io\/docs\/latest\/commands\/bitfield\/\" rel=\"nofollow noopener\" target=\"_blank\">BITFIELD<\/a>, <a href=\"https:\/\/redis.io\/docs\/latest\/commands\/subscribe\/\" rel=\"nofollow noopener\" target=\"_blank\">SUBSCRIBE<\/a>, <a href=\"https:\/\/redis.io\/docs\/latest\/commands\/punsubscribe\/\" rel=\"nofollow noopener\" target=\"_blank\">PUNSUBSCRIBE<\/a> and <a href=\"https:\/\/redis.io\/docs\/latest\/commands\/digest\/\" rel=\"nofollow noopener\" target=\"_blank\">DIGEST<\/a>; and an implementation of the <a href=\"https:\/\/spec.openapis.org\/oas\/v3.2.0.html\" rel=\"nofollow noopener\" target=\"_blank\">OpenAPI v3<\/a> specification in the <a href=\"https:\/\/infinispan.org\/docs\/stable\/titles\/rest\/rest.html\" rel=\"nofollow noopener\" target=\"_blank\">Infinispan REST API<\/a>. Further details on this release may be found in the <a href=\"https:\/\/github.com\/infinispan\/infinispan\/releases\/tag\/16.2.0.Dev01\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"This week&#8217;s Java roundup for March 23rd, 2026, features news highlighting: GA releases of GraalVM Native Build Tools&hellip;\n","protected":false},"author":2,"featured_media":569982,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[11777,49,48,4113,219285,155370,219282,219283,35858,219281,155369,175714,184745,39650,215037,219284,61],"class_list":{"0":"post-569981","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-technology","8":"tag-architecture-design","9":"tag-ca","10":"tag-canada","11":"tag-development","12":"tag-eclipselink","13":"tag-glassfish","14":"tag-graalvm","15":"tag-infinispan","16":"tag-java","17":"tag-java-news-roundup-mar23-2026","18":"tag-jdk-27","19":"tag-open-liberty","20":"tag-quarkus","21":"tag-spring-ai","22":"tag-spring-boot","23":"tag-spring-modulith","24":"tag-technology"},"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/569981","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=569981"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/569981\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media\/569982"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media?parent=569981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/categories?post=569981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/tags?post=569981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}