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 22 RC2, Multiple Releases in the Spring Ecosystem, Payara Platform

Java News Roundup: JDK 22 RC2, Multiple Releases in the Spring Ecosystem, Payara Platform

This week's Java roundup for February 19th, 2024, features news highlighting: JDK 22 in release candidate 2, the February 2024 edition of the Payara Platform, numerous milestone and point releases in the Spring ecosystem, multiple releases of Apache Tomcat and Log4j and Gradle 8.7-RC1.

OpenJDK

Build 22-jextract+3-13 of the Project Jextract, also known as Project Panama, early-access builds, have been made available to the Java community and are based on the upcoming GA release of JDK 22.

Similarly, Build 23-loom+2-48 of the Project Loom early-access builds have also been made available. These are based on Build 10 of the JDK 23 early-access builds and improves the implementation of Java monitors, i.e., synchronized methods, to work better with virtual threads.

JDK 23

Build 11 of the JDK 23 early-access builds was made available this past week featuring updates from Build 10 that include fixes for various issues. More details on this release may be found in the release notes.

JDK 22

Build 36 remains the current build in the JDK 22 early-access builds. Further details on this build may be found in the release notes.

Mark Reinhold, Chief Architect, Java Platform Group at Oracle, has announced that JDK 22 has entered its second release candidate due to having fixed a conformance issue in Build 36. The anticipated GA release is scheduled for March 19, 2024.

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

GraalVM

Oracle Labs has released version 0.10.1 of Native Build Tools, a GraalVM project consisting of plugins for interoperability with GraalVM Native Image. This latest release provides notable changes such as: a resolution for a FileSystemAlreadyExistsException from the newFileSystem() method defined in the FileSystems class due to a dependency JAR failing if another Maven plugin has already created it; a fix in the Kotlin snippet for disabling the metadata repository within the Gradle build files; and add missing JUnit 5 types for build-time initialization allowing them to become part of the image heap. More details on this release may be found in the changelog.

Spring Framework

The second milestone release of Spring Boot 3.3.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: a new @BatchTransactionManager annotation for improved configuration of Spring Batch to use a custom transaction manager; use of the Micrometer ObservationRequestEventListener class for improved tracing support when using Eclipse Jersey; and the addition of a conditional bean for the JooqExceptionTranslator class to eliminate the exception being translated twice. Further details on this release may be found in the release notes.

The release of Spring Boot 3.2.3 provides improvements in documentation, dependency upgrades and notable fixes such as: a NoSuchMethodError when using the non-shaded Apache Pulsar ObjectMapperFactory class and configuring authentications parameters; and remove the use of System.out from the Jetty GracefulShutdown class. More details on this release may be found in the release notes.

NOTE: Versions 3.3.0-M2 and 3.2.3 of Spring Boot upgrade to Hibernate 6.4.4.Final. While this version of Hibernate contains a number of valuable bug fixes, it does not work correctly in a native image. For developers using GraalVM, Hibernate should be temporarily downgraded to version 6.4.2.Final via the hibernate.version property.

Similarly, the release of Spring Boot 3.1.9 ships with improvements in documentation, dependency upgrades and notable fixes such as: Spring WebFlux actuator endpoints respond with a HTTP response code 500 when a parameter is missing; and property placeholders aren't resolved when configuration property binding creates a Map from a property value using a converter. Further details on this release may be found in the release notes.

NOTE: Spring Boot 3.1.9 upgrades to Hibernate 6.2.22.Final. While this version of Hibernate contains a number of valuable bug fixes, it does not work correctly in a native image. For developers using GraalVM, Hibernate should be temporarily downgraded to version 6.2.20.Final via the hibernate.version property.

Versions 6.2.2, 6.1.7, and 5.8.10 of Spring Security have been released featuring improvements in documentation, dependency upgrades and notable fixes such as: the OAuth2AuthorizationExchange class is now serializable since it uses a field from the OAuth2AuthorizationCodeAuthenticationToken class that implements Serializable; and a premature initialization of the ReactiveMethodSecurityConfiguration when the context contains an implementation of the BeanPostProcessor interface. More details on these releases may be found in the release notes for version 6.2.2, version 6.1.7 and version 5.8.10.

The release of Spring AI 0.8.0, characterized as the first milestone release, provides foundations for creating AI applications with high level features such as: portable API support across AI providers for chat, text-to-image and embedding models; portability across different providers with the Vector Store API; and function calling in AI Models by declaring implementations of the Java Function interface to OpenAI models for use in their prompt responses. Further details on this release may be found in the list of issues.

The first milestone release of Spring for GraphQL 1.3.0 ships with dependency upgrades and new features such as: optimized implementations of the Spring Framework RequestPredicate interface for GraphQL endpoints; and a new SyncGraphQlTransport interface to provide a synchronous version of a GraphQL client without Spring WebFlux. More details on this release may be found in the release notes.

Similarly, the release of Spring for GraphQL 1.2.5 provides bug fixes, dependency upgrades and new features such as: an update to the ScrollSubrange class for improved scrolling forward from the beginning as well as backward from the end when a position is not specified; and provide access to the SchemaMappingInspector class from alternative builder implementations. Further details on this release may be found in the release notes.

Versions 1.2.0-M2, 1.1.3 and 1.0.6 of Spring Modulith have been released featuring bug fixes, dependency upgrades and improvements such as: fix the parameter name in the ApplicationModules class to match that documented in the JavaDoc; and fixes and improvements in the Fundamentals section of the documentation. More details on these releases may be found in the release notes for version 1.2.0-M2, version 1.1.3 and version 1.0.6.

The second milestone release of Spring Authorization Server 1.3.0 delivers a new OAuth2AccessTokenAuthenticationContext class to provide the ability to customize the access token response. Further details on this release may be found in the release notes.

Similarly, versions 1.2.2 and 1.1.5 of Spring Authorization Server have been released featuring dependency upgrades and an update to the application.yml file in Getting Started guide so it aligns with use of the Spring Framework @Bean annotation in the Spring Security UserDetailsService interface described in the "Defining Required Components" section. More details on these releases may be found in the release notes for version 1.2.2 and version 1.1.5.

Versions 5.1.1 and 5.0.5 of Spring Batch have been released to provide an enhancement in the TaskletStep class that checks for a dirty flag of step execution context before updating the inner loop. improvements in documentation, dependency upgrades and notable bug fixes such as: an incorrect error message in JobOperatorFactoryBean class; and an ArrayIndexOutOfBoundsException from the DefaultJobParametersConverter class if the input contains an empty string. Further details on these releases may be found in the release notes for version 5.1.1 and version 5.0.5.

Versions 3.2.0-M1, 3.1.2 and 3.0.14 of Spring for Apache Kafka have been released featuring bug fixes, improvements in documentation, dependency upgrades and new features such as: support for the enforceRebalance() method, defined in the Apache Kafka Consumer interface, as a first-class citizen; and a new method, setRecoveryCallback(), in the RetryingDeserializer class to provide a recovery callback to execute when retries have been exhausted. More details on these releases may be found in the release notes for version 3.2.0-M1, version 3.1.2 and version 3.0.14.

The first milestone release of Spring for Apache Pulsar 1.1.0 provides bug fixes, improvements in documentation, dependency upgrades and new features such as: a new @PulsarTypeMapping annotation which can be used on message classes to specify default topic and/or schema information; and new types, AUTO_CONSUME and AUTO_PRODUCE, defined in the Apache Pulsar SchemaType enumeration for producing raw JSON or Avro payloads with AUTO_SCHEMA. Further details on this release may be found in the release notes.

Similarly, version 1.0.3 of Spring for Apache Pulsar has been released featuring improvements in documentation, dependency upgrades and resolution to an issue in which an attempt to call a method that does not exist upon using the non-shaded pulsar client that enables the AuthenticationToken class. More details on this release may be found in the release notes.

Versions 3.2.2 and 3.1.4 of Spring LDAP have been released providing dependency upgrades and a new feature in which logging for LDAP searches may now be performed by the LdapTemplate class. Further details on these releases may be found in the release notes for version 3.2.2 and version 3.1.4.

Payara

Payara has released their February 2024 edition of the Payara Platform that includes Community Edition 6.2024.2 and Enterprise Edition 6.11.0. Both editions feature bug fixes, dependency upgrades and new features such as: an increase in the length of system properties in the Admin Console from 512 to 4096 characters; an upgrade to Payara Security Connectors Suite 3.2 to expand the functionality of the OIDC Connector by enabling proxy configuration; and an improved fail-safe mechanism in dev-mode. More details on these releases may be found in the release notes for Community Edition 6.2024.2 and Enterprise Edition 6.11.0.

Quarkus

Quarkus 3.7.4, the fourth maintenance release from Red Hat delivers notable resolutions to issues such as: a decrease in performance with the use of the @VirtualThreadUnit annotation; the OIDC server is erroneously shown as not available; and an "Unable to find a JDBC driver" message for Hibernate Reactive after updating to version 3.7.1. Further details on this release may be found in the changelog.

Micronaut

The Micronaut Foundation has released version 4.3.3 of the Micronaut Framework featuring Micronaut Core 4.3.8, bug fixes, improvements in documentation, and updates to modules: Micronaut Hibernate Validator Configuration, Micronaut Data, Micronaut GCP and Micronaut Test. Developers who use Gradle are encouraged to update their applications to Micronaut Gradle Plugins 4.3.3. More details on this release may be found in the release notes.

Infinispan

Version 14.0.25.Final of Infinispan delivers dependency upgrades and notable changes such as: a resolution to a NullPointerException resulting from the assumption that the hard coded getter and setter methods defined in the ResourceDMBean class are based on MBean attributes having a getter method; and the computeAsync() method defined in the RemoteCache interface can lose the result of remapping processing when executed concurrently against a new entry in the Hot Rod Client. Further details on this release may be found in the release notes.

Apache Software Foundation

The release of Apache Camel 4.4.0 ships with bug fixes, dependency upgrades and new features such as: new plugins for Camel JBang to modularize the capabilities; a new Kotlin API for Apache Camel; and a new Camel WebAssembly component. More details on this release may be found in the release notes.

Versions 9.0.86 and 8.5.99 of Apache Tomcat have been released featuring bug fixes and notable changes: improvements to the CSRF prevention filter including the ability to skip adding nonces for resource name and subtree URL patterns; support for user provided instances of the SSLContext class configured on the SSLHostConfigCertificate class; and review usage of debug logging and downgrade trace or data dumping operations from debug level to trace. Further details on these releases may be found in the release notes for version 9.0.86 and version 8.5.99.

Versions 3.0.0-beta2 and 2.23.0 of Apache Log4j have been released providing notable changes such as: support for LMAX Disruptor 4.x; deprecate the RingBufferLogEventHandler class for removal in version 3.x; and fix a regression in the JdkMapAdapterStringMap class to improve its performance. More details on these releases may be found in the release notes for version 3.0.0-beta2 and version 2.23.0.

JobRunr

Version 6.3.5 of JobRunr, a library for background processing in Java that is distributed and backed by persistent storage, has been released featuring a bug fix related to an IllegalStateException from not being able to find "variable 3" in the stack due to the Java SerializedLambda class returning an unknown value of its implMethodKind field. Further details on this release may be found in the release notes.

Eclipse Vert.x

Version 4.5.4 of Eclipse Vert.x has been released delivering notable changes such as: an improved implementation of the sendFile() method defined in the HttpServerResponse interface that closes the file when an early failure is returned; and a resolution to the load() method defined in the ClassLoaderUtils class that didn't resolve all available class loaders causing some classes to not be found. More details on this release may be found in the release notes and list of deprecations and breaking changes.

Testcontainers for Java

The release of Testcontainers for Java 1.19.6 ships with bug fixes, dependency upgrades and new modules to support the Qdrant, Milvus, ChromaDB and Weaviate databases. Further details on this release may be found in the release notes.

Gradle

The first release candidate of Gradle 8.7 provides: support for Java 22 for compiling, testing, and running JVM-based projects; build cache improvements for Groovy DSL script compilation; and improvements to lazy configuration, error and warning messages, the configuration cache, and the Kotlin DSL. More details on this release may be found in the release notes.

About the Author

Rate this Article

Adoption
Style

BT