Eclipse Vert.x 4.1.0.Beta1 released!
We are extremely pleased to announce the first beta of Vert.x 4.1.
We consider Vert.x 4.1 feature complete, this is the first beta and we will do a few release candidates to allow the community to test it and report issues.
Reactive Microsoft SQL Server Client
In this first release, several common data types are supported, as well as prepared statements and transactions.
We are working hard to support more data types and batch statements before 4.1.0 is generally available.
The client is in tech preview and we are eager to hear any feedback you may have.
Vert.x HTTP Proxy
It is very easy to write an HTTP proxy with Vert.x, yet there are a lot of things that proxies must do.
Vert.x HTTP Proxy is a new component of the stack that aims to make it easy to write proxies.
You can create a proxy as follows:
proxyServer.requestHandler( HttpProxy.reverseProxy(vertx.createHttpClient()) .origin(7070, "localhost")) .listen(8080);
The proxy can also dynamically resolve the origin (i.e the proxied server):
HttpProxy proxy = HttpProxy.reverseProxy(proxyClient).originSelector( address -> resolveOrigin(address) );
This component is in tech preview and will receive more features over time.
Open Telemetry support
Open Telemetry tracing is a new and noticeable tracing integration available in 4.1.
Service proxy with futures
Vert.x 4 provides a future-first API. However, service proxies can only be declared with callbacks.
We addressed this issue in Vert.x 4.1 and you can now write service proxies with futures. The only change you need is to declare the future usage in the Codegen module declaration.
In this release, we improved the logging handler to enable custom logging formats.
The OAuth2 handler now follows the OIDC standard by validating the requested scopes are present in the OAuth2 response. A new APIKEY handler was added to support more security use cases, and it is now possible to write custom authn handlers without requiring internal classes.
ctx.json() now follows the IANA content type standard.
A lot of community discussions and work has been done to improve the security handling of OpenAPI in Vert.x. We now support all kinds of security described in OpenAPI 3.0, OpenId, OAuth2, API-Key, HTTP.
The new API also allows for fetching the security configuration from the document itself, rather than having it double-configured in the document and in the code.
In the Vert.x auth module, support for
EdDSA was added to the JOSE/COSE code. This means that we can now use those algorithms in JWT/OAuth2/OIDC/FIDO2. The support relies only on the provided JDK which means that users will need to use JDK 15 or above to be able to use those algorithms.
In the JOSE code, improvements were made to correctly follow the
use value of a JWK and more tests were added to verify that we interop properly with tokens generated by other libraries.
FIDO2/Webauthn we follow the recommendation of storing the attestation certificates, which allows offline validation of devices. This is a utility that allows you to check if tokens have been compromised and disable their future use at the RP.
General pool improvements
Vert.x internal pool has been improved to gain more flexibility with new features such as
- multiple event loops per pool
- waiter cancellation
- lock free implementation
- connection selection strategy
In addition, the internal pool is now used by the Vert.x SQL Client and Vert.x Mail Clients.
Web Session Storage with Infinispan
It is implemented on top of the Infinispan client so it can be used with either standalone or clustered Vert.x applications.
If you want to get started, don’t miss the Web Session Storage with Infinispan Client how-to.
This is the first beta release of Vert.x 4.1. You can of course expect more as we get feedback from the community and fix issues that we failed to catch before.
Deprecations and breaking changes can be found on the wiki.
For this release, there are no Docker images.
You can bootstrap a Vert.x 4.1.0.Beta1 project using https://start.vertx.io.
The documentation has been deployed on the web-site: https://vertx.io/docs/4.1.0
That’s it! Happy coding and see you soon on our user or dev channels.
The first candidate release of the upcoming Vert.x 4.1 has just been released. We consider it feature complete and invite the community to test it.
Eclipse Vert.x version 3.9.7 has just been released. It fixes quite a few bugs that have been reported by the community.