-
Notifications
You must be signed in to change notification settings - Fork 3k
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
operationandpath, instead of only theoperationpart. 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.