Skip to content

Migration Guide 2.0

Guillaume Smet edited this page May 18, 2021 · 42 revisions

JDK 11

The minimal JDK version supported by Quarkus 2.0 is JDK 11.

JDK 8 is not supported anymore.

SmallRye JWT

smallrye.jwt.sign.key-location has been renamed to smallrye.jwt.sign.key.location and smallrye.jwt.encrypt.key-location - to smallrye.jwt.encrypt.key.location.

Avro

Avro has been integrated with the Quarkus code generation mechanism. To use it with Maven, make sure you have the generate-code goal enabled for the quarkus-maven-plugin, it should be enabled by default if you created your project fairly recently. For Gradle no specific task is required.

This replaces the need to use Avro plugin, such as the avro-maven-plugin, for projects that use Avro.

Kubernetes / Openshift

VCS annotations

The value app.quarkus.io/vcs-url is no longer converted to an http url and will now match the url of the origin remote. Users that need the prefer the use of the http protocol over git, will have to configure that on git level.

Service port mapping

Services that are exposing http ports are now automatically mapped to port 80. The change makes the generated Service easier to consume by external tools, or services as knowledge of the actual container port is no longer needed by consumers. This may affect services that were using the service dns name and container port combination to communicate with each other.

gRPC

The io.quarkus.grpc.runtime.annotations.GrpcService annotation was renamed to io.quarkus.grpc.GrpcClient. Furthermore, the @GrpcClient.value() is optional and the service name can be derived from the annotated element.

gRPC service classes now have to be annotated with @io.quarkus.grpc.GrpcService instead of @javax.inject.Singleton.

Qute

The deprecated annotations from the io.quarkus.qute.api package were removed. All occurrences of @io.quarkus.qute.api.CheckedTemplate should be replaced with @io.quarkus.qute.CheckedTemplate and occurrences of @io.quarkus.qute.api.ResourcePath should be replaced with @io.quarkus.qute.Location.

Checked templates require type-safe expressions by default, i.e. expressions that can be validated at build time. It's possible to use @CheckedTemplate(requireTypeSafeExpressions = false) to relax this requirement.

Multiple NamespaceResolver instances can be registered for the same namespace provided that each declares a different priority.

Quartz

The deprecated property quarkus.quartz.force-start was removed. Use quarkus.quartz.start-mode=forced instead.

The deprecated config value StoreType.DB was removed. quarkus.quartz.store-type=db should be replaced with quarkus.quartz.store-type=jdbc-cmt.

Keycloak Authorization

Anonymous requests to public resources with no matching Keycloak Authorization policies will now correctly return HTTP 200 status as opposed to 401. Adding DISABLED Keycloak Authorization policies in such cases is no longer necessary.

Deprecation Removals

Legacy Redirect for non-application endpoints such as /health

When we introduced the new /q mounting point for /health, /metrics, and other non-application endpoints, the quarkus.http.redirect-to-non-application-root-path configuration property was provided to revert back to the previous behavior of not prefixing them with /q.

The property was deprecated and is now removed.

It is possible to achieve the previous behavior by explicitly setting endpoints to be absolute instead of relative. For instance, the Health endpoint can be forced to be available at /health instead of /q/health by setting quarkus.smallrye-health.root-path=/health.

Current version

Migration Guide 3.17

Next version in main

Migration Guide 3.18

Clone this wiki locally