This week's Java roundup for September 26th, 2022, features news from OpenJDK, JDK 20, Alpaquita Linux, Native in Spring Boot 3.0-M5, GlassFish 7.0-M9, Open Liberty 22.0.0.10 and 22.0.0.11-beta, WildFly 27 Beta1, Micronaut 3.7.1, Quarkus 2.13, Hibernate ORM 5.6.12, Hibernate Reactive 1.1.8, Kotlin 1.7.20, TornadoVM 0.14.1, Apache Lucene 9.4, Camel Quarkus 2.13, Apache Tomcat updates and jConf.dev.
OpenJDK
A new JEP Draft JDK-8294349, Unnamed Local Variables and Patterns, has been submitted by Angelos Bimpoudis, principal member of technical staff for the Java language and Tools team at Oracle. This JEP, under the auspices of Project Amber, proposes to "enhance the Java language with unnamed local variables, which can be initialized but not read from, and with unnamed patterns, which match everything and bind nothing. Both are denoted with the underscore (_
) token."
Brian Goetz, Java language architect at Oracle, has proposed simplifying the Java language, writing:
At various points, we've explored the question of which program elements are most and least helpful for students first learning Java. After considering a number of alternatives over the years, I have a simple proposal for smoothing the "on ramp" to Java programming, while not creating new things to unlearn.
In this more detailed blog post, Goetz provided a comprehensive analysis on how to reduce the classic "Hello World" application as shown in the before and after table below:
Before | After |
|
|
This sparked a debate within the Java community that offered pros, cons and suggestions. InfoQ will monitor progress with this proposal.
JDK 20
Build 17 of the JDK 20 early-access builds was also made available this past week, featuring updates from Build 16 that include fixes to various issues. Further details on this build may be found in the release notes.
For JDK 20, developers are encouraged to report bugs via the Java Bug Database.
BellSoft
BellSoft has introduced Alpaquita Linux, an operating system tailored for the Java programming language. Based on Alpine Linux, this new operating system: enables the effective containerization of Java applications developed with Liberica JDK; improves security; contains new features for better performance; and allows developers to take advantage of native image technology through the Liberica Native Image Kit. InfoQ will follow up with a more detailed news story.
Spring Framework
After three years of developing the Spring Native experimental project, the Spring Boot team has announced that support for native Java will move to general availability with the upcoming releases of Spring Framework 6.0 and Spring Boot 3.0. Developers are encouraged to experiment with this latest milestone release of Spring Boot 3.0.0-M5 and provide feedback.
Eclipse GlassFish
The Eclipse Foundation has provided the ninth milestone release of GlassFish 7.0.0 featuring updated versions of Jakarta EE 10 components and an overhaul of the Deployment Object Library module. GlassFish 7.0.0-M9 compiles and runs on JDK 11 to JDK 19.
Open Liberty
IBM has promoted Open Liberty 22.0.0.10 from its beta release to deliver: simpler OpenID Connect Client configuration using issuer claims; and a fix for CVE-2022-34165, a vulnerability caused by improper validation of HTTP header injection in which an attacker can conduct various attacks against the vulnerable system, including cache poisoning and cross-site scripting.
Open Liberty 22.0.0.11-beta has also been released that introduces InstantOn, a new capability to reduce application startup time using Checkpoint/Restore In Userspace (CRIU). Other new features related to support for Jakarta EE 10 include: set any cookie attribute in Jakarta Servlet 6.0; simpler code compilation in Jakarta Mail 2.1; ensure correctness of data types in Jakarta Connectors 2.1; and enhancements to the Java Persistence Query Language (JPQL) and Criteria API in Jakarta Persistence 3.1.
WildFly
WildFly 27 Beta1 has been released that delivers new features such as: a technical preview of Micrometer Metrics; support for encryption and identity integrity in the FileSystemSecurityRealm
class; and support for use of an Infinispan cache as an EJB timer store. There were also dependency upgrades that include: Hibernate ORM 6.1, Infinispan 14, RESTEasy 6.2 and Weld 5. More details on this release may be found in the release notes.
Micronaut
The Micronaut Foundation has released Micronaut 3.7.1 featuring bug fixes and upgrades of Micronaut modules such as Micronaut CRaC, Micronaut SQL, and Micronaut Test. Developers who use Gradle to build Micronaut applications are encouraged to upgrade to Micronaut Gradle Plugins 3.6.2. Further details on this release may be found in the release notes.
Quarkus
Red Hat has released Quarkus 2.13.0.Final featuring: a prevention filter for RESTEasy Reactive to address to prevent Cross Site Request Forgery (CSRF) attacks; and a new Kafka Dev UI. More details on this release may be found in the release notes.
Hibernate
Hibernate ORM 5.6.12.Final has been released featuring a new method, getReference()
, added to the Session
interface designed to receive a detached instance and return a reference to the persistent instance with the same identity as the given detached instance. Further details on this release may be found in the list of issues.
Hibernate Reactive 1.1.8.Final has been released that ships with two notable fixes in which: a ClassCastException
is thrown when there is more than one lazy field on an entity; and an UnsupportedOperationException
is thrown when saving entities in the database. More details on this release may be found in the list of issues.
Kotlin
JetBrains has released Kotlin 1.7.20 featuring: support for several new plugins; a preview of the (..<
) operator for open-ended ranges; enabling the Kotlin/Native memory manager by default; the addition of inline classes with a generic underlying type, an experimental feature; and support for Gradle 7.1. Further details on this release may be found in the release notes.
TornadoVM
TornadoVM, an open-source software technology company, has released TornadoVM version 0.14.1 that ships with new features and improvements such: as the tornado
command is now a Python script having replaced the Bash script ; support for native tests on the SPIR-V backend; and improvement of the OpenCL and PTX tests of the internal APIs.
Juan Fumero, research associate, Advanced Processor Technologies Research Group at The University of Manchester, introduced TornadoVM at QCon London in March 2020 and has since contributed this more recent InfoQ technical article.
Apache Software Foundation
The Apache Tomcat team has published a report on CVE-2021-43980, a vulnerability in which a long standing, but difficult to trigger, concurrency bug in Apache Tomcat versions 10.1.0 to 10.1.0-M12, 10.0.0-M1 to 10.0.18, 9.0.0-M1 to 9.0.60 and 8.5.0 to 8.5.77 that could cause client connections to share an instance of the Http11Processor
class resulting in responses, or part responses, to be received by the wrong client. Developers are encouraged to follow the mitigation strategy for their applications.
Versions 10.1.0, 10.0.26 and 9.0.67 of Apache Tomcat were released. All three versions provide: support for authenticating WebSocket clients with an HTTP forward proxy when establishing a connection to a WebSocket endpoint via a forward proxy that requires authentication; various fixes for edge case bugs in expression language processing; and improved host header handling for HTTP/2 requests. More details on these releases may be found in the release notes for version 10.1.0, version 10.0.26, and version 9.0.67.
Apache Lucene 9.4.0 has been released featuring: new classes, ShapeDocValuesField
and ShapeField
, to support the existing LatLonShape
and XYShape
classes; a FacetSet
class may now be filtered using a Query
class via the MatchingFacetSetCounts
class; and support for JEP 424, Foreign Function & Memory API (Preview), one of the new features in JDK 19. Further details on this release may be found in the change log.
Maintaining alignment with Quarkus, Camel Quarkus 2.13.0, containing Camel 3.18.2 and Quarkus 2.13.0.Final, features native support for the JCache extension. More details on this release may be found in the list of issues.
jConf.dev Conference
The jConf.dev conference was held at the Isadore and Sadie Dorin Forum, University of Illinois in Chicago, Illinois this past week featuring many speakers from the Java community who delivered presentations and workshops focused on Java, Cloud, JVM Languages and Big Data. There was also a one-day Foojay Day session featuring a keynote entitled "The New Excitement Around The Good Old Java" by Venkat Subramaniam.