Fixed wiring of ALPN integration tests
diff --git a/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/SSLTestContexts.java b/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/SSLTestContexts.java
index 7853927..b259790 100644
--- a/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/SSLTestContexts.java
+++ b/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/SSLTestContexts.java
@@ -32,6 +32,7 @@
 import java.security.KeyManagementException;
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
+import java.security.Provider;
 import java.security.UnrecoverableKeyException;
 import java.security.cert.CertificateException;
 
@@ -40,15 +41,13 @@
 import org.apache.hc.core5.ssl.SSLContextBuilder;
 
 public final class SSLTestContexts {
-    public static SSLContext createServerSSLContext() {
-        return createServerSSLContext(null);
-    }
 
-    public static SSLContext createServerSSLContext(final String protocol) {
+    public static SSLContext createServerSSLContext(final Provider provider, final String protocol) {
         final URL keyStoreURL = SSLTestContexts.class.getResource("/test.p12");
         final String storePassword = "nopassword";
         try {
             return SSLContextBuilder.create()
+                    .setProvider(provider)
                     .setKeyStoreType("pkcs12")
                     .loadTrustMaterial(keyStoreURL, storePassword.toCharArray())
                     .loadKeyMaterial(keyStoreURL, storePassword.toCharArray(), storePassword.toCharArray())
@@ -60,11 +59,15 @@ public static SSLContext createServerSSLContext(final String protocol) {
         }
     }
 
-    public static SSLContext createClientSSLContext() {
-        return createClientSSLContext(null);
+    public static SSLContext createServerSSLContext(final String protocol) {
+        return createServerSSLContext(null, protocol);
     }
 
-    public static SSLContext createClientSSLContext(final String protocol) {
+    public static SSLContext createServerSSLContext() {
+        return createServerSSLContext(null, null);
+    }
+
+    public static SSLContext createClientSSLContext(final Provider provider, final String protocol) {
         final URL keyStoreURL = SSLTestContexts.class.getResource("/test.p12");
         final String storePassword = "nopassword";
         try {
@@ -79,4 +82,12 @@ public static SSLContext createClientSSLContext(final String protocol) {
         }
     }
 
+    public static SSLContext createClientSSLContext(final String protocol) {
+        return createClientSSLContext(null, protocol);
+    }
+
+    public static SSLContext createClientSSLContext() {
+        return createClientSSLContext(null, null);
+    }
+
 }
diff --git a/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/extension/SecurityProviderResource.java b/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/extension/SecurityProviderResource.java
index 34e7e84..5a50554 100644
--- a/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/extension/SecurityProviderResource.java
+++ b/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/extension/SecurityProviderResource.java
@@ -82,7 +82,7 @@ public void afterEach(final ExtensionContext context) throws Exception {
     }
 
     public Provider securityProvider() {
-        return securityProvider;
+        return securityProvider != null ? securityProvider : Security.getProvider(securityProviderName);
     }
 
 }
diff --git a/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/nio/AlpnTest.java b/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/nio/AlpnTest.java
index fb11d53..82d1346 100644
--- a/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/nio/AlpnTest.java
+++ b/httpcore5-testing/src/test/java/org/apache/hc/core5/testing/nio/AlpnTest.java
@@ -55,6 +55,7 @@
 import org.apache.hc.core5.http.nio.support.BasicRequestProducer;
 import org.apache.hc.core5.http.nio.support.BasicResponseConsumer;
 import org.apache.hc.core5.http2.HttpVersionPolicy;
+import org.apache.hc.core5.http2.ssl.H2ClientTlsStrategy;
 import org.apache.hc.core5.http2.ssl.H2ServerTlsStrategy;
 import org.apache.hc.core5.reactor.IOReactorConfig;
 import org.apache.hc.core5.reactor.ListenerEndpoint;
@@ -64,6 +65,7 @@
 import org.apache.hc.core5.testing.extension.nio.H2AsyncServerResource;
 import org.apache.hc.core5.util.Timeout;
 import org.hamcrest.CoreMatchers;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -75,6 +77,8 @@ abstract class AlpnTest {
     @RegisterExtension
     @Order(1)
     private final SecurityProviderResource securityProviderResource;
+    private final Function<SSLContext, TlsStrategy> serverTlsStrategyFactory;
+    private final Function<SSLContext, TlsStrategy> clientTlsStrategyFactory;
     @RegisterExtension
     @Order(2)
     private final H2AsyncServerResource serverResource;
@@ -86,12 +90,10 @@ public AlpnTest(final String securityProviderName,
                     final Function<SSLContext, TlsStrategy> serverTlsStrategyFactory,
                     final Function<SSLContext, TlsStrategy> clientTlsStrategyFactory) {
         this.securityProviderResource = new SecurityProviderResource(securityProviderName);
+        this.serverTlsStrategyFactory = serverTlsStrategyFactory;
+        this.clientTlsStrategyFactory = clientTlsStrategyFactory;
         this.serverResource = new H2AsyncServerResource();
         this.serverResource.configure(bootstrap -> bootstrap
-                .setVersionPolicy(HttpVersionPolicy.NEGOTIATE)
-                .setTlsStrategy(serverTlsStrategyFactory != null ?
-                        serverTlsStrategyFactory.apply(SSLTestContexts.createServerSSLContext()) :
-                        new H2ServerTlsStrategy(SSLTestContexts.createServerSSLContext()))
                 .setIOReactorConfig(
                         IOReactorConfig.custom()
                                 .setSoTimeout(TIMEOUT)
@@ -103,16 +105,26 @@ public AlpnTest(final String securityProviderName,
         );
         this.clientResource = new H2AsyncRequesterResource();
         this.clientResource.configure(bootstrap -> bootstrap
-                .setVersionPolicy(HttpVersionPolicy.NEGOTIATE)
-                .setTlsStrategy(clientTlsStrategyFactory != null ?
-                        clientTlsStrategyFactory.apply(SSLTestContexts.createServerSSLContext()) :
-                        new H2ServerTlsStrategy(SSLTestContexts.createServerSSLContext()))
                 .setIOReactorConfig(IOReactorConfig.custom()
                         .setSoTimeout(TIMEOUT)
                         .build())
         );
     }
 
+    @BeforeEach
+    void setup() throws Exception {
+        final SSLContext serverSSLContext = SSLTestContexts.createServerSSLContext(securityProviderResource.securityProvider(), "TLS");
+        serverResource.configure(bootstrap -> bootstrap
+                .setVersionPolicy(HttpVersionPolicy.NEGOTIATE)
+                .setTlsStrategy(serverTlsStrategyFactory != null ? serverTlsStrategyFactory.apply(serverSSLContext) : new H2ServerTlsStrategy(serverSSLContext))
+        );
+        final SSLContext clientSSLContext = SSLTestContexts.createClientSSLContext(securityProviderResource.securityProvider(), "TLS");
+        clientResource.configure(bootstrap -> bootstrap
+                .setVersionPolicy(HttpVersionPolicy.NEGOTIATE)
+                .setTlsStrategy(clientTlsStrategyFactory != null ? clientTlsStrategyFactory.apply(clientSSLContext) : new H2ClientTlsStrategy(clientSSLContext))
+        );
+    }
+
     @Test
     void testForceHttp1() throws Exception {
         final HttpAsyncServer server = serverResource.start();