diff --git a/bom/application/pom.xml b/bom/application/pom.xml
index 2cffaf49cbffc..5be25c9516431 100644
--- a/bom/application/pom.xml
+++ b/bom/application/pom.xml
@@ -121,7 +121,7 @@
1.0.1.Final
2.2.2.Final
3.5.1.Final
- 4.4.6
+ 4.5.1
4.5.14
4.4.16
4.1.5
diff --git a/docs/src/main/asciidoc/resteasy-reactive.adoc b/docs/src/main/asciidoc/resteasy-reactive.adoc
index 8234d1200f09a..67696f789756b 100644
--- a/docs/src/main/asciidoc/resteasy-reactive.adoc
+++ b/docs/src/main/asciidoc/resteasy-reactive.adoc
@@ -16,7 +16,7 @@ include::_attributes.adoc[]
:httpspec: https://tools.ietf.org/html/rfc7231
:jsonpapi: https://javadoc.io/doc/jakarta.json/jakarta.json-api/2.1.2/jakarta.json
:injectapi: https://javadoc.io/static/jakarta.inject/jakarta.inject-api/2.0.1/jakarta.inject
-:vertxapi: https://javadoc.io/static/io.vertx/vertx-core/4.4.6
+:vertxapi: https://javadoc.io/static/io.vertx/vertx-core/4.5.1
:resteasy-reactive-api: https://javadoc.io/doc/io.quarkus.resteasy.reactive/resteasy-reactive/{quarkus-version}
:resteasy-reactive-common-api: https://javadoc.io/doc/io.quarkus.resteasy.reactive/resteasy-reactive-common/{quarkus-version}
diff --git a/extensions/grpc/deployment/src/test/java/io/quarkus/grpc/client/MutinyClientInjectionTest.java b/extensions/grpc/deployment/src/test/java/io/quarkus/grpc/client/MutinyClientInjectionTest.java
index 9cb2012f75fb2..9b23fc10bd7d2 100644
--- a/extensions/grpc/deployment/src/test/java/io/quarkus/grpc/client/MutinyClientInjectionTest.java
+++ b/extensions/grpc/deployment/src/test/java/io/quarkus/grpc/client/MutinyClientInjectionTest.java
@@ -22,8 +22,6 @@
import io.smallrye.common.vertx.VertxContext;
import io.smallrye.mutiny.Uni;
import io.vertx.core.impl.ContextInternal;
-import io.vertx.core.impl.EventLoopContext;
-import io.vertx.core.impl.WorkerContext;
import io.vertx.mutiny.core.Context;
import io.vertx.mutiny.core.Vertx;
@@ -73,7 +71,7 @@ public String invokeFromIoThread(String s) {
service.sayHello(HelloRequest.newBuilder().setName(s).build())
.map(HelloReply::getMessage)
.invoke(() -> assertThat(Vertx.currentContext()).isNotNull().isEqualTo(context))
- .invoke(() -> assertThat(Vertx.currentContext().getDelegate()).isInstanceOf(EventLoopContext.class))
+ .invoke(() -> assertThat(Vertx.currentContext().getDelegate().isEventLoopContext()).isTrue())
.subscribe().with(e::complete, e::fail);
});
}).await().atMost(Duration.ofSeconds(5));
@@ -86,9 +84,9 @@ public String invokeFromDuplicatedContext(String s) {
duplicate.runOnContext(x -> {
service.sayHello(HelloRequest.newBuilder().setName(s).build())
.map(HelloReply::getMessage)
- .invoke(() -> assertThat(Vertx.currentContext().getDelegate())
- .isNotInstanceOf(EventLoopContext.class).isNotInstanceOf(WorkerContext.class)
- .isEqualTo(duplicate))
+ .invoke(() -> assertThat(Vertx.currentContext()).isNotNull().isEqualTo(duplicate))
+ .invoke(() -> assertThat(Vertx.currentContext().getDelegate().isEventLoopContext()).isFalse())
+ .invoke(() -> assertThat(Vertx.currentContext().getDelegate().isWorkerContext()).isFalse())
.subscribe().with(e::complete, e::fail);
});
}).await().atMost(Duration.ofSeconds(5));
diff --git a/extensions/grpc/deployment/src/test/java/io/quarkus/grpc/client/MutinyStubInjectionTest.java b/extensions/grpc/deployment/src/test/java/io/quarkus/grpc/client/MutinyStubInjectionTest.java
index a3cf817593051..fb811b07878d1 100644
--- a/extensions/grpc/deployment/src/test/java/io/quarkus/grpc/client/MutinyStubInjectionTest.java
+++ b/extensions/grpc/deployment/src/test/java/io/quarkus/grpc/client/MutinyStubInjectionTest.java
@@ -23,8 +23,6 @@
import io.quarkus.test.QuarkusUnitTest;
import io.smallrye.common.vertx.VertxContext;
import io.smallrye.mutiny.Uni;
-import io.vertx.core.impl.EventLoopContext;
-import io.vertx.core.impl.WorkerContext;
import io.vertx.mutiny.core.Context;
import io.vertx.mutiny.core.Vertx;
@@ -79,7 +77,7 @@ public String invokeFromIoThread(String s) {
service.sayHello(HelloRequest.newBuilder().setName(s).build())
.map(HelloReply::getMessage)
.invoke(() -> assertThat(Vertx.currentContext()).isNotNull().isEqualTo(context))
- .invoke(() -> assertThat(Vertx.currentContext().getDelegate()).isInstanceOf(EventLoopContext.class))
+ .invoke(() -> assertThat(Vertx.currentContext().getDelegate().isEventLoopContext()).isTrue())
.map(r -> r + " " + Thread.currentThread().getName())
.subscribe().with(e::complete, e::fail);
});
@@ -93,9 +91,9 @@ public String invokeFromDuplicatedContext(String s) {
duplicate.runOnContext(x -> {
service.sayHello(HelloRequest.newBuilder().setName(s).build())
.map(HelloReply::getMessage)
- .invoke(() -> assertThat(Vertx.currentContext().getDelegate())
- .isNotInstanceOf(EventLoopContext.class).isNotInstanceOf(WorkerContext.class)
- .isEqualTo(duplicate))
+ .invoke(() -> assertThat(Vertx.currentContext()).isNotNull().isEqualTo(duplicate))
+ .invoke(() -> assertThat(Vertx.currentContext().getDelegate().isEventLoopContext()).isFalse())
+ .invoke(() -> assertThat(Vertx.currentContext().getDelegate().isWorkerContext()).isFalse())
.map(r -> r + " " + Thread.currentThread().getName())
.subscribe().with(e::complete, e::fail);
});
diff --git a/extensions/grpc/inprocess/src/main/java/io/quarkus/grpc/inprocess/InProcessGrpcServerBuilderProvider.java b/extensions/grpc/inprocess/src/main/java/io/quarkus/grpc/inprocess/InProcessGrpcServerBuilderProvider.java
index d47468927d67e..1a7d5af2d3ddf 100644
--- a/extensions/grpc/inprocess/src/main/java/io/quarkus/grpc/inprocess/InProcessGrpcServerBuilderProvider.java
+++ b/extensions/grpc/inprocess/src/main/java/io/quarkus/grpc/inprocess/InProcessGrpcServerBuilderProvider.java
@@ -19,7 +19,7 @@
import io.quarkus.runtime.LaunchMode;
import io.quarkus.runtime.ShutdownContext;
import io.vertx.core.Vertx;
-import io.vertx.core.impl.EventLoopContext;
+import io.vertx.core.impl.ContextInternal;
import io.vertx.core.impl.VertxInternal;
public class InProcessGrpcServerBuilderProvider implements GrpcBuilderProvider {
@@ -35,7 +35,7 @@ public ServerBuilder createServerBuilder(Vertx vertx, Gr
// wrap with Vert.x context, so that the context interceptors work
VertxInternal vxi = (VertxInternal) vertx;
Executor delegate = vertx.nettyEventLoopGroup();
- EventLoopContext context = vxi.createEventLoopContext();
+ ContextInternal context = vxi.createEventLoopContext();
Executor executor = command -> delegate.execute(() -> context.dispatch(command));
builder.executor(executor);
return builder;
diff --git a/extensions/grpc/xds/src/main/java/io/quarkus/grpc/xds/XdsGrpcServerBuilderProvider.java b/extensions/grpc/xds/src/main/java/io/quarkus/grpc/xds/XdsGrpcServerBuilderProvider.java
index 69db93834c07b..267d6e29604dd 100644
--- a/extensions/grpc/xds/src/main/java/io/quarkus/grpc/xds/XdsGrpcServerBuilderProvider.java
+++ b/extensions/grpc/xds/src/main/java/io/quarkus/grpc/xds/XdsGrpcServerBuilderProvider.java
@@ -32,7 +32,7 @@
import io.quarkus.runtime.LaunchMode;
import io.quarkus.runtime.ShutdownContext;
import io.vertx.core.Vertx;
-import io.vertx.core.impl.EventLoopContext;
+import io.vertx.core.impl.ContextInternal;
import io.vertx.core.impl.VertxInternal;
public class XdsGrpcServerBuilderProvider implements GrpcBuilderProvider {
@@ -54,7 +54,7 @@ public ServerBuilder createServerBuilder(Vertx vertx, GrpcServ
// wrap with Vert.x context, so that the context interceptors work
VertxInternal vxi = (VertxInternal) vertx;
Executor delegate = vertx.nettyEventLoopGroup();
- EventLoopContext context = vxi.createEventLoopContext();
+ ContextInternal context = vxi.createEventLoopContext();
Executor executor = command -> delegate.execute(() -> context.dispatch(command));
builder.executor(executor);
// custom XDS interceptors
diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
index 5978fa7d2e819..880b69032ac1d 100644
--- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
+++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
@@ -65,7 +65,6 @@
import io.vertx.core.http.*;
import io.vertx.core.http.impl.Http1xServerConnection;
import io.vertx.core.impl.ContextInternal;
-import io.vertx.core.impl.EventLoopContext;
import io.vertx.core.impl.Utils;
import io.vertx.core.impl.VertxInternal;
import io.vertx.core.net.SocketAddress;
@@ -1273,7 +1272,7 @@ public void initChannel(VirtualServerChannel ch) throws Exception {
.childHandler(new ChannelInitializer() {
@Override
public void initChannel(VirtualChannel ch) throws Exception {
- EventLoopContext context = vertx.createEventLoopContext();
+ ContextInternal context = vertx.createEventLoopContext();
VertxHandler handler = VertxHandler.create(chctx -> {
Http1xServerConnection conn = new Http1xServerConnection(
diff --git a/extensions/vertx/runtime/src/main/java/io/quarkus/vertx/core/runtime/graal/VertxSubstitutions.java b/extensions/vertx/runtime/src/main/java/io/quarkus/vertx/core/runtime/graal/VertxSubstitutions.java
index 14b5ef952116c..fc2e9c59b3c9f 100644
--- a/extensions/vertx/runtime/src/main/java/io/quarkus/vertx/core/runtime/graal/VertxSubstitutions.java
+++ b/extensions/vertx/runtime/src/main/java/io/quarkus/vertx/core/runtime/graal/VertxSubstitutions.java
@@ -89,7 +89,8 @@ public void close(Promise promise) {
}
@Substitute
- public MessageImpl createMessage(boolean send, String address, MultiMap headers, Object body, String codecName) {
+ public MessageImpl createMessage(boolean send, boolean isLocal, String address, MultiMap headers, Object body,
+ String codecName) {
throw new RuntimeException("Not Implemented");
}
diff --git a/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientImpl.java b/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientImpl.java
index 4565cb83bc568..9b77d57a194c9 100644
--- a/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientImpl.java
+++ b/independent-projects/resteasy-reactive/client/runtime/src/main/java/org/jboss/resteasy/reactive/client/impl/ClientImpl.java
@@ -49,6 +49,7 @@
import io.vertx.core.MultiMap;
import io.vertx.core.Promise;
import io.vertx.core.TimeoutStream;
+import io.vertx.core.Timer;
import io.vertx.core.Verticle;
import io.vertx.core.Vertx;
import io.vertx.core.VertxOptions;
@@ -60,6 +61,7 @@
import io.vertx.core.eventbus.EventBus;
import io.vertx.core.file.FileSystem;
import io.vertx.core.http.HttpClient;
+import io.vertx.core.http.HttpClientBuilder;
import io.vertx.core.http.HttpClientOptions;
import io.vertx.core.http.HttpClientRequest;
import io.vertx.core.http.HttpClientResponse;
@@ -69,6 +71,8 @@
import io.vertx.core.http.HttpServerOptions;
import io.vertx.core.http.RequestOptions;
import io.vertx.core.http.WebSocket;
+import io.vertx.core.http.WebSocketClient;
+import io.vertx.core.http.WebSocketClientOptions;
import io.vertx.core.http.WebSocketConnectOptions;
import io.vertx.core.http.WebsocketVersion;
import io.vertx.core.net.NetClient;
@@ -420,6 +424,16 @@ public HttpServer createHttpServer() {
return getDelegate().createHttpServer();
}
+ @Override
+ public WebSocketClient createWebSocketClient(WebSocketClientOptions webSocketClientOptions) {
+ return getDelegate().createWebSocketClient(webSocketClientOptions);
+ }
+
+ @Override
+ public HttpClientBuilder httpClientBuilder() {
+ return getDelegate().httpClientBuilder();
+ }
+
@Override
public HttpClient createHttpClient(HttpClientOptions httpClientOptions) {
return new LazyHttpClient(new Supplier() {
@@ -480,6 +494,11 @@ public SharedData sharedData() {
return getDelegate().sharedData();
}
+ @Override
+ public Timer timer(long l, TimeUnit timeUnit) {
+ return getDelegate().timer(l, timeUnit);
+ }
+
@Override
public long setTimer(long l, Handler handler) {
return getDelegate().setTimer(l, handler);
@@ -850,10 +869,25 @@ public Future webSocketAbs(String url, MultiMap headers, WebsocketVer
}
@Override
- public Future updateSSLOptions(SSLOptions options) {
+ public Future updateSSLOptions(SSLOptions options) {
return getDelegate().updateSSLOptions(options);
}
+ @Override
+ public void updateSSLOptions(SSLOptions options, Handler> handler) {
+ getDelegate().updateSSLOptions(options, handler);
+ }
+
+ @Override
+ public Future updateSSLOptions(SSLOptions sslOptions, boolean b) {
+ return getDelegate().updateSSLOptions(sslOptions, b);
+ }
+
+ @Override
+ public void updateSSLOptions(SSLOptions options, boolean force, Handler> handler) {
+ getDelegate().updateSSLOptions(options, force, handler);
+ }
+
@Override
public HttpClient connectionHandler(Handler handler) {
return getDelegate().connectionHandler(handler);
diff --git a/independent-projects/resteasy-reactive/pom.xml b/independent-projects/resteasy-reactive/pom.xml
index d94e4537294cf..bcb569d129395 100644
--- a/independent-projects/resteasy-reactive/pom.xml
+++ b/independent-projects/resteasy-reactive/pom.xml
@@ -60,7 +60,7 @@
3.2.3
2.5.1
2.1.2
- 4.4.6
+ 4.5.1
5.4.0
1.0.0.Final
2.16.0