Java, the versatile and ever-evolving programming language, continues to make headlines with a flurry of exciting developments in the Java ecosystem. In this comprehensive news roundup, we’ll dive into the latest updates, from new JEP (Java Enhancement Proposal) candidates to advancements in Spring Cloud, GlassFish, Helidon, Open Liberty, and Apache Camel. Let’s explore the vibrant world of Java innovation!
A new week brings a new Java news roundup, and this one is packed with exciting developments. From new JEP candidates to updates on Spring Cloud, GlassFish, Helidon, Open Liberty, and Apache Camel, there’s something for everyone in this week’s roundup.
The Java Enhancement Proposals (JEPs) you mentioned represent significant changes and improvements to the Java programming language and the OpenJDK platform:
- JEP 457 – Class-File API (Preview): This proposal aims to provide an API for parsing, generating, and transforming Java class files. Initially, it will serve as an internal replacement for ASM, a widely used Java bytecode manipulation framework. The goal is to modernize and replace ASM, which is considered outdated and has legacy issues. Eventually, the Class-File API will become a public API, making it easier for developers to work with Java class files directly.
- JEP 456 – Unnamed Variables and Patterns: This JEP builds upon a previous feature introduced in JDK 21 (JEP 443) known as Unnamed Patterns and Variables (Preview). It enhances the Java language by introducing the concept of unnamed patterns and variables denoted by the underscore character (_). Unnamed patterns allow matching record components without specifying their names or types, while unnamed variables can be initialized but not used directly. This feature enhances the expressiveness of Java’s pattern matching capabilities.
- JEP 455 – Primitive types in Patterns, instanceof, and switch (Preview): This JEP focuses on improving pattern matching in Java by allowing primitive type patterns to be used in all pattern contexts. It aligns the semantics of primitive type patterns with the instanceof operator and extends the switch statement to accept primitive constants as case labels. This enhancement simplifies pattern matching when dealing with primitive types and improves the consistency of the language.
These JEPs reflect ongoing efforts to enhance Java’s expressiveness, maintainability, and performance while addressing issues and limitations in the existing language and libraries. They demonstrate Java’s commitment to evolving and staying relevant in modern software development.
In the world of Java development, there are some notable updates and releases to be aware of:
- JDK 22 Build 17:
The latest early-access build of JDK 22, known as Build 17, is now available. This build includes various fixes and improvements compared to Build 16. Detailed information about the changes in this build can be found in the release notes. Developers are encouraged to report any bugs they encounter via the Java Bug Database.
- Eclipse GlassFish 7.0.9:
Eclipse GlassFish, in its ninth maintenance release labeled as 7.0.9, brings several important updates and fixes. These include addressing issues like IllegalArgumentException during the deployment of applications with EJB remote interfaces, multiple invocations of the contextInitialized() method in ServletContextListener, and problems related to the stop-local-instance command line parameter. For more in-depth information about these changes, you can refer to the release notes.
- Project Jextract
These updates and releases signify the ongoing efforts to maintain and improve Java development tools and platforms, ensuring a smoother and more reliable experience for developers working with the Java ecosystem.
The latest release in the early-access builds of Project Jextract, Build 21-jextract+1-2, is now available to the Java community. This build is based on JDK 21. However, developers using MacOS Catalina or higher should take note that they will need to remove the quarantine attribute from the bits before using the jextract binaries.
As part of Project Panama, many features have transitioned from early-access builds to incubating JEPs (Java Enhancement Proposals). However, jextract, a tool designed to mechanically generate Java bindings from native library headers, remains as the sole feature under Project Jextract. Therefore, it will continue to be maintained as its own distinct project.
- Spring Framework
The second milestone release of Spring Cloud 2023.0.0, known as Leyton, has been unveiled with some notable updates. These include the migration of all Spring Cloud project documentation to Antora, a multi-repository documentation site generator. Additionally, sub-projects like Spring Cloud Commons 4.1.0-M2, Spring Cloud Starter Build 2023.0.0-M2, and Spring Cloud Kubernetes 3.1.0-M2 have received milestone upgrades. For more in-depth information about this release, you can refer to the release notes.
- Helidon
The first release candidate of Helidon 4.0.0 is now available, bringing with it a range of improvements and changes. These include bug fixes, updates to dependencies, and significant changes like a major refactoring and stabilization of APIs. Additionally, this release introduces support for HTTP/2 and marks the WebServer and WebClient components as feature-complete. For a more comprehensive overview of this release, please consult the release notes.
- Open Liberty
IBM has introduced Open Liberty version 23.0.0.10-beta, which includes several enhancements and new features. These updates encompass support for JDK 21 and the upcoming MicroProfile 6.1 release, improved startup times for Spring Boot applications using Spring Boot 3.0, InstantOn with Coordinated Restore at Checkpoint (CRaC), a beta 3 implementation of the Jakarta Data specification, and the automatic generation and rotation of Lightweight Third Party Authentication (LTPA) keys without causing disruptions to the application’s user experience.
- Apache Software Foundation
Apache Camel has released versions 4.0.1 and 3.21.1, featuring several significant improvements. These enhancements include the introduction of a tracing strategy for OpenTelemetry to trace each processor, the masking of environment variables with the name ‘secret’ in logs, and the prevention of proxy protocol usage in producer endpoints. For more information, you can refer to the release notes for version 4.0.1 and version 3.21.1.
- JHipster
JHipster Lite has recently released version 0.43.0, which includes a variety of updates. These updates encompass bug fixes, dependency upgrades, and several new features and enhancements. Some notable changes include splitting the original LogsSpy class into two separate classes, LogsSpy and LogsSpyExtension, to adhere to the single-responsibility principle and eliminate the exposure of JUnit5 related methods. Additionally, the release replaces the usage of the Sinon JavaScript framework with Vitest. For a more detailed overview of this release, you can refer to the release notes.
- JDKMon
JDKMon, a tool designed for monitoring and updating installed JDKs, has released versions 17.0.77 and 17.0.75. These new versions come with updated documentation that covers the latest updates and include a link to the GitHub releases within the About dialog box.
- JobRunr
JobRunr, a Java library for background processing with persistent storage, has released version 6.3.2. This update includes bug fixes, dependency upgrades, and introduces support for GraalVM Native executable in Quarkus. You can find more information about this release in the release notes.
- Yupiik
The release of Yupiik Fusion 1.0.8 introduces new features, including:
- Ensuring span tags are only strings to simplify mapping.
- Support for enum types.
- Improved template handling.
- The addition of new classes, RateLimiter and RateLimitedClient, to support rate limiting.
- Gradle
The third release candidate of Gradle 8.4 includes several notable updates:
- Initial support for JDK 21, allowing you to compile, test, and run Gradle projects with JDK 21. Note that this support is limited due to Kotlin not yet fully supporting JDK 21.
- Enhanced compilation support on the Windows operating system.
- A simplified method to create role-focused instances of the Configuration interface using the ConfigurationContainer interface.
- Improved support for the Kotlin DSL.
The Java ecosystem continues to thrive, with exciting developments in JEP candidates, Spring Cloud, GlassFish, Helidon, Open Liberty, and Apache Camel. These advancements empower Java developers to build more efficient, scalable, and innovative solutions. As the world of Java programming evolves, staying updated with these developments is crucial for developers looking to leverage the full potential of this versatile language.That’s it for this week’s Java news roundup. Be sure to check back next week for more updates on the latest Java developments.