diff --git a/bom/application/pom.xml b/bom/application/pom.xml
index 5ab3bc2131174..99bb7a6aa8ff9 100644
--- a/bom/application/pom.xml
+++ b/bom/application/pom.xml
@@ -109,7 +109,7 @@
1.0.1.Final
1.20.1.Final
3.4.3.Final
- 4.3.3
+ 4.3.4
4.5.13
4.4.15
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 b5174a1f87ff3..0a7313ca0473b 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
@@ -6,22 +6,21 @@
import java.util.concurrent.ConcurrentMap;
import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLException;
import javax.net.ssl.TrustManagerFactory;
-import javax.net.ssl.X509KeyManager;
import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.Substitute;
import com.oracle.svm.core.annotate.TargetClass;
import io.netty.handler.ssl.ApplicationProtocolConfig;
-import io.netty.handler.ssl.OpenSslServerContext;
+import io.netty.handler.ssl.ClientAuth;
import io.netty.handler.ssl.SslContext;
import io.netty.handler.ssl.SslContextBuilder;
import io.netty.handler.ssl.SslProvider;
import io.vertx.core.MultiMap;
import io.vertx.core.Promise;
import io.vertx.core.Vertx;
-import io.vertx.core.VertxException;
import io.vertx.core.dns.AddressResolverOptions;
import io.vertx.core.eventbus.EventBusOptions;
import io.vertx.core.eventbus.impl.HandlerHolder;
@@ -140,83 +139,57 @@ EventBusOptions options() {
}
}
-@TargetClass(className = "io.vertx.core.net.impl.SSLHelper")
-final class Target_io_vertx_core_net_impl_SSLHelper {
-
- @Alias
- private boolean client;
+@TargetClass(className = "io.vertx.core.spi.tls.DefaultSslContextFactory")
+final class Target_DefaultSslContextFactory {
@Alias
private Set enabledCipherSuites;
- @Alias
- private boolean openSsl;
-
@Alias
private List applicationProtocols;
@Alias
- private KeyManagerFactory getKeyMgrFactory(VertxInternal vertx) throws Exception {
- return null;
- }
+ private ClientAuth clientAuth;
@Substitute
- private SslContext createContext(VertxInternal vertx, boolean useAlpn, X509KeyManager mgr,
- TrustManagerFactory trustMgrFactory) {
- try {
- SslContextBuilder builder;
- if (client) {
- builder = SslContextBuilder.forClient();
- KeyManagerFactory keyMgrFactory = getKeyMgrFactory(vertx);
- if (keyMgrFactory != null) {
- builder.keyManager(keyMgrFactory);
- }
- } else {
- if (mgr != null) {
- builder = SslContextBuilder.forServer(mgr.getPrivateKey(null), null, mgr.getCertificateChain(null));
- } else {
- KeyManagerFactory keyMgrFactory = getKeyMgrFactory(vertx);
- if (keyMgrFactory == null) {
- throw new VertxException("Key/certificate is mandatory for SSL");
- }
- builder = SslContextBuilder.forServer(keyMgrFactory);
- }
- }
- Collection cipherSuites = enabledCipherSuites;
- if (openSsl) {
- throw new UnsupportedOperationException("OpenSSL not supported in native images");
- } else {
- builder.sslProvider(SslProvider.JDK);
- if (cipherSuites == null || cipherSuites.isEmpty()) {
- cipherSuites = Target_io_vertx_core_net_impl_DefaultJDKCipherSuite.get();
- }
- }
- if (trustMgrFactory != null) {
- builder.trustManager(trustMgrFactory);
+ private SslContext createContext(boolean useAlpn, boolean client, KeyManagerFactory kmf, TrustManagerFactory tmf)
+ throws SSLException {
+ SslContextBuilder builder;
+ if (client) {
+ builder = SslContextBuilder.forClient();
+ if (kmf != null) {
+ builder.keyManager(kmf);
}
- if (cipherSuites != null && cipherSuites.size() > 0) {
- builder.ciphers(cipherSuites);
- }
- if (useAlpn && applicationProtocols != null && applicationProtocols.size() > 0) {
- builder.applicationProtocolConfig(new ApplicationProtocolConfig(
- ApplicationProtocolConfig.Protocol.ALPN,
- ApplicationProtocolConfig.SelectorFailureBehavior.NO_ADVERTISE,
- ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
- applicationProtocols));
- }
- SslContext ctx = builder.build();
- if (ctx instanceof OpenSslServerContext) {
- throw new UnsupportedOperationException("OpenSSL not supported in native images");
- }
- return ctx;
- } catch (Exception e) {
- throw new VertxException(e);
+ } else {
+ builder = SslContextBuilder.forServer(kmf);
+ }
+ Collection cipherSuites = enabledCipherSuites;
+ builder.sslProvider(SslProvider.JDK);
+ if (cipherSuites == null || cipherSuites.isEmpty()) {
+ cipherSuites = Target_io_vertx_core_spi_tls_DefaultJDKCipherSuite.get();
+ }
+ if (tmf != null) {
+ builder.trustManager(tmf);
+ }
+ if (cipherSuites != null && cipherSuites.size() > 0) {
+ builder.ciphers(cipherSuites);
+ }
+ if (useAlpn && applicationProtocols != null && applicationProtocols.size() > 0) {
+ builder.applicationProtocolConfig(new ApplicationProtocolConfig(
+ ApplicationProtocolConfig.Protocol.ALPN,
+ ApplicationProtocolConfig.SelectorFailureBehavior.NO_ADVERTISE,
+ ApplicationProtocolConfig.SelectedListenerFailureBehavior.ACCEPT,
+ applicationProtocols));
+ }
+ if (clientAuth != null) {
+ builder.clientAuth(clientAuth);
}
+ return builder.build();
}
}
-@TargetClass(className = "io.vertx.core.net.impl.DefaultJDKCipherSuite")
-final class Target_io_vertx_core_net_impl_DefaultJDKCipherSuite {
+@TargetClass(className = "io.vertx.core.spi.tls.DefaultJDKCipherSuite")
+final class Target_io_vertx_core_spi_tls_DefaultJDKCipherSuite {
@Alias
static List get() {
return null;
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 d0cf2b2261fbd..a7ea3759d8a86 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
@@ -463,11 +463,21 @@ public long setPeriodic(long l, Handler handler) {
return getDelegate().setPeriodic(l, handler);
}
+ @Override
+ public long setPeriodic(long initialDelay, long delay, Handler handler) {
+ return getDelegate().setPeriodic(initialDelay, delay, handler);
+ }
+
@Override
public TimeoutStream periodicStream(long l) {
return getDelegate().periodicStream(l);
}
+ @Override
+ public TimeoutStream periodicStream(long initialDelay, long delay) {
+ return getDelegate().periodicStream(initialDelay, delay);
+ }
+
@Override
public boolean cancelTimer(long l) {
return getDelegate().cancelTimer(l);
diff --git a/independent-projects/resteasy-reactive/pom.xml b/independent-projects/resteasy-reactive/pom.xml
index 0f7cbcc96c044..de34a64cf09ad 100644
--- a/independent-projects/resteasy-reactive/pom.xml
+++ b/independent-projects/resteasy-reactive/pom.xml
@@ -57,7 +57,7 @@
1.1.6
1.7.0
1.13.1
- 4.3.2
+ 4.3.4
4.5.1
1.0.0.Final
2.0.0.Final