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: JDK 21 in Rampdown, JEP 404, JDK 22 Expert Group, Jakarta EE 11 Updates

Java News Roundup: JDK 21 in Rampdown, JEP 404, JDK 22 Expert Group, Jakarta EE 11 Updates

This week's Java roundup for June 5th, 2023, features news from OpenJDK, JDK 21 in Rampdown, JDK 22 expert group, Jakarta EE 11 update, Spring Security Kerberos 2.0.0, Quarkus 3.1.1, Micronaut 3.9.3, Eclipse Vert.x 4.4.3, Apache Commons IO 2.13, Apache Tomcat 11.0.0-M7 and 9.0.76, Infinispan 14.0.10 and 13.0.17, JHipster Lite 0.34, OpenXava 7.1.1, Yupiik Fusion 1.0.3, Gradle 8.2-RC2 and JNation.

OpenJDK

JEP 453, Structured Concurrency (Preview), has been promoted from Proposed to Target to Targeted for JDK 21. Formerly a incubating API, this initial preview incorporates enhancements in response to feedback from the previous two rounds of incubation: JEP 428, Structured Concurrency (Incubator), delivered in JDK 19; and JEP 437, Structured Concurrency (Second Incubator), delivered in JDK 20. The only significant change features the fork() method, defined in the StructuredTaskScope class, returns an instance of TaskHandle rather than a Future since the get() method in the TaskHandle interface was restructured to behave the same as the resultNow() method in the Future interface. More details on this JEP may be found in this detailed InfoQ news story.

JEP 446, Scoped Values (Preview), has been promoted from Proposed to Target to Targeted for JDK 21. Formerly known as Extent-Local Variables (Incubator), this JEP is now a preview feature following JEP 429, Scoped Values (Incubator), delivered in JDK 20. This JEP proposes to enable sharing of immutable data within and across threads. This is preferred to thread-local variables, especially when using large numbers of virtual threads. InfoQ will follow-up with a more detailed news story.

Roman Kennke, principal engineer at AWS and owner of JEP 404, Generational Shenandoah (Experimental), has proposed to drop this JEP from JDK 21 due to the "risks identified during the review process and the lack of time available to perform the thorough review that such a large contribution of code requires." The Shenandoah team has decided to "deliver the best Generational Shenandoah that they can" and will seek to target JDK 22. The review is expected to conclude on June 14, 2023.

JDK 21

Build 26 of the JDK 21 early-access builds was also made available this past week featuring updates from Build 25 that include fixes to various issues. Further details on this build may be found in the release notes.

As per the JDK 20 release schedule, Mark Reinhold, chief architect, Java Platform Group at Oracle, formally declared that JDK 21 has entered Rampdown Phase One. This means that the main-line source repository has been forked to the JDK stabilization repository and no additional JEPs will be added for JDK 21. Therefore, the final set of 15 features for the GA release in September 2023 will include:

This feature set assumes that the proposal to remove the aforementioned JEP 404, Generational Shenandoah (Experimental), originally targeted for JDK 21, will be approved.

For JDK 21, developers are encouraged to report bugs via the Java Bug Database.

JDK 22

JSR 397, Java SE 22, was submitted this past week to formally announce the six-member expert group for JDK 22, namely Simon Ritter (Azul Systems), Manoj Palat (Eclipse Foundation), Andrew Haley (Red Hat), Christoph Langer (SAP SE), Iris Clark (Oracle) and Brian Goetz (Oracle). Clark and Goetz will serve as the specification leads. Other notable dates at this time include a public review from January 2024 through February 2024 and the GA release in March 2024.

Build 0 and Build 1 of the JDK 22 early-access builds were also made available this past week featuring the initial set of release updates.

Jakarta EE

Ivar Grimstad, Jakarta EE developer advocate at the Eclipse Foundation, announced in his Hashtag Jakarta EE weekly blog that the requests for plan review for Jakarta EE 11 have been submitted ahead of the May 30, 2023 deadline. Developers can expect updates to the Jakarta Authentication 3.1, Jakarta Authorization 3.0, Jakarta Concurrency 3.1, Jakarta Contexts and Dependency Injection 4.1, Jakarta Expression Language 6.0, Jakarta Faces 5.0, Jakarta RESTful Web Services 4.0, Jakarta Server Pages 4.0, Jakarta Persistence 3.2, Jakarta Security 4.0, Jakarta Servlet 6.1 and Jakarta WebSocket 2.2 specifications with the release of Jakarta EE 11, scheduled for the first quarter of 2024.

It is also important to note that the Jakarta Data 1.0, Jakarta NoSQL 1.0 and Jakarta MVC 3.0 specifications with approved release plans, are currently considered as standalone, i.e., they haven’t yet been incorporated into the Platform, Web or Core profiles of Jakarta EE.

Spring Framework

The release of Spring Security Kerberos 2.0.0 delivers notable changes such as: backwards compatible support for JDK 8; wrap the execution of the UserDetailsService interface in a PrivilegedAction interface so that it can reuse Kerberos authentication; and a fix for a NotSerializableException with the JaasSubjectHolder class. More details on this release may be found in the list of issues.

Quarkus

Red Hat has released Quarkus 3.1.1.Final featuring dependency upgrades and notable changes such as: properly catch non-unique result exceptions with Security Jakarta Persistence Reactive; prevent a NullPointerException in preparation of Jacoco reports when a workspace module has no sources; a fix for the @NamedNativeQuery annotation not working in Hibernate Reactive when converting to native image; and a fix for Quarkus 3.1 throwing an IllegalStateException exception if the @Produces annotation is not defined on a stream response. Further details on this release may be found in the release notes.

Micronaut

The Micronaut Foundation has released Micronaut Framework 3.9.3 featuring bug fixes and updates to modules: Micronaut Servlet and Micronaut AWS. There was also a dependency upgrade to Netty 4.1.92. More details on this release may be found in the release notes.

The third release candidate of Micronaut 4.0 delivers bug fixes and improvements such as: add a default method to the overloaded set of writeValueAsString() methods in the JsonMapper interface; improved exception handling on scheduled jobs; and a new parameter, missingBeans=EndpointSensitivityHandler.class, for the @Requires annotation on the EndpointsFilter class to convey that endpoint sensitivity is handled externally and the filter will not be loaded. Further details on this release may be found in the release notes.

Eclipse Vert.x

Eclipse Vert.x 4.4.3 has been released with dependency upgrades and notable fixes such as: a broken tracing integration with the JDBC SQL client; an IndexOutOfBoundsException from the serviceName() method in the GrpcMethodCall class; and a NullPointerException from the updateSSLOptions() method in the HttpServer interface due to a null instance of the SSLHelper class. More details on this release may be found in the release notes and deprecations and breaking changes.

Version 4.4.3.1 of the Vert.x JDBC Client has also been released to fix an IP address parsing regression introduced in Vert.x 4.4.3. Developers who use the vertx-jdbc-client module should upgrade to this dependency until an upgrade to the next full stack release is provided.

Apache Software Foundation

The release of Apache Commons IO 2.13.0 delivers notable changes such as: a fix for the FileAlreadyExistsException from the createParentDirectories() method in the PathUtils class; reset the setCharset(null) and setCharsetEncoder(null) methods in the ReaderInputStream.Builder class to return a default object instead of throwing a NullPointerException; and add missing conversions to the subclasses of the AbstractOrigin class. Further details on this release may be found in the release notes.

Versions 11.0.0-M7 and 9.0.76 of Apache Tomcat both ship with: support for JDK 21 and virtual threads; a new RateLimitFilter class to help mitigate Denial of Service and Brute Force attacks by limiting the number of a requests that are allowed from a single IP address within a given time window; and a dependency upgrade to Tomcat Native to 2.0.4 which includes binaries for Windows built with OpenSSL 3.0.9. More details may be found in the changelogs for version 11.0.0-M7 and version 9.0.76.

Infinispan

Infinispan 14.0.10.Final provides notable changes such as: Spring Framework 6.x and Spring Boot 3.x dependency upgrades; a fix to the IPv6 wildcard address when detecting multihoming; and an implementation of the the conditional methods, computeIfAbsent() and computeIfPresent(), in the RemoteCache interface. Further details on this release may be found in the release notes.

Similarly, Infinispan 13.0.17.Final features notable changes such as: eliminate the corruption of binary files by not filtering binary resources; an issue where a JNDI data source is not available when deploying to Tomcat by lazily initiating the data source from the getConnection() method in the ManagedConnectionFactory class; and correct the documented port number in the property file examples in the Spring Boot starter documentation. More details on this release may be found in the release notes.

JHipster

The JHipster team has released version 0.34.0 of JHipster Lite with many dependency upgrades and notable enhancements such as: the removal of unused local variables; the replacement of concatenating strings with text blocks; and improvements in the React application. Further details on this release may be found in the release notes.

OpenXava

Version 7.1.1 of OpenXava has been released featuring dependency upgrades and the ability to visit a website resource that is annotated with @HtmlText. More details on this release may be found in the release notes.

Yupik

Version 1.0.3 of Yupiik Fusion has been released with notable changes such as: support for kubeconfig files in Kubernetes Client libraries; improved reuse of the CliAwaiter class; and expose the prepare() method in the KubenetesClient class by changing the access specifier from private to public. Further details on this release may be found in the release notes.

Gradle

The second release candidate of Gradle 8.2 features improvements such as: continued improvements to the Kotlin DSL reference documentation, clean and actionable error reporting for the console output, and dependency verification that mitigates security risks with compromised dependencies; and the simple property assignment operator (=) operator, introduced in the Kotlin DSL with the last release, is enabled by default. More details on this release may be found in the release notes.

JNation Conference

The JNation conference was held at the Convento São Francisco in Coimbra, Portugal, this past week featuring many speakers from the Java community who presented sessions and workshops on topics such as Project Loom, JavaScript, Java on ARM, WebAssembly, Kubernetes and GraalVM.

About the Author

Rate this Article

Adoption
Style

BT