Java Digest # 7: awaiting Java 22, #1BRC, Spring has no chill
?? Aloha, friends!?
We're back in action after those chill winter holidays! While we were kickin' it, the world of Java and its surroundings saw a bunch of cool stuff goin' down. So, let's dive into the news, peeps
You can read the previous digest here.
JEP 455, Primitive Types in Patterns, instanceof, and switch (Preview), has been promoted from Candidate to Proposed to Target for JDK 23. Under Project Amber's auspices, this JEP proposes to enhance pattern matching by allowing primitive type patterns in all pattern contexts, and also extends instanceof and switch to work with all primitive types. Aggelos Biboudis, a principal member of the technical staff at Oracle, has recently published an updated draft specification for this feature.
Ron Pressler and Alex Buckley have submitted JEP Draft 8323072, Deprecate Memory-Access Methods in sun.misc.Unsafe for Removal. This JEP proposes to deprecate the memory-access methods defined in the sun.misc.Unsafe class for removal in a future release. These now unsupported methods have had supported replacements since JDK 9 for accessing on-heap memory and JDK 22 for accessing off-heap memory.
JDK 22 is peekin' over the horizon, folks! Early access builds? Grab them from the link right here. Mark your calendars – this JDK version is set to hit the streets on March 19, 2024. And hey, since JDK 22 is already strutting in its 2nd Rampdown phase, no new JEPs are jumping aboard – that train's left the station (unless you're talking Late-Enhancement Request Process, but that's a long shot). So, come March, and we're lookin' at these 12 cool features rolling out:
If JDK 22 is too mainstream for ya, check this out – Early Access build no. 6 of JDK23, fresh off the press!
Oracle Labs just dropped another release of GraalVM for JDK 21 Community 21.0.2. This baby packs some fixes as part of the Critical Patch Update for January 2024. For the nitty-gritty, hit up those release notes!
Spring Boot 3.3.0-M1 is here for the taking, packed with 105 updates. Most of these changes involve sprucing up the docs, bumping up dependency versions, and squashing bugs. But hold up, there are some nifty new features worth shouting about:
spring.security.oauth2.resourceserver.jwt.authority-prefix
spring.security.oauth2.resourceserver.jwt.principal-claim-name
spring.security.oauth2.resourceserver.jwt.authorities-claim-name.
January also saw the roll-out of two support versions for Spring Boot, namely Spring Boot 3.2.2 and Spring Boot 3.1.8. The focus was majorly on fixing bugs and updating dependency versions. Scoop up more deets right here and there.
Heads up, folks! Attention! Pozor!?
Our editorial team is pushin' all our readers to update their web projects to the latest Spring Boot versions ASAP. Why? 'Cause some nasty vulnerability in the older versions could lead to your site being MIA. Get the lowdown on this vulnerability right here.
As expected, fresh versions of Spring Framework hit the scene – 6.1.3 and 6.0.16. Both versions were the base for the Spring Boot versions 3.2.2 and 3.1.8 mentioned above. Dive into the detailed change log with this link.
Under the radar, without a peep on their blog, the Spring Security team dropped Spring Security 6.3.0-M1. Along with the usual bug fixes and dependency updates, this version packs some cool new features. The highlights? In RoleHierarchyImpl, there's a shiny new factory method that lets you set up hierarchies without fiddling with setters; a fresh attribute offset added to the @EnableMethodSecurity annotation; and HandlerMappingIntrospector now has caching for a performance boost. Dive into the full change log right here.
Also, Spring Security 6.3 is bringing in some sneaky JDK serialization/deserialization for smoother updates. Check out this article to get the scoop on the issues that sparked these changes.
Spring Authorization Server 1.3.0-M1 has beefed up error logging for invalid or expired authorization codes, added support for multi-tenancy using the issuer path component, and expanded scope validation capabilities. Get the full lowdown right here.
Spring Data 2023.1.2 and 2023.0.8 are up for grabs! These releases come loaded with dependency updates, regression fixes, and some slick improvements. Both versions are already rockin' on the latest Spring Boot releases.
For Spring Modulith, not one, not two, but three versions have dropped: 1.0.5, 1.1.2, and 1.2 M1. The main dish in these releases? Bug fixes and nifty tweaks in the event publication registry, event externalization, and overall configuration. Get the full deets in the change logs for each version.
The latest Spring Cloud Commons 4.1.1 update tackles a tricky issue with BeanPostProcessors registration when components tagged with @LoadBalanced are whipped up through autoconfiguration.
Spring Cloud Dataflow 2.11.2 just leveled up to Spring Boot 2.7.18 and includes a fix for CVE-2023-6378.
Spring for Apache Kafka 3.1.1 is out and about for use. This is the first release since the project's founder, Gary Russell, decided to hang up his coding boots and retire. The focus? Polishing existing features and fixing bugs. This version is in action from Spring Boot 3.2.1 onwards.
Another one of Gary Russell's babies, Spring AMQP, snagged its first release after his departure, hitting version 3.1.1. All the docs have been moved to Spring Antora, synchronized code blocks got swapped with Lock (and Conditional) instances to fit in with virtual threads, plus there's a nifty mechanism for activating more commonly used modules in ObjectMapper right out of the box. Like before, this version kicks in with Spring Boot from 3.2.1 onwards.
Spring for Apache Pulsar also bagged a new version, 1.0.2. The big news? The addition of a BOM module (spring-pulsar-bom) to simplify using Spring for Apache Pulsar in scenarios where Spring Boot isn't in the mix. Some dependencies also got a refresh. This version is included in Spring Boot from 3.2.2 onwards.
领英推荐
Spring Session 3.3.0-M1 offers a Reactive Redis Indexed implementation of ReactiveSessionRepository with support for session events and session searching by principal name. This new implementation adopts a different approach to storing and retrieving secondary index info and session expiration strategies.
Spring Web Services has hit version 4.0.10. Added support for jar:nested in SchemaFactoryUtils, axed duplicate dependency declarations for HTTPClient, and updated Spring Framework to 6.0.16.
There's also a new release of Spring Tools 4.21.0 for Eclipse, Visual Studio Code, and Theia. Check out the detailed change log right here.
Spring Shell dropped not one but two versions – 3.1.8 and 3.2.1. Both versions are packed with bug fixes and updates to the latest Spring Boot versions.
Let's shift gears to news not directly tied to updates in the Spring ecosystem.
Joris Kuipers has shared a tale of migrating a project from Spring Cloud 2.4 to Spring Cloud 3.x. His article deep dives into the key differences noticed during the project's shift to Spring Cloud 3.x.
Maciej Walkowiak rolled out a new version of his project, WireMock Spring Boot. This library makes working with Wiremock a breeze, so our editorial team suggests checking it out if you haven't yet.
Since our last update, Josh Long has dropped four videos in the Spring Tips series. You can catch them below:
???Java 22 Previews Statements Before super(...) and this(...) - Inside Java Newscast #62
This issue was brought to you by the Avenga team: