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, GraalVM for JDK 21, Apache Pinot 1.0, Eclipse Epicyro 3.0

Java News Roundup: JDK 21, GraalVM for JDK 21, Apache Pinot 1.0, Eclipse Epicyro 3.0

This week's Java roundup for September 18th, 2023, features news from OpenJDK, JDK 22, JDK 21, GraalVM, Corretto, Liberica, Epicyro 3.0, Pinot 1.0, and releases for: Spring Boot; Spring Integration; Spring Batch; Spring Cloud Dataflow; Spring Security; Spring GraphQL; Spring Authorization Server; Spring Apache Pulsar; Spring Modulith; Quarkus; Open Liberty; Micronaut; Hibernate; OpenXava; and Gradle.

OpenJDK

Daniel Smith, programming language designer at Oracle, has submitted JEP 8316779, Value Object Storage Enhancements (Preview). Under the auspices of Project Valhalla, this JEP introduces null-restricted storage of value objects in fields and array components. "These variables are initialized to an initial instance of the class and reject attempts to write a null value. They can be optimized with compact, flattened object encodings."

JDK 21

Oracle has released version 21 of the Java programming language and virtual machine, which ships with a final feature set of 15 JEPs. More details may be found in this InfoQ news story.

JDK 22

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

With no objections to the proposed JDK 22 release schedule, Mark Reinhold, chief architect, Java Platform Group at Oracle, has declared the following release schedule as final:

  • Rampdown Phase One (fork from main line): December 7, 2023
  • Rampdown Phase Two: January 18, 2024
  • Initial Release Candidate: February 8, 2024
  • Final Release Candidate: February 22, 2024
  • General Availability: March 19, 2024

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

GraalVM

In conjunction with the release of JDK 21, GraalVM for JDK 21 has also been released by Oracle Labs. new features include: full support for JDK 21; performance enhancements with Profile-Guided Optimizations; a new application levels policy for faster compilation time; and improved developer experience with a new CLI options, --parallelism and --color, for specifying the number of threads and output color during builds, respectively. More details on this release may be found in the release notes. InfoQ will follow up with a more detailed news story.

On the road to version 1.0, Oracle Labs has released version 0.9.27 of Native Build Tools, a GraalVM project consisting of plugins for interoperability with GraalVM Native Image. This latest release provides bug fixes and improvements for GraalVM for JDK 21. Further details on this release may be found in the changelog.

Amazon Corretto

Amazon has released Amazon Corretto 21, their downstream distribution of OpenJDK 21, which is available on Linux, Windows, and macOS. Developers may download this latest version from this site.

BellSoft Liberica JDK

Similarly, BellSoft has released Liberica JDK 21, their downstream distribution of OpenJDK 21. Developers may download this latest version from this site.

Spring Framework

The third milestone release of Spring Boot 3.2.0 delivers bug fixes, dependency upgrades and new feature such as: add the ConnectionDetails interface and @ServiceConnection annotation to the configuration in Spring for Apache Pulsar; provide an instance of the RestClientBuilderConfigurer class to apply Spring Boot defaults to a custom RestClient.Builder interface; and remove the use of the deprecated ServerHttpObservationFilter class for WebFlux instrumentation. More details on this release may be found in the release notes.

Similarly, versions 3.1.4, 3.0.11 and 2.7.16 of Spring Boot provide improvements in documentation, dependency upgrades, a TWENTY_ONE enum constant to the JavaVersion enum class, and notable bug fixes such as: the Saml2RelyingPartyAutoConfiguration class ignores the value set in the sign-request property when using the metadata-url query; a leaking file descriptor and socket within DomainSocket class; and an invalid Accept request HTTP header produces an HTTP 500 Internal Server Error when using the WelcomePageHandlerMapping class. Further details on these releases may be found in the release notes for version 3.1.4, version 3.0.11 and version 2.7.16.

The third milestone release of Spring Integration 6.2.0 ships with dependency upgrades and notable changes such as: a refactor of the KafkaMessageDrivenChannelAdapter class for future maintenance to avoid code duplication; new overloaded executeLocked() methods added to the LockRegistry interface to follow best practice and well-known patterns with the JdbcTemplate, RestTemplate and JmsTemplate classes; and support for custom instances of the DefaultSftpSessionFactory class. More details on this release may be found in the release notes.

The third milestone release of Spring Batch 5.1.0 provides bug fixes, improvements in documentation and new features such as: auto-configure the JobRegistryBeanPostProcessor class with @EnableBatchProcessing annotation and the DefaultBatchConfiguration class for improved job registration with the JobRegistry interface; the ability to specify a database type via a new parameter in the @EnableBatchProcessing annotation; and the ability to provide a custom JobKeyGenerator interface in the JdbcJobInstanceDao class. Further details on this release may be found in the release notes.

The release of Spring Cloud Dataflow 2.11.0 delivers bug fixes, dependency upgrades and support for: Spring Boot 3.x-based stream applications; Spring Cloud Task 3.x-based task applications; and Spring Batch 5.x-based batch applications. There was also an upgrade to the Kubernetes batch/v1 cron job so that developers can now use Kubernetes 1.25.0 and above. More details on this release may be found in the release notes.

Versions 6.2.0-M1, 6.1.4, 6.0.7 and 5.8.7 of Spring Security have been released featuring fixes for CVE-2023-34042, Incorrect Permission Assignment for spring-security.xsd, a vulnerability in which the spring-security.xsd file, found inside the spring-security-config JAR archive, is world writable and could result in an exploit. Developers are encouraged to upgrade to these releases. Further details on these releases may be found in the release notes for version 6.2.0-M1, version 6.1.4, version 6.0.7 and version 5.8.7.

Versions 1.2.3, 1.1.6 and 1.0.5 of Spring for GraphQL have been released delivering bug fixes, improvements in documentation, dependency upgrades and new features such as: the ability to access object type extensions (to complement object types) using the ConnectionTypeDefinitionConfigurer class; raise a Spring Security AuthenticationCredentialsNotFoundException to require authentication when an instance of the Java Principal interface is not present and not declared as Optional; and enhancements to the GraphQL request body checks to prevent an HTTP 500 Internal Server Error. These releases may be consumed with Spring Boot versions 3.1.4, 3.0.11 and 2.7.16, respectively. More details on these releases may be found in the release notes for version 1.2.3, version 1.1.6 and version 1.0.5.

The first milestone release of Spring Authorization Server 1.2.0 ships with bug fixes, dependency upgrades and new features such as: the ability to inject custom metadata to improve client registration; new code challenge methods for OIDC provider configuration response; and improvements in logging with the CodeVerifierAuthenticator class. Further details on this release may be found in the release notes.

The second milestone release of Spring for Apache Pulsar 1.0.0 features notable changes such as: the ability to add multiple customizers to the PulsarAdministration, DefaultPulsarConsumerFactory, DefaultPulsarReaderFactory and DefaultReactivePulsarSenderFactory classes; and move the cache provider modules source files from the default spring.pulsar.core package to a package that is specific to the module name to avoid any confusion with the Java module system. More details on this release may be found in the release notes.

Versions 1.1.0-M1 and 1.0.1 of Spring Modulith have been released providing bug fixes, improvements in documentation, dependency upgrades and new features such as: support to externalize domain events into messaging middleware (Kafka, AMQP, JMS, etc.) by registering an @ApplicationEventListener; a new Neo4j event publication repository; and new interfaces - CompletedEventPublications, IncompleteEventPublications and EventPublicationRepository - for improved handling of completed and incomplete event publications. Further details on these releases may be found in the release notes for version 1.1.0-M1 and version 1.0.1.

Quarkus

The release of Quarkus 3.4.1 features support for Redis 7.2 and changes in support for the Flyway extension that include: the ability to disable the automatic setup of the Flyway extension by setting the quarkus.flyway.enabled property to false; and declare a datasource as inactive for a specific datasource and named datasource by setting the quarkus.flyway.active and quarkus.flyway.<datasourceName>.active properties, respectively, to false. More details on this release may be found in the changelog.

Open Liberty

IBM has released version 23.0.0.9 of Open Liberty that provides support for: Spring Boot 3.0 requiring Jakarta EE 10, Spring Security 6.x, and a new server template named springBoot3; support for Private Key JWT authentication with OpenID Connect token endpoints; and the ability to set the LTPA or JWT cookie path to the application context root to allow for different LTPA and JWT tokens for different applications.

Micronaut

The Micronaut Foundation has released version 4.1.2 of the Micronaut featuring Micronaut Core 4.1.6 and updates to the Micronaut Data module. Further details on this release may be found in the release notes.

Hibernate

Versions 6.3.1.Final and 6.2.9.Final of Hibernate ORM have been released that ship with bug fixes and improvements in query methods and finder methods. More details on these releases may be found in the release notes for version 6.3.1.Final and version 6.2.9.Final.

Eclipse Foundation

Shortly after it was introduced by OmniFishEE, Eclipse Epicyro 3.0 has formally been released as a standalone implementation of the Jakarta Authentication 3.0 specification. This new project will define a general low-level SPI for authentication mechanisms, controllers that interact with a caller and a container's environment to obtain the caller's credentials. These will be validated and pass an authenticated identity (such as name and groups) to a container.

Apache Software Foundation

The release of Apache Pinot 1.0.0, a realtime distributed OLAP datastore, delivers bug fixes, enhancements and new features such as: initial support for Query runtime for Window Functions using ORDER BY clause within the OVER() clause; an early termination in the execution of the SortOperator class if the LIMIT clause is used; and support for partition-based leaf stage processing. Further details on this release may be found in the release notes. InfoQ will follow up with a more detailed news story.

OpenXava

The release of OpenXava 7.1.6 ships with notable fixes such as: improvements in the interactions between the @ElementCollection and @DescriptionsList annotations; grouping after filtering or sorting a list fails with the @Tab annotation if it contains a baseCondition parameter and an instance of the IFilter interface; and an instance of the IForwardAction interface does not work if the application is behind a proxy. More details on this release may be found in the release notes.

Gradle

The first release candidate of Gradle 8.4 delivers: initial support for JDK 21 only to compile, test, and run Gradle projects since Kotlin does not yet support JDK 21; improved compilation on Windows OS; a simplified way to create role-focused instances of the Configuration interface using the ConfigurationContainer interface; and improved support for the Kotlin DSL. Further details on this release may be found in the release notes.

About the Author

Rate this Article

Adoption
Style

BT