This week's Java roundup for August 30th, 2021, features news from SpringOne in which the roadmap of Spring Framework 6.0 and Spring Boot 3.0 was revealed, updates to OpenJDK JEPs, JDK 18, updates to the Quarkus 2.1 and 2.2 release trains, MicroProfile API release candidates, Open Liberty 21.0.0.9, Hibernate 5.6.0.Beta1, GraalVM Native Build Tools 0.9.4 and a new JHipster project for Helidon.
OpenJDK
JEP 400, UTF-8 by Default, has been promoted from Proposed to Target to Integrated status for JDK 18. This JEP specifies that UTF-8 is the default character set of the standard Java APIs to ensure consistency across all implementations, operating systems, locales, and configurations.
One week after having been promoted to Proposed to Target status, JEP 413, Code Snippets in Java API Documentation, has been promoted to Targeted status for JDK 18. This JEP introduces the @snippet
tag for Oracle's Standard Doclet, the well-known Java API documentation utility that produces the default HTML-formatted output. The intent is to simplify the inclusion of example source code in API documentation.
JEP 418, Internet-Address Resolution SPI, has been promoted from Draft to Candidate status. This JEP proposes to define a service-provider interface for host name and address resolution, so that java.net.InetAddress
may take advantage of resolvers other than the default built-in OpenJDK resolver.
Geertjan Wielenga, senior director of Open Source Projects at Azul, has kicked off a "Works with OpenJDK" campaign to highlight applications that are built on top of OpenJDK. Java developers are encouraged to add a badge, as shown below. For example, the badge could be added within the README.md
file of the application's GitHub repository.
JDK 17
JDK 17 remains in its release candidate phase with the anticipated GA release on September 14, 2021. InfoQ will follow-up with a more detailed news story.
JDK 18
Build 13 of the JDK 18 early-access builds was made available this past week featuring updates from Build 12 that include fixes to various issues. More details may be found in the release notes.
For both JDK 17 and JDK 18, developers are encouraged to report bugs via the Java Bug Database.
Quarkus
Red Hat has made available point releases for the Quarkus 2.1 and 2.2 release trains.
Quarkus 2.2.1.Final, defined as a hardening release that fixes issues and improves usability and documentation, features an upgrade to GraalVM 21.2; the ability to disable all DevServices by adding the property quarkus.devservices.enabled=false
; an enhanced thread model for RESTEasy Reactive to choose blocking or non-blocking depending on the REST methods; introduces support for MongoDB service binding, and an extension for running Narayana Long-Running Actions.
Quarkus 2.1.4.Final, the fourth maintenance release, featuring: a fix to the "Unable to connect to DOCKER_HOST URI'' error when quarkus.redis.devservices.enabled=false
is applied in the application.properties
file; removing unnecessary DevServices shutdown hooks; resolving the internal server error using the /q/dev/3
endpoint; and removing the warning upon applying the recommended property quarkus.smallrye-metrics.jaxrs.enabled=true
over the deprecated property quarkus.resteasy.metrics.enabled=true
. More details may be found in the changelog.
Open Liberty
IBM has released Open Liberty 21.0.0.9 featuring support for MicroProfile 4.1, autonomous transactional peer recovery among groups of peer application servers; and the new logging format, TBASIC
, introduced earlier this year, has been made available to the consoleFormat
and messageFormat
logs to complement existing support for the traceFormat
log.
Spring Framework
Announced at SpringOne this past week, Spring Framework 6.0 and Spring Boot 3.0 will include a JDK 17 and Jakarta EE 9 baseline. Planned for a 4Q2022 release, VMware states this baseline will "provide significant benefits in our API design and integration efforts, shining through to your application code and future-proofing the framework as well as your applications for many years to come." InfoQ will follow-up with a more detailed news story.
The second milestone release of Spring GraphQL 1.0.0 was made available featuring a new annotation model for GraphQL controllers along with the usual bug fixes. Further details may be found in the list of issues.
Hibernate
The first beta version of Hibernate ORM 5.6.0 features supporting changes in Hibernate Reactive within the core of Hibernate ORM and improvements to benchmarking and runtime performance. Hibernate considers version 5.6.0 to serve as a gateway to the upcoming Hibernate ORM 6.0. To that end, Hibernate has removed support for Javassist in favor of Byte Buddy, which has been available since Hibernate ORM 5.3.
MicroProfile
On the road to MicroProfile 5.0, scheduled for a 4Q2021 release, seven of the eight home-grown APIs have release candidates available for review:
- Config 3.0-RC4
- Health 4.0-RC1
- Metrics 4.0-RC1
- Rest Client 3.0-RC2
- Fault Tolerance 4.0-RC2
- Open Tracing 3.0-RC2
- Open API 3.0-RC1
MicroProfile JWT 2.0-RC1 will be made available soon.
GraalVM
Oracle Labs has released version 0.9.4 of Native Build Tools, a GraalVM project consisting of plugins for interoperability with GraalVM Native Image. This release provides a workaround for Maven and Gradle handling long classpaths on the Windows operating system. Instead of passing all entries on classpath, the Gradle plugin will automatically generate a fat JAR with the option to disable this workaround. For Maven users, it will be necessary to configure builds using the maven-shade-plugin
.
JHipster Generator for Helidon Projects
Dmitry Aleksandrov, software developer at Oracle, has introduced a new project, JHipster Helidon 0.0.1, a JHipster project that generates Helidon applications. Still under construction, Aleksandrov is soliciting feedback from the Java community.