BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Java News Roundup: Jakarta EE 11-M2, JEPs Targeted for JDK 23, Spring Boot, Hibernate, GlassFish

Java News Roundup: Jakarta EE 11-M2, JEPs Targeted for JDK 23, Spring Boot, Hibernate, GlassFish

This week's Java roundup for April 15th, 2024, features news highlighting: the second milestone release of Jakarta EE 11; Stream Gathers (Second Preview) and Vector API (Eighth Incubator) targeted for JDK 23; the first release candidate of Spring Boot 3.3.0; the first alpha release of Hibernate 7.0.0; and the fifth milestone release of GlassFish 8.0.0.

OpenJDK

After its review had concluded, JEP 473, Stream Gatherers (Second Preview), was promoted from Proposed to Target to Targeted for JDK 23. This JEP proposes a second round of preview from the previous round, namely: JEP 461, Stream Gatherers (Preview), delivered in JDK 22. This will allow additional time for feedback and more experience with this feature with no user-facing changes over JEP 461. This feature was designed to enhance the Stream API to support custom intermediate operations that will "allow stream pipelines to transform data in ways that are not easily achievable with the existing built-in intermediate operations." More details on this JEP may be found in the original design document and this InfoQ news story.

Similarly, JEP 469, Vector API (Eighth Incubator), has also been promoted from Proposed to Target to Targeted for JDK 23. This JEP incorporates enhancements in response to feedback from the previous seven rounds of incubation: JEP 460, Vector API (Seventh Incubator), delivered in JDK 22; JEP 448, Vector API (Sixth Incubator), delivered in JDK 21; JEP 438, Vector API (Fifth Incubator), delivered in JDK 20; JEP 426, Vector API (Fourth Incubator), delivered in JDK 19; JEP 417, Vector API (Third Incubator), delivered in JDK 18; JEP 414, Vector API (Second Incubator), delivered in JDK 17; and JEP 338, Vector API (Incubator), delivered as an incubator module in JDK 16. Originally slated to be a re-incubation by reusing the original Incubator status, it was decided to keep enumerating. The Vector API will continue to incubate until the necessary features of Project Valhalla become available as preview features. At that time, the Vector API team will adapt the Vector API and its implementation to use them, and will promote the Vector API from Incubation to Preview.

JEP 476, Module Import Declarations (Preview), has been promoted from its JEP Draft 8315129 to Candidate status. This preview feature proposes to enhance the Java programming language with the ability to succinctly import all of the packages exported by a module with a goal to simplify the reuse of modular libraries without requiring to import code to be in a module itself.

George Adams, senior software engineering manager at Microsoft, and Bruno Borges, principal PM manager at Microsoft, have submitted JEP Draft 8330623, Remove Windows 32-bit x86 Port, that proposes to fully remove the Windows 32-bit x86 port following its deprecation as described in JEP 449, Deprecate the Windows 32-bit x86 Port for Removal, delivered in JDK 21. The goals are to: remove all code paths in the code base that apply only to Windows 32-bit; cease all testing and development efforts targeting the Windows 32-bit platform; and simplify OpenJDK's build and test infrastructure, aligning with current computing standards.

JDK 23

Build 19 of the JDK 23 early-access builds was made available this past week featuring updates from Build 18 that include fixes for various issues. Further details on this release may be found in the release notes.

GlassFish

GlassFish 8.0.0-M5, the fifth milestone release, delivers dependency upgrades and notable changes such as: an improved certificate authentication for the JmacHttpsTest class; and the addition of a lock and a notifyWaitingThreads() method in the ConnectionPool class for improved max pool size logic. More details on this release may be found in the release notes.

GraalVM

The release of GraalVM for JDK 22 Community 22.0.1 from Oracle Labs features fixes based on the Oracle Critical Patch Update for April 2024. These include resolutions to: a NullPointerException in the Java Debug Wire Protocol (JDWP) upon the debugger requesting a local variable table; and a deadlock coming from the tearDownIsolateOnShutdown() method defined in the IsolateAwareTruffleCompiler class. Further details on this release may be found in the release notes.

Jakarta EE

In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE developer advocate at the Eclipse Foundation, announced that the second milestone release of Jakarta EE 11 has been made available to the Java community.

Reviews for four specifications have been completed, two are in progress, and six are ready for their respective reviews. A total of four milestone releases are planned before the GA release in July 2024. Details for each profile may be found in Jakarta EE Platform 11-M2, Jakarta EE Web Profile 11-M2 and Jakarta EE Core 11-M2.

Gavin King, senior distinguished engineer at IBM and creator of Hibernate, has written a series (part I and part II) on Jakarta Data, a new specification in Jakarta EE 11.

BellSoft

Concurrent with Oracle's Critical Patch Update (CPU) for April 2024, BellSoft has released CPU patches for versions 21.0.2.0.1, 17.0.10.0.1, 11.0.22.0.1, 8u411 of Liberica JDK, their downstream distribution of OpenJDK, to address this list of CVEs. In addition, Patch Set Update (PSU) versions 22.0.1, 21.0.3, 17.0.11, 11.0.23 and 8u412, containing CPU and non-critical fixes, have also been released.

Spring Framework

The first release candidate of Spring Boot 3.3.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: configure JpaBaseConfiguration class with a custom implementation of the spring Framework ManagedClassNameFilter interface; and improved support for Spring for Apache Pulsar transactions with new auto-configuration properties. More details on this release may be found in the release notes.

Similarly, Spring Boot 3.2.5 and 3.1.11 have also been released featuring improvements in documentation, dependency upgrades and notable bug fixes such as: the @ServletComponentScan annotation does not register servlet components in a mock web environment; and the BindValidationFailureAnalyzer class uses the wrong target. Further details on these releases may be found in the version 3.2.5 and version 3.1.11.

The first release candidate of Spring Security 6.3.0 provides bug fixes, dependency upgrades and new features such as: support for certificate-bound JWT access token validation; and improves logging with the AuthenticationWebFilter class. More details on this release may be found in the release notes.

Similarly, versions 6.2.4, 6.1.9 and 5.8.12 of Spring Security have also been released featuring dependency upgrades and notable bug fixes such as: a package entanglement with the AuthorizationObservationConvention class that imports the MethodInvocationResult class; and use of the @Transactional annotation breaks ahead-of-time compilation for native image. Further details on these releases may be found in the release notes for version 6.2.4, version 6.1.9 and version 5.8.12.

The first release candidate of Spring for GraphQL 1.3.0 delivers one bug fix, dependency upgrades and new features such as: support for use of the @SchemaMapping and @BatchMapping annotations on schema interface types; and support for keep-alive pings in GraphQlWebSocketHandler class. Further details on this release may be found in the release notes.

Versions 1.3.0-RC1, 1.2.4 and 1.1.7 of Spring Authorization Server have been released featuring dependency upgrades to Spring Framework and Spring Security. New features in version 1.3.0-RC1 include: the addition of Mutual-TLS client certificate-bound access tokens; and provide more flexibility on when to display the consent page. More details on this release may be found in the release notes for version 1.3.0-RC1, version 1.2.4 and version 1.1.7.

The first release candidate of Spring Modulith 1.2.0 provides dependency upgrades and improvements such as: avoid the inclusion of starters in Spring Boot repackaged JARs; and a new section added to the documentation on how to exclude packages from application module detection. Further details on this release may be found in the release notes.

The first release candidate of Spring for Apache Pulsar 1.1.0 ships with dependency upgrades, improvements in documentation and improvements: support for transactions; and a rename of the stopContainer2() method defined in the PulsarTestContainerSupport interface to stopContainer(). More details on this release may be found in the release notes.

Similarly, version 1.0.5 of Spring for Apache Pulsar has been released to provide dependency upgrades. Further details on this release may be found in the release notes.

Versions 3.2.0-RC1, 3.1.4 and 3.0.16 of Spring for Apache Kafka have been released featuring bug fixes and dependency upgrades. New features in version 3.2.0-RC1 include: support for the @PartitionOffset annotation on the TopicPartitionOffset.SeekPosition enumeration class; and a new getListenerContainersMatchingId() method added to the KafkaListenerEndpointRegistry class to start and stop listeners at certain times. More details on these releases may be found in the release notes for version 3.2.0-RC1, version 3.1.4 and version 3.0.16.

Quarkus

Quarkus 3.9.4, the third maintenance release (version 3.9.0 was skipped) ships with dependency upgrades and notable bug fixes such as: annotating a producer method with the @Startup annotation throws a warning during compilation while still creating a bean as intended; and conflicts with hot reloading (quarkus:dev) not working and use of the Flatten Maven Plugin. More details on this release may be found in the changelog.

Similarly, the release of Quarkus 3.8.4 also provides dependency upgrades and notable bug fixes such as: an instance of the RestMulti class not sending headers if an implementation of the SmallRye Multi interface is empty; and removal of the outdated MetricBuildItem SPI. Further details on this release may be found in the changelog.

And lastly, Quarkus 3.2.12.Final has been released with minor bug fixes and improvements in documentation. More details on this release may be found in the release notes.

Micronaut

The Micronaut Foundation has released version 4.4.0 of Micronaut Framework featuring: improvements to Micronaut Core; a new module, Micronaut OpenSearch, an integration with OpenSearch; a dependency upgrade to Kotlin 1.9.23; and updates to many of the Micronaut modules. Further details on this release may be found in the release notes.

Hibernate

The first alpha release of Hibernate ORM 7.0.0 delivers: a migration to the Jakarta Persistence 3.2 specification, the latest version to be delivered in Jakarta EE 11; a baseline to JDK 17; a new XSD file that represents an extension of the Jakarta Persistence orm.xsd file that weaves in Hibernate-specific mapping features; and a migration from the Hibernate Commons Annotations (HCANN) to the new Hibernate Models project for low-level processing of an application domain model.

Hazelcast

The release of Hazelcast Platform 5.4 provides new features such as: Tiered Storage, a technology to ensure that frequently accessed (high-hit) data remains in fast memory and less frequently accessed (low-hit) data is stored on cheaper disks; a new CPMap data structure added to the Hazelcast CP Subsystem for improved data consistency; and a Thread-Per-Core architecture for both clients and cluster members to improve system performance. More details on this release may be found in the what's new page. Please note that these new features are for the enterprise version of Hazelcast.

Infinispan

Version 15.0.2 and 14.0.28 of Infinispan ship with notable changes such as: the OutdatedTopologyException not properly marshaled in the ThrowableExternalizer class; an instance of the QueryEngine class logs a DEBUG message for every query executed; and a migration from the Java ElementScanner8 to ElementScanner14 due to the former failing to compile in the ComponentAnnotationProcessor class. Further details on these releases may be found in the release notes for version 15.0.2 and version 14.0.28.

Apache Software Foundation

The release of Apache TomEE 9.1.3 provides dependency upgrades, a bug fix in which the TomEE Embedded Maven Plugin does not register Microprofile endpoints, and a new feature that introduces a placeholder replacement to enable the Simple MDB activation properties to be more customizable. More details on this release may be found in the release notes.

Versions 11.0.0-M19 and 9.0.88 of Apache Tomcat ship with notable changes such as: enhancements to the generation of cookie header; and a resolution to a regression when reloading TLS configuration and files. Version 11.0.0-M19 also finalizes the updates to the specification in the upcoming release of Jakarta EE 11. Further details on these releases may be found in the release notes for version 11.0.0-M19 and version 9.0.88.

The release of Apache Struts 6.4.0 delivers bug fixes, dependency upgrades and notable improvements such as: a change to the SecurityMemberAccess class to be extensible and a prototype bean to allow applications to easily extend its capabilities and for improved configuration loading; and replace the deprecated createInjectionTarget() method defined in the Jakarta CDI BeanManager interface with the recommended getInjectionTargetFactory() method. More details on this release may be found in the release notes.

OpenXava

The release of OpenXava 7.3 provides bug fixes, improvements in documentation, dependency upgrades and notable new features such as: compliance with the Open Web Application Security Project (OWASP) for improved security in OpenXava projects; an enhanced user experience and user interface; and improvements to the Calendar class. Further details on this release may be found in the release notes.

LangChain4j

Version 0.30.0 of LangChain for Java (LangChain4j) provides bug fixes and notable changes such as: the addition of getter methods and a change scope of attributes from protected to public in the AnthropicCreateMessageRequest class; and ​​support for template variables in the method parameter annotated with @UserMessage annotation. More details on this release may be found in the release notes.

JHipster Lite

The release of version 1.7.0 of JHipster Lite ships with bug fixes, dependency upgrades and new features/enhancements such as: the creation of an agnostic Java build properties for both Gradle and Maven; and provide an implementation of the AddJavaBuildProfile command in the GradleCommandHandler class. Further details on this release may be found in the release notes.

JDKUpdater

Versions 14.0.39+67 and 14.0.39+65 of JDKUpdater, a new utility that provides developers the ability to keep track of updates related to builds of OpenJDK and GraalVM. Introduced in mid-March by Gerrit Grunwald, principal engineer at Azul, these releases include: support for builds of OpenJDK maintained by Jabba; the addition of maintainer icons to switches in the Settings view; and a resolution to a minor issue related to number of remaining days display. More details on this release may be found in the release notes.

JDK Operator SDK

The release of Java Operator SDK 4.8.3 features dependency upgrades and notable changes such as: a resolution to allow an event to be received when an instance of the EventProcessor class is starting; and a change to the changeNamespaces() method defined in the Controller class to start the event processor a namespace change still needs to be processed. Further details on this release may be found in the release notes.

Jox

The release of Jox 0.2.0, a virtual threads library that implements an efficient Channel data structure in Java designed to be used with virtual threads, features a rename of methods ending in …safe() , such as sendSafe(), to …orClosed(), such as sendOrClosed(), as inspired by this paper related to Kotlin co-routines. More details on this release may be found in the release notes.

About the Author

Rate this Article

Adoption
Style

BT