-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Migration Guide 2.3
The working directory for dev mode has been changed from the build directory (target/
) to the root of the project.
This makes the execution of the tests with continuous testing consistent with the tests executed via Surefire.
To restore the previous behavior, you can define <workingDir>${project.build.directory}</workingDir>
in the Quarkus Maven plugin configuration.
Global gRPC server interceptors have to be annotated with @io.quarkus.grpc.GlobalInterceptor
since 2.3.
Prior to Quarkus 2.3, all the CDI beans implementing io.grpc.ServerInterceptor
where considered global interceptors, i.e. applied to all gRPC services.
Since 2.3, it is possible to make a service-specific interceptor, by adding @io.quarkus.grpc.RegisterInterceptor(MyInterceptor.class)
on a gRPC service implementation. To easily distinguish between per-service interceptors and global ones, the aforementioned @GlobalInterceptor
annotation has been introduced.
Fixed a bug where @PreDestroy
and @PostConstruct
methods declared on bean classes were considered business methods which violated CDI specification rules. Therefore, starting with 2.3, an invocation of these methods will no longer be intercepted by any @AroundInvoke
interceptors declared on the bean class and/or on these lifecycle methods.
This means that if you previously leveraged this scenario (for example to apply @Transactional
to post construct callback), you will need to change your code. Here is an example of an approach that will still work:
@Dependent
class MyBean {
@PostConstruct
void init() {
doInit(); // Interception works for self-invocation
}
@Transactional
void doInit() {
// ...e.g. save something in DB
}
}
io.quarkus.oidc.TokenStateManager
has had its String createTokenState(RoutingContext, OidcTenantConfig, AuthorizationCodeTokens)
, AuthorizationCodeTokens getTokens(RoutingContext, OidcTenantConfig, String)
and void deleteTokens(RoutingContext, OidcTenantConfig, String)
methods deprecated and these methods will be removed soon.
Please use Uni<String> createTokenState(RoutingContext, OidcTenantConfig, AuthorizationCodeTokens, CreateTokenStateRequestContext)
, Uni<AuthorizationCodeTokens> getTokens(RoutingContext, OidcTenantConfig, String, GetTokensRequestContext)
and Uni<Void> deleteTokens(RoutingContext, OidcTenantConfig, String, DeleteTokensRequestContext)
instead, where the request contexts can be used to run the blocking tasks.