Java News Roundup: Payara Platform, Piranha Cloud, Spring Milestones, JBang, Micrometer, Groovy

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for September 9th, 2024 features news highlighting: the September 2024 Payara Platform, Piranha Cloud and Micrometer releases, Spring Framework 6.2.0-RC1, Spring Data 2024.1.0-M1, JBang 0.118.0 and Groovy 5.0.0-alpha-10.

JDK 23

Build 37 remains the current build in the JDK 23 early-access builds. Further details on this release may be found in the release notes and details on the new JDK 23 features may be found in this InfoQ news story.

JDK 24

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

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

GraalVM

Oracle Labs has released version 0.10.3 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 refactor of the MergeAgentFilesMojo class (and related classes) to remove the macro from the merger init command and throw a more informative message from the MojoExecutionException if the command doesn’t exist; a resolution to incorrect results while parsing command-line arguments due to the presence of whitespaces in the Windows file system; and a resolution to the nativeTest command unable to be executed when using JUnit 5.11.0-M2. More details on this release may be found in the changelog.

Spring Framework

The first release candidate of Spring Framework 6.2.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: an instance of the ResponseBodyEmitter now allows the registration of multiple state listeners; a rename of some class names for improved consistency in the org.springframework.http.client package due to the recent introduction of the ReactorNettyClientRequestFactory class; and a refactor of the ETag record class for improved comparison logic and exposing it on methods defined in the HttpHeaders class. More details on this release may be found in the release notes and what’s new page.

Similarly, Spring Framework 6.1.13 has also been released providing bug fixes, improvements in documentation, dependency upgrades and new features such as: errors thrown from the stop() method, defined in the SmartLifeycle interface, results in an unnecessary wait for the shutdown timeout; and an end to logging the value of result after changes made to the WebAsyncManager class as it was decided to allow applications to do so via other classes. More details on this release may be found in the release notes.

The Spring Framework team has disclosed CVE-2024-38816, Path Traversal Vulnerability in Functional Web Frameworks, a vulnerability in which an attacker can create a malicious HTTP request to obtain any file on the file system that is also accessible to the process on the running Spring application. The resolution was implemented in version 6.1.3 and backported to versions 6.0.4 and 5.3.40.

Versions 2024.1.0-M1, 2024.0.4 and 2023.1.10 of Spring Data have been released feature bug fixes and respective dependency upgrades to sub-projects such as: Spring Data Commons 3.4.0-M1, 3.3.4 and 3.2.10; Spring Data MongoDB 4.4.0-M1, 4.3.4 and 4.2.10; Spring Data Elasticsearch 5.4.0-M1, 5.3.4 and 5.2.10; and Spring Data Neo4j 7.4.0-M1, 7.3.4 and 7.2.10. These versions may be consumed by the upcoming releases of Spring Boot 3.4.0-M3, 3.3.4 and 3.2.10, respectively.

Version 4.25.0 of Spring Tools has been released with notable changes such as: improvements to Microsoft Visual Studio Code with the addition of code lenses to explain SPEL expressions and AOP annotations with Copilot, and syntax highlighting and validation for CRON expressions inside the Spring Framework @Scheduled annotation. More details on this release may be found in the release notes.

Open Liberty

IBM has released version 24.0.0.9 of Open Liberty featuring: support for the MicroProfile Telemetry 2.0 specification that now includes observability with metrics; the continued use of third-party cookies in Google Chrome with Cookies Having Independent Partitioned State (CHIPS); and a resolution to CVE-2023-50314, a vulnerability in IBM WebSphere Application Server Liberty versions 17.0.0.3 through 24.0.0.8 that would allow an attacker, with access to the network, to conduct spoofing attacks resulting in obtaining a certificate issued by a trusted authority to obtain sensitive information.

Payara

Payara has released their September 2024 edition of the Payara Platform that includes Community Edition 6.2024.9 and Enterprise Edition 6.18.0 and Enterprise Edition 5.67.0. Along with bug fixes and dependency upgrades, all three releases primarily address security issues, namely: an attacker having the ability to inject a malicious URL via a Host header allowing an HTML page generated by the REST interface to target the /management/domain endpoint; and an exposure in which a new password being logged via the admin GUI when the logging is set to the FINEST level. Further details on these releases may be found in the release notes for Community Edition 6.2024.9 and Enterprise Edition 6.18.0 and Enterprise Edition 5.67.0.

Micronaut

The Micronaut Foundation has released version 4.6.2 of the Micronaut Framework featuring Micronaut Core 4.6.5, bug fixes, improvements in documentation and updates to modules: Micronaut Data Micronaut OpenAPI/Swagger Support, Micronaut SQL Libraries, Micronaut JAX-RS, Micronaut Cache, Micronaut Views and Micronaut Security. Further details on this release may be found in the release notes.

Quarkus

Quarkus 3.14.3, the second maintenance release (the first one was skipped) delivers bug fixes, dependency upgrades and a new feature that provides initial support for a Software Bill of Materials (SBOM) using the CycloneDX standard. More details on this release may be found in the changelog.

Micrometer

The third milestone release of Micrometer Metrics 1.14.0 provides bug fixes, improvements in documentation, dependency upgrades and new features such as: no registration of metrics from the CaffeineCacheMetrics class (and related classes) when statistics are not enabled; and a resolution to metrics not being collected when an instance of the Java ExecutorService interface, wrapped in the monitor() method, defined in the ExecutorServiceMetrics class, shuts down. More details on this release may be found in the release notes.

Similarly, versions 1.13.4 and 1.12.10 of Micrometer Metrics feature notable bug fixes: a situation where Spring Boot configuration specifying metric percentiles in a standard application.yaml file are being overwritten; and a non-resolvable dependency, io.micrometer:concurrency-tests, incorrectly added to the Bill of Materials (BOM). Further details on these releases may be found in the release notes for version 1.13.4 and version 1.12.10.

Versions 1.4.0-M3, 1.3.4 and 1.2.10 of Micrometer Tracing 1.4.0 provide dependency upgrades and a resolution to a dependency convergence error when trying to use the io.micrometer:micrometer-tracing-bridge-otel dependency after upgrading to Micrometer Tracing 1.3.1. Further details on these releases may be found in the release notes for version 1.4.0-M3, version 1.3.4 and version 1.2.10.

Apache Software Foundation

Versions 11.0.0-M25, 10.1.29 and 9.0.94 of Apache Tomcat deliver bug fixes, dependency upgrades and notable changes such as: ensure that any instance of the Jakarta Servlet ReadListener interface is notified via a call to the onError() method if an HTTP/2 client resets a stream before the servlet request body is fully written; and an improvement in exception handling with methods annotated with the Jakarta WebSocket @OnMessage annotation that avoids the connection to automatically close. More details on these releases may be found in the release notes for version 11.0.0-M25, version 10.1.29 and version 9.0.94.

A regression affecting these versions, shortly after they were released, was reported and confirmed with configurations using HTTP/2. The Apache Tomcat team recommends a temporary fix by setting the property, discardRequestsAndResponses, to true on instances of the UpgradeProtocol element for HTTP/2. The Tomcat team plans to release a fix for this regression during the week of September 16, 2024.

The tenth alpha release of Apache Groovy 5.0.0 delivers bug fixes, dependency upgrades and improvements that support: ​​method references and method pointers in annotations; and the use of multiple @Requires, @Ensures and @Invariant annotations, located in the groovy-contracts package, that enable class-invariants, pre- and post-conditions. More details on this release may be found in the release notes.

Similarly, the release of Apache Groovy 4.0.23 features bug fixes and dependency upgrades. More details on this release may be found in the release notes.

Project Reactor

The sixth milestone release of Project Reactor 2024.0.0 provides dependency upgrades to reactor-core 3.7.0-M6. There was also a realignment to version 2024.0.0-M6 with the reactor-netty 1.2.0-M5, reactor-pool 1.1.0-M5, reactor-addons 3.6.0-M2, reactor-kotlin-extensions 1.3.0-M2 and reactor-kafka 1.4.0-M1 artifacts that remain unchanged. Further details on this release may be found in the changelog.

Next, Project Reactor 2023.0.10, the tenth maintenance release, provides dependency upgrades to reactor-core 3.6.10. There was also a realignment to version 2023.0.10 with the reactor-netty 1.1.22, reactor-pool 1.0.8, reactor-addons 3.5.2, reactor-kotlin-extensions 1.2.3 and reactor-kafka 1.3.23 artifacts that remain unchanged. More details on this release may be found in the changelog.

Finally, Project Reactor 2022.0.22, the twenty-second maintenance release, provides dependency upgrades to reactor-core 3.5.20 and reactor-netty 1.1.22 and reactor-pool 1.0.8, reactor-addons 3.5.2 and reactor-kotlin-extensions 1.2.3. There was also a realignment to version 2022.0.22 with the reactor-kafka 1.3.23 artifacts that remain unchanged. Further details on this release may be found in the changelog. This version is also the last in the 2022.0 release train as per the OSS support schedule.

Piranha Cloud

The release of Piranha 24.9.0 delivers notable changes such as: TCK updates in the Piranha Core Profile to support a number of Jakarta EE specifications (Jakarta Annotations 2.1.1, Jakarta Dependency Injection 2.0.2, Jakarta JSON Binding 3.0.0, etc.); and updates in their Arquillian adapter for improved deployment and un-deployment, and expose the ability to set the HTTP port and JVM arguments. Further details on this release may be found in their documentation and issue tracker.

JHipster

The release of JHipster Lite 1.18.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features/enhancements such as: a new class, OpenApiContractApplicationService, part of a new API that checks for backwards incompatible changes to OpenAPI contracts; and a refactor of the vue-core module for improved testing. There was also removal of deprecated code that may cause a breaking change. More details on this release may be found in the release notes.

JBang

Version 0.118.0 of JBang provides bug fixes and a new linuxdistro provider that searches a developer’s /usr/lib/jvm folder to detect JDKs that have already been installed. More details on this release may be found in the release notes.

JetBrains Ktor

The first release candidate of Ktor 3.0.0 delivers bug fixes and new features such as: support for Kotlin 2.0.0; an improved staticZip utility that watches for changes and reloading of ZIP files; and support for handling HTTP errors. More details on this release may be found in the release notes.

Gradle

Gradle 8.10.1, the first maintenance release, provides resolutions to issues: a performance degradation with version 8.10.0 due to dependency resolutions with detached configurations; an instance of the LifecycleAwareProject class is equal, via the equals() method, to an instance of it corresponding DefaultProject class, but not the other way around; and Gradle validating isolated projects when the configuration cache is disabled. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Spring News Roundup: Milestone Releases for Spring Boot, Cloud, Security, Session and Spring AI

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

There was a flurry of activity in the Spring ecosystem during the week of August 19th, 2024, highlighting: point and milestone releases of Spring Boot, Spring Data, Spring Cloud, Spring Security, Spring Authorization Server, Spring Session, Spring for Apache Kafka and Spring for Apache Pulsar.

Spring Boot

The second milestone release of Spring Boot 3.4.0 delivers bug fixes, improvements in documentation, dependency upgrades and many new features such as: an update to the @ConditionalOnSingleCandidate annotation to deal with fallback beans in the presence of a regular single bean; and configure the SimpleAsyncTaskScheduler class when virtual threads are enabled. More details on this release may be found in the release notes.

Versions 3.3.3 and 3.2.9 of Spring Boot have been released to address CVE-2024-38807, Signature Forgery Vulnerability in Spring Boot’s Loader, where applications that use the spring-boot-loader or spring-boot-loader-classic APIs contain custom code that performs signature verification of nested JAR files may be vulnerable to signature forgery where content that appears to have been signed by one signer has, in fact, been signed by another. Developers using earlier versions of Spring Boot should upgrade to versions 3.1.13, 3.0.16 and 2.7.21.

Spring Data

Versions 2024.0.3 and 2023.1.9, both service releases of Spring Data, feature bug fixes and respective dependency upgrades to sub-projects such as: Spring Data Commons 3.3.3 and 3.2.9; Spring Data MongoDB 4.3.3 and 4.2.9; Spring Data Elasticsearch 5.3.3 and 5.2.9; and Spring Data Neo4j 7.3.3 and 7.2.9. These versions can be consumed by Spring Boot 3.3.3 and 3.2.9, respectively.

Spring Cloud

The first milestone release of Spring Cloud 2024.0.0, codenamed Mooregate, features bug fixes and notable updates to sub-projects: Spring Cloud Kubernetes 3.2.0-M1; Spring Cloud Function 4.2.0-M1; Spring Cloud OpenFeign 4.2.0-M1; Spring Cloud Stream 4.2.0-M1; and Spring Cloud Gateway 4.2.0-M1. This release provides compatibility with Spring Boot 3.4.0-M1. Further details on this release may be found in the release notes.

Spring Security

The second milestone release of Spring Security 6.4.0 delivers bug fixes, dependency upgrades and new features such as: improved support to the @AuthenticationPrincipal and @CurrentSecurityContext meta-annotations to better align with method security; preserve the custom user type in the InMemoryUserDetailsManager class for improved use in the loadUserByUsername() method; and the addition of a constructor in the AuthorizationDeniedException class to provide the default value for AuthorizationResult interface. More details on this release may be found in the release notes and what’s new page.

Similarly, versions 6.3.2, 6.2.6 and 5.8.14 of Spring Security have also been released providing bug fixes, dependency upgrades and a new feature that implements support for multiple URLs in the ActiveDirectoryLdapAuthenticationProvider class. Further details on these releases may be found in the release notes for version 6.3.2, version 6.2.6 and version 5.8.14.

Spring Authorization Server

Versions 1.4.0-M1, 1.3.2 and 1.2.6 of Spring Authorization Server have been released that ship with bug fixes, dependency upgrades and new features such as: a new authenticationDetailsSource() method added to the OAuth2TokenRevocationEndpointFilter class used for building an authentication details from an instance of the Jakarta Servlet HttpServletRequest interface; and allow customizing an instance of the Spring Security LogoutHandler interface in the OidcLogoutEndpointFilter class. More details on these releases may be found in the release notes for version 1.4.0-M1, version 1.3.2 and version 1.2.6.

Spring Session

The second milestone release of Spring Session 3.4.0-M2 provides many dependency upgrades and a new RedisSessionExpirationStore interface so that it is now possible to customize the expiration policy in an instance of the RedisIndexedSessionRepository.RedisSession class. Further details on this release may be found in the release notes and what’s new page.

Similarly, the release of Spring Session 3.3.2 and 3.2.5 ship with dependency upgrades and a resolution to an issue where an instance of the AbstractSessionWebSocketMessageBrokerConfigurer class triggers an eager instantiation of the SessionRepository interface due to a non-static declaration of the Spring Framework ApplicationListener interface. More details on this release may be found in the release notes for version 3.3.2 and version 3.2.5.

Spring Modulith

Versions 1.3 M2, 1.2.3, and 1.1.8 of Spring Modulith have been released that ship with bug fixes, dependency upgrades and new features such as: an optimization of the publication completion by event and target identifier to allow databases to optimize the query plan; and a refactor of the EventPublication interface that renames the isPublicationCompleted() method to isCompleted(). Further details on these releases may be found in the release notes for version 1.3.0-M2, version 1.2.3 and version 1.1.8.

Spring AI

The second milestone release of Spring AI 1.0.0 delivers bug fixes, improvements in documentation and new features such as: improved observability functionality for the ChatClient interface, chat models, embedding models, image generation models and vector stores; a new MarkdownDocumentReader for ETL pipelines; and a new ChatMemory interface that is backed by Cassandra.

Spring for Apache Kafka

Versions 3.3.0-M2, 3.2.3 and 3.1.8 of Spring for Apache Kafka have been released with bug fixes, dependency upgrades and new features such as: support for Apache Kafka 3.8.0; and improved error handling on fault tolerance retries. These releases will be included in the Spring Boot 3.4.0-M2, 3.3.3 and 3.2.9, respectively. More details on this release may be found in the release notes for version 3.3.0-M2, version 3.2.3 and version 3.1.8.

Spring for Apache Pulsar

The first milestone release of Spring for Apache Pulsar 1.2.0-M1 ships with improvements in documentation, dependency upgrades and new features: the ability to configure a default topic and namespace; and the ability to use an instance of a custom Jackson ObjectMapper class for JSON schemas. This release will be included in Spring Boot 3.4.0-M2. Further details on this release may be found in the release notes.

Similarly, versions 1.1.3 and 1.0.9 of Spring for Apache Pulsar have been released featuring dependency upgrades and will be included in Spring Boot 3.3.3 and 3.2.9, respectively. More details on these releases may be found in the release note for version 1.1.3 and version 1.0.9.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: JDK 23 RC1, New HotSpot JEP, Hibernate and Tomcat Releases, GlassFish 8.0-M7

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for August 5th, 2024 features news highlighting: the first release candidates of JDK 23 and Gradle 8.10; JEP 483, Ahead-of-Time Class Loading & Linking, a new HotSpot feature; the releases of Hibernate ORM 6.6, Hibernate Search 7.2, Hibernate Reactive 2.4; multiple Apache Tomcat point and milestone releases; and GlassFish 8.0.0-M7.

OpenJDK

JEP 483, Ahead-of-Time Class Loading & Linking, has been promoted from its JEP Draft 8315737 to Candidate status. This JEP proposes to “improve startup time by making the classes of an application instantly available, in a loaded and linked state, when the HotSpot Java Virtual Machine starts.” This may be achieved by monitoring the application during one run and storing the loaded and linked forms of all classes in a cache for use in subsequent runs. This feature will lay a foundation for future improvements to both startup and warmup time.

JDK 23

Build 36 of the JDK 23 early-access builds was made available this past week featuring updates from Build 35 that include fixes for various issues. Further details on this release may be found in the release notes, and details on the new JDK 23 features may be found in this InfoQ news story.

As per the JDK 23 release schedule, Mark Reinhold, Chief Architect, Java Platform Group at Oracle, formally declared that JDK 23 has entered its first release candidate as there are no unresolved P1 bugs in Build 36. The anticipated GA release is scheduled for September 17, 2024. The final set of 12 features for the GA release in September 2024 will include:

More details on all of these new features may be found in this InfoQ news story.

JDK 24

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

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

GlassFish

GlassFish 8.0.0-M7, the seventh milestone release, delivers notable changes such as: removal of throwing an IllegalArgumentException if an instance of the BundleDescriptor class is null while executing the toString() method defined in the Application class; removal of additional references to the deprecated SecurityManager that included formatting, name changes, and removing unused method parameters; and an implementation of the Jakarta Concurrency 3.1, the latest version for the upcoming release of Jakarta EE 11. More details on this release may be found in the release notes.

Quarkus

Quarkus 3.13.1, the first maintenance release in the 3.13 release train, provides bug fixes, improvements in documentation and notable changes such as: support for CompletableFuture when using JsonRPC extension in the Dev UI; avoid a possible NullPointerException due to a race condition in the ApplicationLifecycleManager class during shutdown; and a resolution to a NullPointerException when using the findFirstBy methods defined in Spring Data JPA project that already return Optional. Further details on this release may be found in the changelog.

Open Liberty

IBM has released version 24.0.0.8-beta of Open Liberty that introduces versionless features to simplify and streamline choosing compatible features for the MicroProfile, Jakarta EE and Java EE platforms. This is accomplished by configuring only the features at the specific versions required by an application. This composable design pattern minimizes runtime resource requirements and accelerates application startup times.

This release also provides previews of the upcoming releases of MicroProfile 7.0, scheduled to be released on or about August 22, 2024, and Jakarta EE 11, scheduled to be released in 3Q2024.

Hibernate

The release of Hibernate ORM 6.6.0.Final, preceded by the second release candidate a day earlier, delivers a complete implementation of the new Jakarta Data 1.0 specification that is: based on compile-time code generation via an annotation processor, enabling compile-time type safety; and backed by the StatelessSession interface, which has been enhanced especially to meet the needs of Jakarta Data. Other new features include: a new @ConcreteProxy annotation to replace the deprecated @Proxy and @LazyToOne annotations; and a discriminator-based inheritance for types annotated with @Embeddable.

The release of Hibernate Search 7.2.0.Final, preceded by the first release candidate two days earlier, provides improvements to the Search DSL that include: new projection types; new predicates; enhancements to the existing predicate types; query parameters; and a deprecation of the ValueConvert enumeration in favor of the ValueModel enumeration. This version upgrades to Hibernate ORM 6.6.0.Final which introduces compatibility with: OpenSearch 2.14, 2.15 and 2.16; and Elasticsearch 8.14 and 8.15.

The release of Hibernate Reactive 2.4.0.Final, also preceded by the first release candidate two days earlier, ships with notable changes such as: convert the cascadeOnLock() method, defined in the DefautlReactiveLockEventListener class, to be reactive; avoid the creation of multiple connections during schema migration; and a dependency upgrade to Hibernate ORM 6.6.0.Final. More details on this release may be found in the release notes.

Apache Software Foundation

Versions 11.0.0-M24, 10.1.28 and 9.0.93 of Apache Tomcat deliver bug fixes and notable changes such as: align HTTP/2 with HTTP/1.1 and recycle the container’s internal request and response processing objects by default that may be can be controlled via the new discardRequestsAndResponses attribute on the HTTP/2 upgrade protocol; the addition of compatibility methods from JEP 454, Foreign Function & Memory API, that support OpenSSL, LibreSSL and BoringSSL, which all require a minimal version of JDK 22; and support for the RFC 8297, An HTTP Status Code for Indicating Hints, specification where applications can use this feature by casting the HttpServletResponse interface to the Response class and then calling the sendEarlyHints() method. Further details on these releases may be found in the release notes for version 11.0.0-M24, version 10.1.28 and version 9.0.93.

Infinispan

Infinispan 15.0.7.Final, the seventh maintenance release, provides resolutions to notable issues such as: throw a more refined and descriptive exception if user properties are malformed; a NullPointerException when attempting to remove an entry with Xsite; and the consistent return of an empty array from the IntermediateCacheStream class due to a typo that did not update a copy-and-paste from the toArray() method. More details on this release may be found in the release notes.

Gradle

The first release candidate of Gradle 8.10 delivers resolutions to numerous issues and notable changes: improvements to the configuration cache, including a significant reduction in the cache file size and accelerated cache loading times; and Improved behavior and callback execution for the GradleLifecycle API. Further details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: Hazelcast 5.5, Projects Loom and Valhalla, Hibernate ORM and Validation

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for July 29th, 2024 features news highlighting: the release of Hazelcast 5.5; early-access releases for Project Loom and Project Valhalla; beta releases of Hibernate ORM 7.0 and Hibernate Validation 9.0; and point releases for Quarkus, Helidon, GlassFish, JobRunr and Testcontainers for Java.

OpenJDK

JEP 404, Generational Shenandoah (Experimental), has been updated this past week to be included in JDK 24 despite its current Candidate status. We anticipate that this JEP will soon be promoted to Proposed to Target.

Originally targeted for JDK 21, JEP 404 was officially removed from the final feature set due to the “risks identified during the review process and the lack of time available to perform the thorough review that such a large contribution of code requires.” The Shenandoah team decided to “deliver the best Generational Shenandoah that they can” and target a future release.

JDK 23

Build 35 of the JDK 23 early-access builds was made available this past week featuring updates from Build 34 that include fixes for various issues. Further details on this release may be found in the release notes, and details on the new JDK 23 features may be found in this InfoQ news story.

JDK 24

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

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

Project Loom

Build 24-loom+3-33 of the Project Loom early-access builds was made available to the Java community this past week and is based on Build 8 of the JDK 24 early-access builds. This build improves the implementation of Java monitors (synchronized methods) for enhanced interoperability with virtual threads.

Project Valhalla

After more than 20 months since the release of the last build, Build 23-valhalla+1-90 of the Project Valhalla early-access builds was also made available and is based on an incomplete version of JDK 23. Daniel Smith, Programming Language Designer at Oracle, has published this early-access document that describes value classes and objects in more detail. InfoQ will follow up with a more detailed news story.

GlassFish

GlassFish 7.0.16, the sixteenth maintenance release, delivers bug fixes, improvements in documentation, refactoring and maintenance, dependency upgrades and new features such as: a new mechanism that logs admin commands that are invoked by the Admin Console, Admin CLI or the REST admin interface; allow a resource reference in the persistence.xml file that may be changed using the resource-ref XML tag in the glassfish-web.xml file with alternative runtime descriptor or in a deployment plan during deployment; and a new button in the Admin Console header to enable/disable admin command logging. Further details on this release may be found in the release notes.

Jakarta EE 11

In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation, provided an update on the upcoming release of Jakarta EE 11, writing:

Since a couple of specification projects have published service releases to fix minor issues in their API artifacts or Java Doc, a release candidate of the Jakarta EE 11 APIs incorporating these updates will be produced shortly. There will most likely be a release candidate of the specification documents as well.

The road to Jakarta EE 11 included four milestone releases with the potential for release candidates as necessary before the GA release in 3Q2024.

Hazelcast

Hazelcast has released version 5.5 of their Hazelcast Platform delivering numerous new features such as: a new vector search utilizing a Vector Collection; a Hazelcast Jet Job Placement Control that enables developers to designate, at deployment time, which cluster members an event processing pipeline can use; and dynamic configuration using the Hazelcast REST API that enables access to data structures and cluster via HTTP/HTTPS protocols. More details on this release may be found in the what’s new page.

Quarkus

The release of Quarkus 3.13 delivers new features such as: support for OpenTelemetry Metrics with a new OpenTelemetry extension; support for Kotlin suspend functions in the WebSockets Next extension; and a new @WithTestResource annotation to replace the now-deprecated @QuarkusTestResource annotation. Further details on this release may be found in the changelog.

Helidon

Helidon 4.0.11, the eleventh maintenance release, provides notable changes such as: an updated decode() method, defined in the UriEncoding class, to expose the decodeQuery() method; remove usage of the Java ConcurrentHashMap class from the LocalXAResource class to avoid thread pinning in JDK versions 22 and lower; and a move of the client protocol ID caching from the HttpClientRequest class to the WebClient interface level for proper sharing. More details on this release may be found in the changelog.

Apache Software Foundation

The release of Apache Kafka 3.8.0 ships with bug fixes, improvements and new features such as: the launch of the Docker official image for Apache Kafka; the addition of the connectSourceStoreAndTopic() method, defined in the InternalTopologyBuilder class, as a public method within the Topology class for using a source topic directly without a redundant changelog topic; and an implementation of the ConsumerInterceptor interface in the AsyncKafkaConsumer class to eliminate redundant non-null branches. Further details on this release may be found in the release notes.

Maintaining alignment with Quarkus, the release of Camel Quarkus 3.13.0, composed of Camel 4.7.0 and Quarkus 3.13.0, provides resolutions to notable issues such as: the Camel Quarkus Syslog extension not compatible with the JDBC Driver – Oracle extension in native mode; a SQLSyntaxErrorException caused by case sensitivity in MySQL and MariaDB databases; and the Camel Caffeine Cache extension does not work in native mode when the camel.component.caffeine-cache.stats-enabled property is set to true. More details on this release may be found in the release notes.

Infinispan

Infinispan 14.0.30.Final, the thirtieth maintenance release, ships with dependency upgrades and resolutions to issues: a NullPointerException from the acquireKeyFromContext() method, defined in the PersistenceManagerImpl class, when an entry is not found in InvocationContext interface; and a failure to read cache files if Infinispan terminated with a force kill when used with JDK 21. Further details on this release may be found in the release notes.

Hibernate

The first beta release of Hibernate ORM 7.0.0 features: a migration to the Jakarta Persistence 3.2 specification, the latest version targeted for Jakarta EE 11; a baseline of JDK 17; improved domain model validations; and a migration from Hibernate Commons Annotations (HCANN) to the new Hibernate Models project for low-level processing of an application domain model. More details on migrating to version 7.0 may be found in the migration guide.

Similarly, the first beta release of Hibernate Validator 9.0.0 features: a migration to the Jakarta Validation 3.1 specification, the latest version targeted for Jakarta EE 11; a baseline of JDK 17; and a new Hibernate Validator BOM providing dependency management for all of its published artifacts. Note: this first beta release is labeled as version 9.0.0.Beta2 due to testing of their new release process causing the Beta1 release to not publish correctly.

JobRunr

Version 7.2.3 of JobRunr, a library for background processing in Java that is distributed and backed by persistent storage, has been released with enhancements: the Quarkus JobRunr extension is now visible in the Quarkus extensions catalog; an update to the quarkus-extension.yaml file to promote the JobRunr extension from preview to stable; and improved readability and performance when comparing instances of the ServerZookeeper class. Further details on this release may be found in the release notes.

Testcontainers for Java

Testcontainers for Java 1.20.1 delivers bug fixes, improvements in documentation and new features/enhancements such as: support for Apache Kafka native image; a rename of the now-deprecated SA_PASSWORD environmental variable to MSSQL_SA_PASSWORD; and support for the tenant name, password and mode in the OceanBase module. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: WildFly 33, Spring Cloud Data Flow, Apache TomEE, LangChain4j, Micronaut

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for July 22nd, 2024 features news highlighting: the release of WildFly 33; Spring Cloud Data Flow 2.11.4; the second milestone release of Apache TomEE 10.0; LangChain4j 0.33; Micronaut 4.5.1; Eclipse Store 1.4; and an update on Jakarta EE 11.

JDK 23

Build 34 of the JDK 23 early-access builds was made available this past week featuring updates from Build 33 that include fixes for various issues. Further details on this release may be found in the release notes, and details on the new JDK 23 features may be found in this InfoQ news story.

JDK 24

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

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

Jakarta EE

In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation, provided an update on the upcoming release of Jakarta EE 11, writing:

The Jakarta EE Platform project continues the work toward finalizing Jakarta EE 11. The refactoring of the TCK shows promising results. Hopefully, we will be able to announce a release date shortly. Check in to the weekly Jakarta EE Platform call that happens every Tuesday at 11:00 AM Eastern (Daylight Savings) Time.

The road to Jakarta EE 11 included four milestone releases with the potential for release candidates as necessary before the GA release in 3Q2024.

BellSoft

BellSoft has released versions 24.0.2 for JDK 22, 23.1.4 for JDK 21 and 23.0.5 for JDK 17 of their Liberica Native Image Kit builds as part of the Oracle Critical Patch Update for July 2024 to address several CVEs and bugs.

Spring Framework

The release of Spring Cloud Data Flow 2.11.4 primarily addresses: CVE-2024-37084, Remote Code Execution in Spring Cloud Data Flow, a vulnerability where an attacker, who has access to the Skipper Server API, can use a crafted upload request to write an arbitrary file to any location on the file system which could lead to compromising the server; and PRISMA-2023-0067, where an attacker can send a specially-crafted request to take advantage of an improper input validation by the StreamReadContraints class causing a denial of service. Other improvements include: the ability for a user to specify the application version when creating a schedule; and a new endpoint, /tasks/thinexecutions, for more efficient retrieval of task executions pages without all the extra detail. Further details on this release may be found in the release notes.

Version 4.24.0 of Spring Tools 4.24.0 has been released with notable changes such as: support for Spring Expression Language (SpEL) syntax highlighting and validation inside Java and embedded Spring Data queries; syntax highlighting and validation for MySQL and PostgreSQL queries; and support for bean name code completion and navigation for name attribute of the Jakarta Annotations @Resource annotation. More details on this release may be found in the release notes.

WildFly

The release of WildFly 33 delivers bug fixes, component upgrades and new features such as: an enhanced overriding of base configuration settings using a YAML file by using the YAML file to add unmanaged deployments to the configuration; the core-management subsystem now allows developers to enable scanning of deployments for usage of classes/methods in the SmallRye and Hibernate ORM libraries annotated with @Experimental and @Incubating, respectively; and utilities to reload a server to a different stability level in the testsuite. Further details on this release may be found in the release notes. InfoQ will follow up with a more detailed news story.

Micronaut

The Micronaut Foundation has released version 4.5.1 of Micronaut Framework featuring Micronaut Core 4.5.4, bug fixes, improvements in documentation and updates to modules: Micronaut Micrometer, Micronaut OpenAPI, Micronaut Security, Micronaut SourceGen, Micronaut Data, Micronaut Reactor, Micronaut Test Resources, Micronaut Test, Micronaut gRPC, Micronaut Validation and Micronaut Views. More details on this release may be found in the release notes.

Eclipse Foundation

The release of Eclipse Store 1.4.0 provides bug fixes and new features: integration with Amazon S3 Express One Zone; enhancements to S3 cloud storage with the addition of a default folder for the S3 connector into configuration and support for directory buckets; and a new API to import and export the serializer type dictionary. Further details on this release may be found in the release notes.

The release of Eclipse Serializer 1.4.0 aligns with Eclipse Store 1.4.0 with no documented updates or release notes.

Apache Software Foundation

The second milestone release of Apache TomEE 10.0.0, aimed at JakartaEE 10, ships with bug fixes, dependency upgrades and notable changes such as: a minimal JDK 17 version; an implementation of the OIDC section of the Jakarta EE Security specification; and an initial integration of some MicroProfile updates. More details on this release may be found in the release notes.

JHipster

The release of JHipster Lite 1.14.0 ships with dependency upgrades and enhancements such as: the use of string templates instead of string concatenation; fields that are only assigned in the constructor should be redd only; and unchanged variables should be marked as const. Further details on this release may be found in the release notes.

LangChain4j

Version 0.33.0 of LangChain for Java (LangChain4j) features new integrations: Redis via the new RedisChatMemoryStore class; and embedding models from OVHcloud. Other notable changes include: support for audio, video and PDF inputs in Google Gemini; support for embedding removal in Chroma; and support for storing metadata and embedding removal in Pinecone. Developers should note that a breaking change was necessary to fix split package issues. More details on this release may be found in the release notes.

Arquillian

The release of Arquillian 1.9.1.Final provides dependency upgrades and notable changes such as: replace use of the Java ThreadLocal class with the Java Hashtable class due to a memory leak in Arquillian Warp; support for the @ArquillianResource annotation parameter injection on methods annotated with @Deployment; and a resolution to integration test build issue to ensure that versions get updated. Further details on this release may be found in the changelog.

Jox

As a follow-up from the release of Jox 0.3.0, as described in the July 15, 2024 Java news roundup, details related to their new structured concurrency module were made available by Adam Warski, Chief R&D Officer at SoftwareMill, who told InfoQ:

We’ve added a “programmer-friendly” API for structured concurrency. This blog describes it in detail, and contrasts it with what’s proposed by the structured concurrency JEP.

Introduced to the Java community in February 2024, Jox is a new virtual threads library that implements an efficient Channel data structure in Java designed to be used with virtual threads.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: JDK 24 Update, Spring Framework, Piranha Cloud, Gradle 8.9, Arquillian 1.9

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for July 8th, 2024 features news highlighting: JEP 472, Prepare to Restrict the Use of JNI, proposed to be targeted for JDK 24; milestone and point releases for Spring Framework; the monthly Piranha Cloud release; and the releases of Gradle 8.9 and Arquillian 1.9.

OpenJDK

JEP 472, Prepare to Restrict the Use of JNI, has been promoted from its Candidate to Proposed to Target for JDK 24. The JEP proposes to restrict the use of the inherently unsafe Java Native Interface (JNI) in conjunction with the use of restricted methods in the Foreign Function & Memory (FFM) API, delivered in JDK 22. The alignment strategy, starting in the upcoming release of JDK 23, will have the Java runtime display warnings about the use of JNI unless an FFM user enables unsafe native access on the command line. It is anticipated that in release after JDK 23, using JNI will throw exceptions instead of warnings. The review is expected to conclude on July 15, 2024.

JDK 23

Build 31 of the JDK 23 early-access builds was made available this past week featuring updates from Build 30 that include fixes for various issues. Further details on this release may be found in the release notes, and details on the new JDK 23 features may be found in this InfoQ news story.

JDK 24

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

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

Spring Framework

The fifth milestone release of Spring Framework 6.2.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: a new SmartHttpMessageConverter interface that addresses several limitations in the GenericHttpMessageConverter interface while providing a contract more consistent with the Spring WebFlux Encoder and Decoder interfaces; allow custom implementations of the ObjectProvider interface to declare only a single method for improved unit testing; and a resolution to the SimpleClientHttpResponse class throwing an IOException when the response body is empty and status code is >= 400. Further details on this release may be found in the release notes.

Similarly, Spring Framework 6.1.11 has been released with bug fixes, improvements in documentation, dependency upgrades and new features such as: ensure the varargs component type for the Java MethodHandle class is not null in the Spring Expression Language ReflectionHelper class; and the overloaded getTypeForFactoryMethod() method, defined in the AbstractAutowireCapableBeanFactory class, should catch a NoClassDefFoundError and return null. This version will be included in the upcoming releases of Spring Boot 3.3.2 and 3.2.8. More details on this release may be found in the release notes.

Versions 2024.0.2 and 2023.1.8, both service releases of Spring Data, feature bug fixes and respective dependency upgrades to sub-projects such as: Spring Data Commons 3.3.2 and 3.2.8; Spring Data MongoDB 4.3.2 and 4.2.8; Spring Data Elasticsearch 5.3.2 and 5.2.8; and Spring Data Neo4j 7.3.2 and 7.2.8. These versions can be consumed by the upcoming releases of Spring Boot 3.3.2 and 3.2.8, respectively.

Spring Cloud 2023.0.3, codenamed Leyton, has been released featuring featuring bug fixes and notable updates to sub-projects: Spring Cloud Kubernetes 3.1.3; Spring Cloud Function 4.1.3; Spring Cloud OpenFeign 4.1.3; Spring Cloud Stream 4.1.3; and Spring Cloud Gateway 4.1.5. This release is based on Spring Boot 3.2.7. Further details on this release may be found in the release notes.

The release of Spring HATEOAS 2.3.1 and 2.2.3 feature dependency upgrades and an improved parser for the Internet Engineering Task Force (IETF) RFC-8288 specification, Web Linking, to support advanced link header expressions. More details on these releases may be found in the release notes for version 2.3.1 and version 2.2.3.

Quarkus

Quarkus 3.12.2, the second maintenance release, features resolutions to notable issues such as: a Jakarta CDI ContextNotActiveException from an implementation of the SecurityIdentityAugmentor interface since the release of Quarkus 3.10; classes annotated with the Jakarta RESTful Web Services @Provider annotation not registered for native image when the server part of the Quarkus REST Client extension is not included; and executing the Quarkus CLI to add an extension reorders the properties and adds a timestamp in gradle.properties file. Further details on this release may be found in the changelog.

Micrometer

The first milestone release of Micrometer Metrics 1.14.0 delivers dependency upgrades and new features such as: support for the @MeterTag annotation added to the @Counted annotation to complement the existing support in the @Timed annotation; allow a custom implementation of the Java ThreadFactory interface for the OtlpMeterRegistry class; and the addition of a counter of failed attempts to retrieve a connection from the MongoMetricsConnectionPoolListener class. More details on this release may be found in the release notes.

Similarly, versions 1.13.2 and 1.12.8 of Micrometer Metrics feature dependency upgrades and notable bug fixes: avoid an unnecessary calling of the convention name on each scrape for each metric to create the Metrics metadata because the convention name has already been computed; an IllegalArgumentException due to histogram inconsistency in the PrometheusMeterRegistry class; and a fix in the log to include the stack trace in the publish() method, defined in the OtlpMeterRegistry class, due to the “Failed to publish metrics to OTLP receiver” error message containing no actionable context. Further details on these releases may be found in the release notes for version 1.13.2 and version 1.12.8.

The first milestone release of Micrometer Tracing 1.4.0 provides dependency upgrades and two new features: the Micrometer Metrics @Nullable annotations added to methods and fields in the micrometer-tracing-bridge directories and the sampled() and nextSpan(Span) methods defined in the TraceContext and Tracer interfaces, respectively; and the ability to propagate values from the Context inner class, defined in the Micrometer Metrics Observation interface, to the Baggage interface. More details on this release may be found in the release notes.

Similarly, versions 1.3.2 and 1.2.8 of Micrometer Tracing ship with dependency upgrades to Micrometer Metrics 1.13.2 and 1.12.8, respectively, and OpenTelemetry Semantic Attributes 1.33.4-alpha. Further details on these releases may be found in the release notes for version 1.3.2 and version 1.2.8.

Project Reactor

The fourth milestone release of Project Reactor 2024.0.0 provides dependency upgrades to reactor-core 3.7.0-M4, reactor-netty 1.2.0-M4 and reactor-pool 1.1.0-M4. There was also a realignment to version 2024.0.0-M4 with the reactor-kafka 1.4.0-M1, reactor-addons 3.6.0-M1 and reactor-kotlin-extensions 1.3.0-M1 artifacts that remain unchanged. More details on this release may be found in the changelog.

Next, Project Reactor 2023.0.8, the eighth maintenance release, provides dependency upgrades to reactor-core 3.6.8, reactor-netty 1.1.21 and reactor-pool 1.0.7. There was also a realignment to version 2023.0.8 with the reactor-kafka 1.3.23, reactor-addons 3.5.1 and reactor-kotlin-extensions 1.2.2 artifacts that remain unchanged. Further details on this release may be found in the changelog.

Next, Project Reactor 2022.0.21, the twenty-first maintenance release, provides dependency upgrades to reactor-core 3.5.19 and reactor-netty 1.1.21 and reactor-pool 1.0.7. There was also a realignment to version 2022.0.21 with the reactor-kafka 1.3.23, reactor-addons 3.5.1 and reactor-kotlin-extensions 1.2.2 artifacts that remain unchanged. More details on this release may be found in the changelog.

And finally, the release of Project Reactor 2020.0.46, codenamed Europium-SR46, provides dependency upgrades to reactor-core 3.4.40 and reactor-netty 1.0.47. There was also a realignment to version 2020.0.46 with the reactor-kafka 1.3.23, reactor-pool 0.2.12, reactor-addons 3.4.10, reactor-kotlin-extensions 1.1.10 and reactor-rabbitmq 1.5.6 artifacts that remain unchanged. Further details on this release may be found in the changelog.

Piranha Cloud

The release of Piranha 24.7.0 delivers bug fixes, dependency upgrades and a move of numerous utilities such as: Eclipse JAXB; OmniFaces JWT Authorization; OmniFish Transact; and Eclipse Parsson; to their own respective Piranha extension. This release also includes a new DefaultPiranhaBuilder class that implements the PiranhaBuilder interface. More details on this release may be found in their documentation and issue tracker.

Apache Software Foundation

The release of Apache Tomcat 9.0.91 ships with bug fixes and notable changes such as: ensure that the include directives in a tag file, both absolute and relative, are processed correctly when packaging in a JAR file; and expand the implementation of the filter value of the AuthenticatorBase.AllowCorsPreflight inner enum class in conjunction with the allowCorsPreflightBypass() method, defined in the AuthenticatorBase class, so that it applies to all requests that match the configured URL patterns for the CORS filter, rather than only applying if the CORS filter is mapped to /*. Further details on this release may be found in the release notes.

The release of Apache Camel 4.7.0 delivers bug fixes, dependency upgrades and improvements/new features such as: the addition of an endpoint service location to AWS, Azure and Google Cloud Platform components; a new developer console for the RestRegistry interface where a list of known REST services may be obtained; and a migration of the TransformerKey and ValidatorKey classes from implementation to the SPI. More details on this release may be found in the release notes.

Arquillian

Arquillian 1.9.0.Final has been released featuring notable changes such as: disable the Maven MultiThreadedBuilder class by default such that the build logs are readable on Continuous Integration; and restore use of the JUnit BeforeEachCallback and AfterEachCallback listener interfaces as the before() and after() methods, defined in the TestRunnerAdaptor interface, are called within the listeners. More details on this release may be found in the changelog.

Gradle

The release of Gradle 8.9.0 delivers: an improved error and warning reporting for variant issues during dependency resolution; structural details exposed of Java compilation errors for IDE integrators, allowing for easier analysis and resolving issues; and the ability to display more detailed information about JVMs used by Gradle. Further details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: Payara Platform, Jakarta EE 11 Specs, Open Liberty, Micronaut, Quarkus

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for June 17th, 2024 features news highlighting: the Payara Platform release for June 2024; all 16 Jakarta EE 11 specifications having passed their respective reviews; Open Liberty 24.0.0.6; Micronaut 4.5.0; and two Quarkus point releases.

OpenJDK

Christian Stein, Principal Member of Technical Staff at Oracle, has announced that version 7.4.0 of the Regression Test Harness for the JDK, jtreg, released in May 2024, is now the default version for the JDK 24 early-access builds.

JDK 23

Build 28 of the JDK 23 early-access builds was made available this past week featuring updates from Build 27 that include fixes for various issues. Further details on this release may be found in the release notes, and details on the new JDK 23 features may be found in this InfoQ news story.

JDK 24

Build 3 of the JDK 24 early-access builds was also made available this past week featuring updates from Build 2 that include fixes for various issues. Release notes are not yet available.

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

Jakarta EE

The final two specifications targeted for Jakarta EE 11, Jakarta Authentication 3.1 and Jakarta Security 4.0, have passed their respective release reviews this past week. This means that all 16 specifications updated for Jakarta EE 11 are now complete!

In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation, explained that efforts are focused on finalizing the TCK and completing the required changes in the Jakarta EE Platform, Web Profile and Core Profile before the final GA release of Jakarta EE 11.

Spring Framework

It was a busy week over at Spring as the various teams have delivered numerous milestone and point releases on Spring Boot, Spring Framework, Spring Security, Spring Authorization Server, Spring for GraphQL, Spring Session, Spring Integration, Spring Modulith, Spring AMQP, Spring for Apache Kafka, Spring for Apache Pulsar and Spring Tools. More details may be found in this InfoQ news story.

Payara

Payara has released their June 2024 edition of the Payara Platform that includes Community Edition 6.2024.6 and Enterprise Edition 6.15.0 and Enterprise Edition 5.64.0. All three editions feature: optimized Multi-Release JAR class loading for faster application startup and operation; and an improved thread expiration validation to resolve an inconsistent session timeout when using Session Replication with the --lite command line option.

There was also an upgrade to Payara Security Connectors 3.1.1 and 2.7.1 for the version 6 release train, Community and Enterprise, and the version 5 release train, respectively.

Further details on these releases may be found in the release notes for Community Edition 6.2024.6 and Enterprise Edition 6.15.0 and Enterprise Edition 5.64.0.

Helidon

Helidon 4.0.10, the tenth maintenance release, provides notable changes such as: a new inner class, MethodStateCache, defined in the MethodInvoker class that implements a new method caching strategy in fault tolerance; a resolution to handle an invalid end-of-line when parsing HTTP headers and add the appropriate tests; and improvements in validating JWT tokens. More details on this release may be found in the changelog.

Quarkus

Quarkus 3.11.2, the second maintenance release, ships with resolutions to notable issues such as: a NullPointerException due to the setListeners() method, defined in the ShutdownRecorder class, not being called in the when QUARKUS_INIT_AND_EXIT is used; a misspelled URL for a JQuery WebJar resource throws an StringIndexOutOfBoundsException instead of redirecting to an HTTP 404 status code; and a failure in using the Gradle quarkusDev parameter when usage analytics are enabled. Further details on this release may be found in the changelog.

Two days after the release of Quarkus 3.11.2, Quarkus 3.11.3, the third maintenance release, provides dependency upgrades and notable changes such as: compatibility with Maven Daemon (mvnd) 1.0; support for the ISO 8601 date/time format in the HTTP access logs; and a resolution to various issues with the lastModified property using the Quarkus REST extension. More details on this release may be found in the changelog.

Open Liberty

IBM has released version 24.0.0.6 of Open Liberty featuring: faster startup of Spring Boot applications using Spring Boot 3.0 InstantOn with CRaC; and InstantOn support for the Jakarta Messaging specification with IBM MQ and JCache Session Persistence feature.

This release also addresses CVE 2024-22354, a vulnerability affecting IBM WebSphere Application Server 8.5 and 9.0, and IBM WebSphere Application Server Liberty 17.0.0.3 through 24.0.0.5, that are vulnerable to an XML External Entity Injection (XXE) attack when processing XML data. A remote attacker could exploit this vulnerability to expose sensitive information, consume memory resources, or to conduct a server-side request forgery attack.

Micronaut

The Micronaut Foundation has released version 4.5.0 of the Micronaut Framework featuring Micronaut Core 4.5.3, bug fixes, improvements in documentation and updates to modules: Micronaut Data, Micronaut Servlet and Micronaut Micrometer.

This release also introduces new modules: Micronaut JSON Schema, for generating JSON schema definitions from classes at build time; Micronaut Sourcegen, for writing source generators and generating Builder and Wither classes; and Micronaut Guice, that allows the import of existing Guice modules.

Further details on this release may be found in the release notes.

Apache Software Foundation

The twenty-first milestone release of Apache Tomcat 11.0.0 along with point releases, 10.1.25 and 9.0.90, all feature bug fixes and notable changes such as: ensure that static resources deployed via a JAR file remain accessible when the context is configured to use a bloom filter; the default value of the discardFacades attribute, defined in the Connector class, is now true for improved safety; and an update to Commons Daemon 1.4.0. More details on these releases may be found in the release notes for version 11.0.0-M11, version 10.1.25 and version 9.0.90.

The release of Apache Camel 3.21.5 delivers bug fixes and improvements such as: removal of the now deprecated fireEvent() method from the Jakarta CDI BeanManager interface; and an improved JMSCorrelationID message header, defined in the Jakarta Messaging Message interface, to handle message brokers that have bugs. This is the last planned patch release for Camel 3.21 release train. Further details on this release may be found in the release notes.

The release of Apache Maven 3.9.8 ships with bug fixes, dependency upgrades and improvements such as: display the reason(s) why a model builder discards a model; an improvement to the SimplexTransferListener class to handle absent source/target files; and the list of plugins in the validation report are now sorted in alphabetical order. More details on this release may be found in the release notes.

JobRunr

Version 7.2.1 of JobRunr, a library for background processing in Java that is distributed and backed by persistent storage, has been released that primarily fixes a ConcurrentModificationException that may be thrown due to concurrent updates to an instance of a Job class. This completes the transition from Kotlin 1.7 to Kotlin 2.0 by correctly naming the necessary artifact. This version also provides an enhancement that validates an implementation of the JobRequest interface when using the JobBuilder or the RecurringJobBuilder classes. Further details on this release may be found in the release notes.

JHipster

The release of JHipster Lite 1.11.0 ships with bug fixes, dependency upgrades and new features/enhancements such as: a new ElementReplacer interface dedicated to insert text at the end of file; and an improved JHipster Lite logging. More details on this release may be found in the release notes.

Infinispan

Infinispan 15.0.5.Final, the fifth maintenance release, delivers notable changes such as: an optimized lookupResource() method, defined in the ResourceManagerImpl class, for improved processing of resources; a file cleanup in the RocksDB cache store before executing tests; and return an HTTP 400 (Bad Request) response code if a user requests initialization of an internal cache.

OpenXava

The release of OpenXava 7.3.3 ships with bug fixes, dependency upgrades and Maven improvements with new archetypes, openxava-project-management-archetype and openxava-crm-archetype, available in both English and Spanish. Further details on this release may be found in the release notes.

Keycloak

Keycloak 25.0.1, the first maintenance release, provides bug fixes and enhancements: use of a proper Apache FreeMarker template for the refurbished Account and Admin Consoles; and enhanced masking in the CLI with values passed using the --config-keystore parameter.

Gradle

The first release candidate of Gradle 8.9 delivers: an improved error and warning reporting for variant issues during dependency resolution; structural details exposed of Java compilation errors for IDE integrators, allowing for easier analysis and resolving issues; and the ability to display more detailed information about JVMs used by Gradle. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Spring Ecosystem Releases Focus on Spring Boot, Spring Security and Spring Modulith

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

There was a flurry of activity in the Spring ecosystem during the week of June 17th, 2024, highlighting point releases of: Spring Boot 3.3.1 and 3.2.7; Spring Security 6.3.1, 6.2.5 and 5.8.13; Spring Session 3.3.1 and 3.2.4; and Spring Modulith 1.2.1, 1.1.6 and 1.0.9.

Spring Boot

The release of Spring Boot versions 3.3.1 and 3.2.7 deliver improvements in documentation, dependency upgrades and resolutions to notable issues such as: an IllegalArgumentException when trying to use an instance of the Tomcat Http11Nio2Protocol class with Spring Boot-configured SSL; and an instance of the DataSourceProperties class fails to bind if the java.sql module isn’t included. Further details on these releases may be found in the release notes for version 3.3.1 and version 3.2.7.

Spring Framework

Spring Framework 6.1.10, the tenth maintenance release, provides bug fixes (that include regressions from version 6.1.9), improvements in documentation and new features: an instance of the PersistenceExceptionTranslationInterceptor class now defensively retrieves PersistenceExceptionTranslator interface beans to cover scenarios where the translator has not been initialized before shutdown; and support for all “connection reset” exception phrases from the DisconnectedClientHelper class. This version is included in the release of Spring Boot 3.2.7 and 3.3.1. More details on this release may be found in the release notes.

Spring Security

Versions 6.3.1, 6.2.5 and 5.8.13 of Spring Security have been released that ship with bug fixes, dependency upgrades, build updates and new features such as: enhanced logging from within the check() method, defined in the RequestMatcherDelegatingAuthorizationManager class, that did not provide useful information; and an update to the ldap.adoc file to include the required dependencies to avoid issues that developers have experienced while setting up LDAP. Further details on these releases may be found in the release notes for version 6.3.1, version 6.2.5 and version 5.8.13.

Spring Authorization Server

Versions 1.3.1 and 1.2.5 of Spring Authorization Server have been released featuring dependency upgrades and resolutions to issues: a ClassNotFoundException due to AOT hints preventing compilation when using JdbcOAuth2AuthorizationService or JdbcRegisteredClientRepository classes; and authentication for an X509 client certificate enforces the value assigned to the client_id field in the YAML configuration file without first checking on client authentication method. More details on these releases may be found in the release notes for version 1.3.1 and version 1.2.5.

Spring for GraphQL

Versions 1.3.1 and 1.2.7 of Spring for GraphQL have been released providing bug fixes, improvements in documentation, dependency upgrades and new features: support for returning instances of the Reactor Flux class from methods annotated with @EntityMapping to complement existing support for List, Mono and CompletableFuture; and allow the use of GraphQL Java 21.x in the Spring for GraphQL 1.2 release train. These versions are included in the release of Spring Boot 3.2.7 and 3.3.1, respectively. Further details on these releases may be found in the release notes for version 1.3.1 and version 1.2.7.

Spring Session

Versions 3.3.1 and 3.2.4 of Spring Session have been released with dependency upgrades and a new feature that resolves an issue in which a default implementation of the UserDetails interface, User, is returned instead of a user-defined custom implementation. More details on these releases may be found in the release notes for version 3.3.1 and version 3.2.4.

Spring Integration

Versions 6.3.1 and 6.2.6 of Spring Integration have been released featuring bug fixes, improvements in documentation, dependency upgrades and a new feature that provides the ZeroMqMessageHandler class with an optional topic for distributing messages into subscriptions that must be wrapped with an additional empty frame. This would complement the existing default topic. Further details on these releases may be found in the release notes for version 6.3.1 and version 6.2.6.

Spring Modulith

Versions 1.2.1 and 1.1.6 of Spring Modulith have been released featuring: an improved configuration of the ApplicationModuleDetectionStrategy interface via the spring.modulith.detection-strategy property that will accept values direct-sub-packages (default) or explicitly-annotated; a resolution to named interface detection accidentally picking up nested declarations in a nested interfaces scenario; and dependency upgrades to Spring Boot 3.3.1 and 3.2.7, respectively. More details on these releases may be found in the release notes for version 1.2.1 and version 1.1.6.

Spring AMQP

Version 3.1.6 of Spring AMQP has been released featuring dependency upgrades and resolutions to issues: the release() method, defined in the ActiveObjectCounter class, is unreachable due to the SimpleMessageListenerContainer class not having released the consumer variable; and elimination of an interrupted thread after performing target logic by moving the cancelTimeoutTaskIfAny() method, defined in the RabbitFuture class, into a finally block. Further details on this release may be found in the release notes.

Spring for Apache Kafka

Versions 3.2.1 and 3.1.6 of Spring for Apache Kafka have been released providing bug fixes, dependency upgrades and a new feature that adds tracing headers, now mapped to a string, in the AbstractKafkaHeaderMapper class after the migration from Sleuth to Micrometer. These versions are included in the release of Spring Boot 3.2.7 and 3.3.1, respectively. More details on these releases may be found in the release notes for version 3.2.1 and version 3.1.6.

Spring for Apache Pulsar

Versions 1.1.1 and 1.0.7 of Spring for Apache Pulsar have been released featuring numerous dependency upgrades that include: Micrometer Metrics 1.13.1 and 1.12.7, respectively; Reactive Client for Apache Pulsar 0.5.6; and Spring Framework 6.1.9. These versions are included in the release of Spring Boot 3.2.7 and 3.3.1, respectively. Further details on these releases may be found in the release notes for version 1.1.1 and version 1.0.7.

Spring Tools

Less than a week after the release of version 4.23.0, version 4.23.1 of Spring Tools has been released to deliver important fixes such as: adding preferences/settings for enabling/disabling JPQL, HQL and SQL syntax validation as well as severities for syntax problems inside Spring Data queries that were missing; and a StackOverflowException from within the AnnotationHierarchies class upon opening a Spring Boot project in VSCode. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: JEPs Targeted for JDK 23, JHipster 8.5, Gradle 8.8, Spring AI 1.0-M1

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for May 27th, 2024 features news highlighting: four JEPs targeted for JDK 23, namely: JEP 482, Flexible Constructor Bodies (Second Preview), JEP 481, Scoped Values (Third Preview), JEP 480, Structured Concurrency (Third Preview) and JEP 471, Deprecate the Memory-Access Methods in Unsafe for Removal; and the releases of JHipster 8.5, Gradle 8.8 and Spring AI 1.0-M1.

OpenJDK

After its review has concluded, JEP 482, Flexible Constructor Bodies (Second Preview), has been promoted from Proposed to Target to Targeted for JDK 23. This JEP proposes a second round of preview and a name change to obtain feedback from the previous round of preview, namely JEP 447, Statements before super(…) (Preview), delivered in JDK 22. This feature allows statements that do not reference an instance being created to appear before the this() or super() calls in a constructor; and preserve existing safety and initialization guarantees for constructors. Changes in this JEP include: a treatment of local classes; and a relaxation of the restriction that fields can not be accessed before an explicit constructor invocation to a requirement that fields can not be read before an explicit constructor invocation. Gavin Bierman, Consulting Member of Technical Staff at Oracle, has provided an initial specification of this JEP for the Java community to review and provide feedback.

After its review has concluded, JEP 481, Scoped Values (Third Preview), has been promoted from Proposed to Target to Targeted for JDK 23. Formerly known as Extent-Local Variables (Incubator), this JEP proposes a third preview, with one change, in order to gain additional experience and feedback from one round of incubation and two rounds of preview, namely: JEP 464, Scoped Values (Second Preview), delivered in JDK 22; JEP 446, Scoped Values (Preview), delivered in JDK 21; and JEP 429, Scoped Values (Incubator), delivered in JDK 20. This feature enables sharing of immutable data within and across threads. This is preferred to thread-local variables, especially when using large numbers of virtual threads. The change in this feature is related to the operation parameter of the callWhere() method, defined in the ScopedValue class, is now a functional interface which allows the Java compiler to infer whether a checked exception might be thrown. With this change, the getWhere() method is no longer needed and has been removed.

After its review has concluded, JEP 480, Structured Concurrency (Third Preview), has been promoted from Proposed to Target to Targeted for JDK 23. This JEP proposes a third preview, without change, in order to gain more feedback from the previous two rounds of preview, namely: JEP 462, Structured Concurrency (Second Preview), delivered in JDK 22; and JEP 453, Structured Concurrency (Preview), delivered in JDK 21. This feature simplifies concurrent programming by introducing structured concurrency to “treat groups of related tasks running in different threads as a single unit of work, thereby streamlining error handling and cancellation, improving reliability, and enhancing observability.”

After its review has concluded, JEP 471, Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal, has been promoted from Proposed to Target to Targeted for JDK 23. This JEP proposes to deprecate the memory access methods in the Unsafe class for removal in a future release. These unsupported methods have been superseded by standard APIs, namely; JEP 193, Variable Handles, delivered in JDK 9; and JEP 454, Foreign Function & Memory API, delivered in JDK 22.

Build 23-loom+4-102 of the Project Loom early-access builds are based on JDK 23 Build 25 and improves the implementation of Java monitors (synchronized methods) to work better with virtual threads.

Build 22-jextract+5-33 of the Project Jextract early-access builds, also known as Project Panama, are based on JDK 22 and provides a recommendation in which the quarantine attribute from the bits may need to be removed before using the jextract binaries on macOS Catalina or later.

JDK 23

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

Jakarta EE

In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation, has provided an additional update on the upcoming GA release of Jakarta EE 11.

Nine (9) specifications, namely – Jakarta Annotations 3.0, Jakarta Authorization 3.0, Jakarta Contexts and Dependency Injection 4.1, Jakarta Expression Language 6.0, Jakarta Interceptors 2.2, Jakarta RESTful Web Services 4.0, Jakarta Persistence 3.2, Jakarta Validation 3.1 and Jakarta WebSocket 2.2 – have been finalized for Jakarta EE 11.

Five (5) specifications, namely – Jakarta Concurrency 3.1, Jakarta Data 1.0, Jakarta Faces 4.1, Jakarta Pages 4.0 and Jakarta Servlet 6.1 – should have their respective reviews completed during the week of June 3, 2024.

And reviews for the remaining two (2) specifications, Jakarta Authentication 3.0 and Jakarta Security 4.0, should start during the week of June 10, 2024.

Discussing the remaining work required for the GA release, Grimstad stated:

There is some work to be done on the TCK and the specification documents before the release reviews of the Jakarta EE 11 Platform, Jakarta EE 11 Web Profile, and Jakarta EE 11 Core Profile specifications can start. This will likely happen in late June or early July, so we are on track according to the release plan.

GlassFish

GlassFish 7.0.15, fifteenth maintenance release in the 7.0.0 release train, provides improvements in documentation, dependency upgrades and notable resolutions to issues such as: a ClassCastException due to improper classloader matching in the Weld BeanDeploymentArchive interface; cluster monitoring data not being displayed in the Admin Console; and an IllegalArgumentException in the toString() method, defined in the Application class, due to a bundle without descriptor being valid. More details on this release may be found in the release notes.

TornadoVM

TornadoVM 1.0.5, the fifth maintenance release, ships with bug fixes and improvements such as: support for Vector types at the API level in the variants of the Floatx class with variants of Intx class; an improved OpenCL build log; an improvements in the TornadoOptions and TornadoLogger classes where all options (debug, events, etc.) have been moved to the former and all debugging has been moved to the latter.

Spring Framework

It was a very quiet week at Spring compared to the release activity during the week of May 20, 2024.

Following the release of Spring Boot 3.3.0, 3.2.6 and 3.1.12, versions 3.0.16 and 2.7.21 were released this past week featuring many dependency upgrades and notable bug fixes: when graceful shutdown of Tomcat is aborted, it may report that it completed successfully; and resolving an instance of the BuildpackReference class, created from a URL-like String, can fail on Windows. Further details on these releases may be found in the release notes for version 3.0.16 and version 2.7.21.

Spring Cloud 2023.0.2, codenamed Leyton, and 2022.0.7 Enterprise Edition have been released featuring featuring bug fixes and notable updates to sub-projects: Spring Cloud Kubernetes 3.1.2; Spring Cloud Function 4.1.2; Spring Cloud OpenFeign 4.1.2; Spring Cloud Stream 4.1.2; and Spring Cloud Gateway 4.1.4. This release is based on Spring Boot 3.3.0. More details on this release may be found in the release notes.

The first milestone release of Spring AI 1.0.0 delivers new features such as: a new ChatClient fluent API, composed of the ChatClient interface and Builder inner class, providing methods to construct an instance of a Prompt class, which is then passed as input to an AI model; eight (8) new AI models; updated existing models; and support for Testcontainers. Developers interested in learning more can follow this example application.

Versions 3.3.0-RC1, 3.2.5 and 3.1.12 of Spring Shell have been released featuring a breaking change ​​that replaces the use of the Spring Boot ApplicationArguments interface with a plain String array in the ShellRunner interface and its implementations. Default methods to bridge new methods were created and old methods were deprecated with a plan to remove them in Spring Shell 3.4.x. This is part of on-going work to remove all Spring Boot classes from the Spring Shell core package. These versions build upon Spring Boot 3.3.0, 3.2.5 and 3.1.12, respectively, and JLine 3.26.1. Further details on these releases may be found in the release notes for version 3.3.0-RC1, version 3.2.5 and version 3.1.12.

Helidon

The release of Helidon 4.0.9 ships with notable changes such as: a resolution to an IndexOutOfBoundsException generated from the first(String) method, defined in the Parameters interface, due to index 0 being out of bounds for an array of length 0; a refactor of the OCI metrics library code is organized so other implementations can extend common types without having to also include the OCI metrics library CDI module; and improvements to the WebClientSecurity class against absent or disabled tracing. More details on this release may be found in the release notes.

Quarkus

The release of Quarkus 3.11 delivers notable changes such as: a new OidcRedirectFilter interface to dynamically customize OIDC redirects; initial support of security integration for the WebSockets Next extension; and a new Infinispan Cache extension that will replace the now-deprecated @CacheResult annotation. Further details on this release may be found in the release notes. InfoQ will follow up with a more detailed news story.

Micronaut

The Micronaut Foundation has released version 4.4.3 of the Micronaut Framework featuring Micronaut Core 4.4.10, bug fixes, improvements in documentation and updates to modules: Micronaut Data and Micronaut Test Resources. More details on this release may be found in the release notes.

WildFly

WildFly 32.0.1, first maintenance release, delivers component upgrades and notable resolutions to issues such as: a ClassCastException when running live-only High Availability policy in the messaging-activemq subsystem; a possible NoSuchElementException upon deploying multiple OpenAPI endpoints; and restoration of the io.smallrye.opentelemetry module to the OpenTelemetryDependencyProcessor class as this module is required on the deployment classpath since that contains the CDI provider method providing the implementation of the OpenTelemetry Tracer interface. Further details on this release may be found in the release notes.

Hibernate

The release of Hibernate Reactive 2.3.1.Final ships with dependency upgrades and a resolution to a NullPointerException due to a method that converts the generated ID from the database to a ResultSet was not implemented. This release is compatible with Hibernate ORM 6.5.2.Final. More details on this release may be found in the release notes.

Apache Software Foundation

Apache Maven 4.0.0-beta-3 provides bug fixes, dependency upgrades and improvements such as: initial support for Maven 4.0 API to be usable outside of the runtime; changes in the PathType interface to control the type of path where each dependency can be placed; and support for the fatjar, a dependency type to be used when dependency is considered self contained. Further details on this release may be found in the release notes.

Similarly, Apache Maven 3.9.7 ships with bug fixes, dependency upgrades and new features: support for wildcards in an OS version to specify wildcard in the OS version tag; and the ability to ignore transitive dependency repositories using the mvn -itr command. More details on this release may be found in the release notes.

Maintaining alignment with Quarkus, the release of Camel Quarkus 3.11.0, composed of Camel 4.6.0 and Quarkus 3.11.0, provides resolutions to notable issues such as: Quarkus Infinispan not compatible with Camel Infinispan due to differences in Infinispan version support; and improved auto-configuration by moving the options for the SupervisingRouteController interface into its own group. Further details on this release may be found in the release notes.

JobRunr

Version 7.2.0 of JobRunr, a library for background processing in Java that is distributed and backed by persistent storage, has been released featuring bug fixes, dependency upgrades and new features such as: support for Spring Boot 3.3.0 where JobRunr now declares the spring-boot-starter dependency with a provided scope; support for Kotlin 2.0.0 (support for Kotlin 1.7.0 ahs been dropped); and deleting a job using the JobScheduler or JobRequestScheduler classes will be retried if a ConcurrentJobModificationException is thrown. More details on this release may be found in the release notes.

JHipster

The release of JHipster 8.5.0 delivers: support for Spring Boot 3.3.0; a resolution to issues with OIDC claims in the SecurityUtils class when the syncUserWithIdp boolean is set to false; and resolutions to multiple issues with SonarCloud, used by JHipster for code quality. Further details on this release may be found in the release notes. InfoQ will follow up with a more detailed news story.

JDKUpdater

Versions 14.0.53+75 and 14.0.51+73 of JDKUpdater, a new utility that provides developers the ability to keep track of updates related to builds of OpenJDK and GraalVM. Introduced in mid-March by Gerrit Grunwald, principal engineer at Azul, these releases include: an update in the base URL for CVE details; and modifications related to menu items. More details on this release may be found in the release notes for version 14.0.53+75 and version 14.0.51+73.

Gradle

The release of Gradle 8.8 delivers: full support for JDK 22; a preview feature to configure the Gradle daemon JVM using toolchains; improved IDE performance with large projects; and improvements to build authoring, error and warning messages, the build cache, and the configuration cache. Further details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: Java Turns 29, Kotlin 2.0, Semantic Kernel for Java 1.0, More OpenJDK Updates

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for May 20th, 2024 features news highlighting: Java’s 29th birthday; the release of Kotlin 2.0 and Semantic Kernel for Java 1.0; JEP 477, Implicitly Declared Classes and Instance Main Methods (Third Preview), targeted for JDK 23; and four JEPs proposed to target for JDK 23

Java Turns 29

On May 23rd, 1995, Java 1.0 was introduced to developers who attended the Sun World ‘95 conference. A Java community was born and 29 years later, the community has evolved to include 370 global Java User Groups, 370 Java Champions and many Java-related conferences in a given calendar year. There have been 22 formal releases

At Devnexus 2024, Sharat Chander, Senior Director, Product Management & Developer Engagement at Oracle, announced that JavaOne will return to celebrate Java’s 30th birthday. It will be held March 17-20, 2025 in Redwood Shores, California. Please stay tuned for the call for papers.

OpenJDK

After its review has concluded, JEP 477, Implicitly Declared Classes and Instance Main Methods (Third Preview), has been promoted from Proposed to Target to Targeted for JDK 23. Formerly known as Unnamed Classes and Instance Main Methods (Preview), Flexible Main Methods and Anonymous Main Classes (Preview) and Implicit Classes and Enhanced Main Methods (Preview), this JEP incorporates enhancements in response to feedback from the two previous rounds of preview, namely JEP 463, Implicit Classes and Instance Main Methods (Second Preview), delivered in JDK 22, and JEP 445, Unnamed Classes and Instance Main Methods (Preview), delivered in JDK 21. This JEP proposes to “evolve the Java language so that students can write their first programs without needing to understand language features designed for large programs.” This JEP moves forward the September 2022 blog post, Paving the on-ramp, by Brian Goetz, Java Language Architect at Oracle. The latest draft of the specification document by Gavin Bierman, Consulting Member of Technical Staff at Oracle, is open for review by the Java community. More details on JEP 445 may be found in this InfoQ news story.

JEP 482, Flexible Constructor Bodies (Second Preview), has been promoted from Candidate to Proposed to Target for JDK 23. This JEP proposes a second round of preview and a name change to obtain feedback from the previous round of preview, namely JEP 447, Statements before super(…) (Preview), delivered in JDK 22. This feature allows statements that do not reference an instance being created to appear before the this() or super() calls in a constructor; and preserve existing safety and initialization guarantees for constructors. Changes in this JEP include: a treatment of local classes; and a relaxation of the restriction that fields can not be accessed before an explicit constructor invocation to a requirement that fields can not be read before an explicit constructor invocation. Gavin Bierman, Consulting Member of Technical Staff at Oracle, has provided an initial specification of this JEP for the Java community to review and provide feedback. The review is expected to conclude on May 27, 2024.

JEP 481, Scoped Values (Third Preview), has been promoted from Candidate to Proposed to Target for JDK 23. Formerly known as Extent-Local Variables (Incubator), this JEP proposes a third preview, with one change, in order to gain additional experience and feedback from one round of incubation and two rounds of preview, namely: JEP 464, Scoped Values (Second Preview), delivered in JDK 22; JEP 446, Scoped Values (Preview), delivered in JDK 21; and JEP 429, Scoped Values (Incubator), delivered in JDK 20. This feature enables sharing of immutable data within and across threads. This is preferred to thread-local variables, especially when using large numbers of virtual threads. The change in this feature is related to the operation parameter of the callWhere() method, defined in the ScopedValue class, is now a functional interface which allows the Java compiler to infer whether a checked exception might be thrown. With this change, the getWhere() method is no longer needed and has been removed. The review is expected to conclude on May 29, 2024

JEP 480, Structured Concurrency (Third Preview), has been promoted from Candidate to Proposed to Target for JDK 23. This JEP proposes a third preview, without change, in order to gain more feedback from the previous two rounds of preview, namely: JEP 462, Structured Concurrency (Second Preview), delivered in JDK 22; and JEP 453, Structured Concurrency (Preview), delivered in JDK 21. This feature simplifies concurrent programming by introducing structured concurrency to “treat groups of related tasks running in different threads as a single unit of work, thereby streamlining error handling and cancellation, improving reliability, and enhancing observability.” The review is expected to conclude on May 27, 2024.

JEP 471, Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal, has been promoted from Candidate to Proposed to Target for JDK 23. This JEP proposes to deprecate the memory access methods in the Unsafe class for removal in a future release. These unsupported methods have been superseded by standard APIs, namely; JEP 193, Variable Handles, delivered in JDK 9; and JEP 454, Foreign Function & Memory API, delivered in JDK 22. The review is expected to conclude on May 27, 2024.

JDK 23

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

Jakarta EE 11

In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation, has provided an update on the upcoming GA release of Jakarta EE 11. Nine (9) specifications, namely – Jakarta Annotations 3.0, Jakarta Authorization 3.0, Jakarta Contexts and Dependency Injection 4.1, Jakarta Expression Language 6.0, Jakarta Interceptors 2.2, Jakarta RESTful Web Services 4.0, Jakarta Persistence 3.2, Jakarta Validation 3.1 and Jakarta WebSocket 2.2 – have been finalized for Jakarta EE 11. The remaining seven (7) updated specifications are in various stages of review.

Spring Framework

It was a busy week over at Spring as the various teams have delivered numerous milestone and point releases on Spring Boot, Spring Framework, Spring Cloud Data Flow, Spring Security, Spring Authorization Server, Spring for GraphQL, Spring Session, Spring Integration, Spring Modulith, Spring Batch, Spring AMQP, Spring for Apache Kafka and Spring for Apache Pulsar. More details may be found in this InfoQ news story.

Kotlin

JetBrains has released version 2.0 of Kotlin that finalizes the new frontend for the Kotlin compiler, codenamed K2, to unify all supported Kotlin platforms by which all compiler backends now share a significant amount of logic and a unified pipeline. Kotlin 2.0 promises faster compilation speed and support for Compose Multiplatform projects. JetBrains has also been developing a K2 Kotlin Mode, currently in alpha, for IntelliJ IDEA. Further details on this release may be found in the what’s new page. InfoQ will follow up with a more detailed news story.

Quarkus

Quarkus 3.10.2, the second maintenance release, ships with notable changes such as: a resolution to a QuarkusErrorHandler runtime error upon invoking a REST client endpoint that accepts a @BeanParam on a bean containing a List field annotated with @RestForm; and set the correct configuration key upon generating a native build from Gradle. More details on this release may be found in the changelog.

Open Liberty

IBM has released version 24.0.0.5 of Open Liberty featuring resolutions to the following Common Vulnerabilities and Exposures (CVEs) where a remote attacker can send a specially crafted request causing the server to consume memory resources resulting in a denial-of-service

  • CVE-2024-27268, a vulnerability in WebSphere Application Server Liberty versions 18.0.0.2 through 24.0.0.4.
  • CVE-2024-22353, a vulnerability in WebSphere Application Server Liberty versions 17.0.0.3 through 24.0.0.4.
  • CVE-2024-25026, a vulnerability in WebSphere Application Server versions 8.5 and 9.0, and IBM WebSphere Application Server Liberty 17.0.0.3 through 24.0.0.4.

Notable bug fixes include: a ClassCastException upon using SIP Servlet 1.1 and WebSocket features; the featureUtility connection test to a base URL of a custom repository returns a HTTP 400 response code and fails to recognize it as a working repository. Further details on all of the bug fixes may be found in this list of issues.

Microsoft

After more than a year in development, Microsoft has introduced the general availability of Semantic Kernel for Java, an SDK that meshes Large Language Models (LLMs) with popular programming languages. Version 1.0 delivers: tool calling that enables an AI service to request the invocation of native Java functions; support for both text-to-audio and audio-to-text conversions with their audio service; an enhanced type conversion that allows user to register types and serialize/deserialize them to and from prompts; and the introduction of hooks to monitor key points such as function calls, enabling users to log or intercept them for better tracking and debugging. InfoQ will follow up with a more detailed news story.

Infinispan

Infinispan 15.0.4, the fourth maintenance release, provides notable changes such as: a resolution to a flaky test found in the TracingSecurityTest class; the addition of node names in the tracing spans; and a simplification of the default server configuration files. More details on this release may be found in the release notes and in this InfoQ news story on the release of Infinispan 15.0.0.

JHipster Lite

The release of JHipster Lite 1.9.0 ships with bug fixes, dependency upgrades and new features/enhancements such as: the addition of the Gradle frontend server plugin; removal of the gradleapp property from generate.sh as Gradle is now fully supported; and a simplification of lint-staged configuration. Further details on this release may be found in the release notes.

Langchain4j

Version 0.31.0 of LangChain for Java (LangChain4j) features new integrations: embedding models, Cohere and Jina; web search engines, Google and Tavily; the Jina scoring (re-ranking) model; and the Azure Cosmos DB for NoSQL embedding store. Breaking changes include: a rename of the Judge0 package from dev.langchain4j.code to dev.langchain4j.code.judge0; and a migration of the Anthropic language model from Gson to Jackson. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.