-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Migration Guide 3.22
- Jakarta REST resources with Panache
- Extensions should produce
JsonRPCProvidersBuildItem
always org.eclipse.jgit
dependency is no longer managed inquarkus-bom
- Stork is no longer a dependency of the REST Client
ContextResolver
use with a lambda in REST ClientQuarkusTransaction.isActive()
deprecated- Deprecated
HttpAuthenticationMechanism
getCredentialTransport
method removed - Gradle
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.
Because the JGit dependency org.eclipse.jgit:org.eclipse.jgit
conflicts with the version provided in quarkus-jgit
, we have decided to remove the JGit dependency from the quarkus-bom
(https://github.com/quarkusio/quarkus/pull/47137). If your application uses JGit, ensure you’re using the quarkus-jgit
extension, as it will support native compilation and is up-to-date with recent JGit releases.
If you are using Stork and the REST Client, you will need to add an explicit dependency to the Stork extension.
Using a lambda to define a ContextResolver
in a REST Client nows throws an IllegalArgumentException
. This is done because the Quarkus unable to detetmine the generic type that is meant to be used (whereas previous versions fell back to using Object
).
The QuarkusTransaction.isActive()
method is now deprecated as its semantic wasn’t clear.
We added a getStatus()
method that should be used instead.
Synchronous HttpAuthenticationMechanism
getCredentialTransport()
method which was deprecated and marked for removal since Quarkus 2.8 has now been removed.
Implement Uni<HttpCredentialTransport> getCredentialTransport(RoutingContext context)
, for example, return Uni.createFrom().item(myHttpCredentialTransport);