This week’s Java roundup for March 27th, 2023 features news from OpenJDK, JDK 21, GlassFish 7.0.3, Spring point and milestone releases, Payara Platform, Quarkus 3.0.CR1, Micronaut 3.8.8, WildFly 28 Beta1, Hibernate ORM 6.2, Groovy 4.0.11, Camel 3.20.3, James 3.7.4, Eclipse Vert.x 4.4.1, JHipster Quarkus Blueprint 2.0, JHipster Lite 0.30, JBang 0.106, Gradle 8.1-CR2 and new Foojay.io calendar.
Andrew Haley, technical lead, Open Source Java at Red Hat, and Phil Race, consultant member of technical staff at Oracle, have been voted to the board to fill the two At-Large member positions, according to the results of the 2023 Governing Board Election. They will serve a one-year term beginning on April 1, 2023. InfoQ will publish a subsequent, more comprehensive news article.
JEP 444, Virtual Threads, was swiftly elevated from JEP Draft 8303683 to Candidate status, and then from Candidate to Proposed to Target status for JDK 21. This JEP proposes to finish this feature based on comments from the previous two preview rounds:
JEP 436, Virtual Threads (Second Preview), which was given in JDK 20; and JEP 425, Virtual Threads (Preview), which was released in JDK 19. This feature adds virtual threads, lightweight threads that make building, maintaining, and watching concurrent applications with high throughput significantly easier, to the Java platform. The most major modification introduced by JEP 436 is that virtual threads now allow thread-local variables without the possibility to opt out of utilizing them.
This InfoQ article and this JEP Café screencast by José Paumard, Java developer advocate, Java Platform Group at Oracle, provide further information about JEP 425. It is anticipated that the evaluation would end on April 7, 2023.
Version 7.2 of the Regression Test Harness for the JDK, jtreg, has been published and is prepared for JDK inclusion. The ability to execute tests using virtual threads is the most notable new feature. The release notes include further information about this version.
This past week, Build 16 of the JDK 21 early-access builds was released with improvements from Build 15 that address several bugs. The release notes provide further information about this build.
Mark Reinhold, chief architect of Oracle’s Java Platform Group, has recommended the following release plan for JDK 21.
- First phase of rampdown (fork from main line): June 8, 2023
- Phase Two of Decompression: July 20, 2023
- First Publication Target Date: August 10, 2023
- Final candidate release date: August 24, 2023
- The date of general availability is September 19, 2023.
Developers are urged to report JDK 21 problems using the Java Bug Database.
GlassFish 7.0.3 includes bug fixes, documentation enhancements, and upgraded dependencies, including Mojarra 4.0.2, EclipseLink 4.0.1, Helidon Config 3.2.0, and ASM 9.5. The release notes include further information about this version.
The Spring Integration team has announced that the Spring Integration Extension for Amazon Web Services (AWS) 3.0.0-M2 and Spring Cloud Stream Binder for AWS Kinesis 4.0.0-M1 projects have been moved to the AWS Java SDK.
Spring Cloud 2022.0.2, codenamed Kilburn, has been published with updates to Spring Cloud Vault 4.0.1, Spring Cloud Kubernetes 3.0.2, Spring Cloud OpenFeign 4.0.2, and Spring Cloud Config 4.0.2. With the loss of Spring Cloud CLI, Spring Cloud for Cloud Foundry, and Spring Cloud Sleuth, however, there are breaking changes. The release notes include further information about this version.
Spring Web Flow 3.0.0’s first release candidate includes the following new features: a migration of Spring Faces to Spring Framework 6, Jakarta EE, and JSF 4; and an upgrade of the JSF examples to Jakarta EE. The release notes include further information.
The March 2023 edition of the Payara Platform, which comprises Community Edition 6.2023.3, Enterprise Edition 5.49.0, and Payara Enterprise 6.0, has been released by Payara. These versions are now compatible with Jakarta EE 10 and MicroProfile 6.0. Note that a known problem is presently being investigated: when deploying an application that contains a Java Record, a warning about Records not being supported is logged in the server logs. The Payara team ensures that a deployed application will continue to function as planned.
Community Edition 6.2023.3 contains bug fixes, component upgrades, and enhancements, including: an update to the REST SSL alias extension for Payara 6; an upgrade of the cacerts.jks and keystore.jks certificates to PKCS#12; and the configuration of all SameSite cookie attributes for an HTTP network listener. The release notes include further information about this version.
Enterprise Version 5.49.0 includes the same bug fixes, component updates, and SameSite cookie enhancements as the Community Edition. The release notes include further information about this version.
Moreover, the Payara team has disclosed CVE-2023-28462, a vulnerability affecting server setups running JDK 8 with patches older than 1.8u191. This vulnerability allows a remote attacker to execute arbitrary code on a public-facing Payara Server installation through remote JNDI access via unprotected object request broker (ORB) listeners. It is recommended that developers install a version of JDK 8 greater than 1.8u191.
This past week, the first release candidate for Quarkus 3.0.0 was made available to the Java community, following six alpha releases and one beta release. Introduce an initial version of the non-application root path, /q/info, endpoint; use SmallRye BeanBag to initialize the Maven RepositorySystem interface for compatibility with Maven 3.9; and introduce a new plugin mechanism for the Quarkus command line interface. The release notes provide additional information.
Micronaut Framework 3.8.8 has been published by the Micronaut Foundation with bug fixes and upgrades to the following modules: Micronaut Data, Micronaut Views, Micronaut OpenAPI, Micronaut Security, and Micronaut Maven Plugin. Moreover, there was a dependency upgrade to Netty 4.1.90. The release notes include further information about this version.
Support for Micrometer, which includes integration of Micrometer with their implementation of the MicroProfile Fault Tolerance specification; and support for the MicroProfile Telemetry and MicroProfile Long Running Actions (LRA) requirements are included in the first beta version of WildFly 28. In addition, support for the MicroProfile Metrics and MicroProfile OpenTraining requirements was eliminated. The release notes include further information about this version.
After four release candidates, the final version of Hibernate ORM 6.2 includes support for structured SQL types, Java records, unified produced persisting values, database partitions, proprietary SQL types, and the SQL MERGE command for handling modifications to optional tables.
Software Foundation Apache
Paul King, chief software engineer at Object Computing, Inc., director at ASERT, and vice president of Apache Groovy, has announced the following three point releases of Apache Groovy. Developers may anticipate fewer point releases for Groovy 3.0 and 2.0 because the team will be concentrating on Groovy 5.0.
Version 4.0.11 contains bug corrections and new features, including asReversed() and reverseEach(), which map directly to the descendingSet() and descendingIterator() methods, respectively, specified in the NavigableSet interface; an update to ASM 9.5 as a requirement; and a new constant for JDK 21. The changelog provides further information about this release.
Version 3.0.17 includes bug fixes, documentation enhancements, and an ASM 9.5 dependent upgrade. This release’s changelog contains more information.
Similarly, version 2.5.22 includes bug fixes, documentation enhancements, and an ASM 9.5 dependent upgrade. The changelog provides further information about this release.
The release of Apache Camel 3.20.3 includes bug fixes, dependency upgrades, and new features/improvements, including: add health checks for components that have an extension for connectivity verification (camel-health); a user configuration file in the camel-jbang component; and favor instances of the CompositeMeterRegistry class in the Camel Registry API. The release notes provide additional information.
The release of Apache James 3.7.4 addresses CVE-2023-26269, Privilege Escalation through Unauthenticated JMX, a vulnerability in Apache James Server versions 3.7.3 and earlier that provides a JMX management service without authentication by default, allowing an attacker to gain privilege escalation access. The release notes include further information about this version.
Eclipse Vert.x 4.4.1 includes bug fixes and dependency upgrades to GraphQL-Java 20.1, Netty 4.1.90, SnakeYAML 2.0, Micrometer 1.10.5, and Apache Qpid Proton-J 0.3.0. The release notes and deprecations and breaking changes include further information about this release.
The JHipster team has released version 2.0.0 of the JHipster Quarkus Blueprint, which includes the following changes: fix OIDC settings for the production profile; update the blueprint dependencies and Quarkus to version 2.16.2; fix Keycloak authorization and Cypress tests; and fix SQL Docker images. The release notes include further information about this version.
JHipster Lite 0.30.0 includes bug fixes, dependency upgrades, and additions such as the removal of a duplicate JSON Web Token dependency, the addition of a getUsername() function to the ApplicationAuthorizations class, and a patch for Angular OAuth2 with Keycloak. The release notes include further information about this version.
JBang versions 0.106.0 and 0.106.1 include support for the usage of GPT in the jbang init command by accessing the ChatGPT API to initialize and generate a jbang script that attempts to execute the command line text. This YouTube video has further information on this new capability, and InfoQ will soon publish a more comprehensive news article.
Gradle 8.1’s second release candidate includes enhancements to the configuration cache, support for dependency verification, enhanced error reporting for Groovy closures, support for Java lambdas, and support for creating projects with JDK 20. The release notes include further information about this version.
The Friends of OpenJDK resource for Java developers, Foojay.io, has made its Java community calendar available for developers to explore and create events. Content may be added to the calendar without requiring a specific account, and it is monitored.