-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Migration Guide 2.8
The long time deprecated quarkus-undertow-websockets
legacy extension is now removed. Use quarkus-websockets
instead.
We had frequent problems with Assertj binary compatibility (running tests compiled with an older version didn't work well with the version enforced in the BOM) so we decided to move Assertj outside of the Quarkus BOM.
That means you will have to define the version of Assertj in your own POM:
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.22.0</version>
</dependency>
Long time deprecated quarkus.datasource.devservices
config property has been removed.
Use quarkus.datasource.devservices.enabled
instead.
Hibernate is now using org.hibernate.dialect.MariaDB106Dialect
by default.
If you are working with MariaDB 10.3, 10.4 or 10.5 you should configure the following:
quarkus.hibernate-orm.dialect=org.hibernate.dialect.MariaDB103Dialect
Some OpenTracing libraries code was moved to SmallRye OpenTracing due to lack of maintenance in the upstream projects:
These are now removed from the Quarkus BOM and available in io.smallrye:smallrye-opentracing-contrib
(included transitively with the Quarkus OpenTracing Extension).
- Static resources are not traced automatically anymore. To revert to the old behavior, please use the configuration
quarkus.opentelemetry.tracer.include-static-resources=true
. - HTTP Span names now include a leading slash. This aligns with the OpenTelemetry Semantic conventions for HTTP spans and the
http.route
tag.
A null
parameter of a loop section is treated as an empty iterable, smilarly as a null
value is handled by an output expression. Previously a null
parameter resulted in a TemplateException
at runtime.
{#for item in items} <1>
{item.name}
{/for}
<1> If items
is resolved to null
then nothing is rendered. Previously, a TemplateException
was thrown at runtime.
To align with ClientHeadersFactory
, the getHeaders
method now accepts clientOutgoingHeaders
map as the second parameter. This parameter is a read-only map of header parameters specified on the client interface.
After the change the signature of the method is:
public abstract Uni<MultivaluedMap<String, String>> getHeaders(MultivaluedMap<String, String> incomingHeaders,
MultivaluedMap<String, String> clientOutgoingHeaders);
Subclasses do not inherit the metadata of a @Scheduled
method declared on a superclass anymore. The old behavior was undocumented and inconsistent; e.g. if Scheduled#identity()
was used and the method was inherited then the build failed.
In the following example, the everySecond()
method is only invoked upon the instance of Jobs
.
class Jobs {
@Scheduled(every = "1s")
void everySecond() {
// ..do something
}
}
@Singleton
class MyJobs extends Jobs {
}