-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Migration Guide 3.22
Note
|
We highly recommend the use of Items marked below with ⚙️ ✅ are automatically handled by |
The REST Data Panache modules (quarkus-hibernate-orm-rest-data-panache
, quarkus-hibernate-reactive-rest-data-panache
, quarkus-mongodb-rest-data-panache
and spring-data-rest
) no longer work in combination with quarkus-resteasy*
modules, only with quarkus-rest*
modules.
Previously, the JsonRPCProvidersBuildItem
was produced in most extensions only in dev mode, typically using
@BuildStep(onlyIf = IsDevelopment.class)
JsonRPCProvidersBuildItem createJsonRPCService() {
return new JsonRPCProvidersBuildItem(...);
}
This is because there was only a single purpose for JsonRPCProvidersBuildItem
: to register the given class for Dev UI JSON RPC.
However, The JSON RPC classes can use execution model affecting annotations (@Blocking
, @NonBlocking
, @RunOnVirtualThread
), which Quarkus validates.
Specifically for that validation purpose, the execution model validation used to contain a gross hack that tried to guess whether the given class is a JSON RPC class, but that is being removed.
The JsonRPCProvidersBuildItem
is now used as a primary source of information for which classes are Dev UI JSON RPC classes.
Therefore, the JsonRPCProvidersBuildItem
should be produced always.
Quarkus will carry the gross hack for a few more releases, but it will be removed in Quarkus 3.24.
If you use the same approach as above, just replace @BuildStep(onlyIf = IsDevelopment.class)
with @BuildStep
.
If you use a more complex approach, it is typically possible to extract the production of JsonRPCProvidersBuildItem
into a separate build step that can be executed always, while the original build step remains dev-only.