-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Migration Guide 3.10
Note
|
We highly recommend the use of Items marked below with ⚙️ ✅ are automatically handled by |
We updated Quarkus to Flyway 10.
For some databases, the support that was previously part of the main artifact has been split to separate artifacts.
For instance, the PostgreSQL support has been moved to org.flywaydb:flyway-database-postgresql
.
If you are using Flyway with PostgreSQL, you need to add this dependency to your project.
-
Support for traces when using the
quarkus-redis-client
. -
Rest clients span names will now include
operation
andpath
, instead of only theoperation
part. Example: "GET /hello"
The io.quarkus.qute.TemplateInstance
is not registered as a non-blocking type anymore. Therefore, if a JAX-RS resource method returns TemplateInstance
, then it will be considered blocking by default. The @io.smallrye.common.annotation.NonBlocking
annotation can be used to restore the previous behavior.
Note
|
This change only affects applications using the Quarkus REST (formerly RESTEasy Reactive) via the quarkus-rest extension.
|
Starting from Quarkus 3.10, the execution mode for Quarkus Messaging extensions synchronous methods defaults to worker threads. For example, the following processing method will now be called by default on the worker thread instead of Vert.x I/O thread:
package org.acme;
import org.eclipse.microprofile.reactive.messaging.Incoming;
import org.eclipse.microprofile.reactive.messaging.Outgoing;
@Incoming("source")
@Outgoing("sink")
public Result process(int payload) {
return new Result(payload);
}
It is easy to revert this behaviour, using the quarkus.messaging.blocking.signatures.execution.mode
property.
Possible values are worker
(default), event-loop
(previous behaviour) and virtual-thread
.
The execution mode can still be adjusted per method, using @Blocking
and @NonBlocking
annotations:
package org.acme;
import io.smallrye.common.annotation.NonBlocking;
import org.eclipse.microprofile.reactive.messaging.Incoming;
@Incoming("source")
@NonBlocking`
public void consume(int payload) {
// called on I/O thread
}
The following properties relating to packaging have been renamed or changed. If you use these properties in your configuration, they will still work, however a warning will be printed.
Original property name |
Replaced with |
|
For JAR builds, use |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No replacement; ignored |
|
|
|
|
|
|
|
|
|
|
Starting from Quarkus 3.9.0, quarkus.oidc.authentication.user-info-required
property is now automatically set to true
when quarkus.oidc.UserInfo
is injected in the REST endpoint.
It may cause OIDC tenant initialization failures if you use more than one OIDC tenant to secure the endpoint and some of these tenants do not support UserInfo
.
In such cases, set a tenant specific quarkus.oidc.<tenantid>.authentication.user-info-required
property to false
.